package com.hzya.frame.basedao.service;

import com.alibaba.fastjson.JSONObject;
import com.hzya.frame.web.entity.JsonResultEntity;

/**
 * @Author lvleigang
 * @Description 通用service
 * @Date 9:34 上午 2022/12/7
 * @return
 **/
public interface GeneralService {
    /**
     * @param jsonObject
     * @return com.hzya.frame.web.entity.JsonResultEntity
     * @Author lvleigang
     * @Description 查询list
     * @Date 9:40 上午 2022/12/7
     **/
    JsonResultEntity selectList(JSONObject jsonObject);

    /**
     * @param jsonObject
     * @return com.hzya.frame.web.entity.JsonResultEntity
     * @Author lvleigang
     * @Description 查询list
     * @Date 9:40 上午 2022/12/7
     **/
    JsonResultEntity selectListSimple(JSONObject jsonObject);

    /**
     * @param jsonObject
     * @return com.hzya.frame.web.entity.JsonResultEntity
     * @Author lvleigang
     * @Description 查询page
     * @Date 9:40 上午 2022/12/7
     **/
    JsonResultEntity selectPage(JSONObject jsonObject);
    /**
     * @param jsonObject
     * @return com.hzya.frame.web.entity.JsonResultEntity
     * @Author lvleigang
     * @Description 查询page
     * @Date 9:40 上午 2022/12/7
     **/
    JsonResultEntity selectPageSimple(JSONObject jsonObject);
    /**
     * @param jsonObject
     * @return com.hzya.frame.web.entity.JsonResultEntity
     * @Author lvleigang
     * @Description 添加
     * @Date 9:40 上午 2022/12/7
     **/
    JsonResultEntity inster(JSONObject jsonObject);

    /**
     * @param jsonObject
     * @return com.hzya.frame.web.entity.JsonResultEntity
     * @Author lvleigang
     * @Description 添加list
     * @Date 9:41 上午 2022/12/7
     **/
    JsonResultEntity insterList(JSONObject jsonObject);

    /**
     * @param jsonObject
     * @return com.hzya.frame.web.entity.JsonResultEntity
     * @Author lvleigang
     * @Description 修改
     * @Date 9:41 上午 2022/12/7
     **/
    JsonResultEntity update(JSONObject jsonObject);

    /**
     * @param jsonObject
     * @return com.hzya.frame.web.entity.JsonResultEntity
     * @Author lvleigang
     * @Description 删除
     * @Date 9:41 上午 2022/12/7
     **/
    JsonResultEntity delete(JSONObject jsonObject);

    /**
     * @param jsonObject
     * @return com.hzya.frame.web.entity.JsonResultEntity
     * @Author lvleigang
     * @Description 查询字段 // todo 暂时不对
     * @Date 9:41 上午 2022/12/7
     **/
    JsonResultEntity defaultField(JSONObject jsonObject);

    //*******************************

    /**
     * @Author lvleigang
     * @Description  查询树-配置通用接口 ok
     * @Date 3:21 下午 2023/2/14
     * @param jsonObject
     * @return com.hzya.frame.web.entity.JsonResultEntity
     **/
    JsonResultEntity queryTree(JSONObject jsonObject);

    /**
     * @Author lvleigang
     * @Description  删除树-配置通用接口 ok
     * @Date 3:21 下午 2023/2/14
     * @param jsonObject
     * @return com.hzya.frame.web.entity.JsonResultEntity
     **/
    JsonResultEntity delectTree(JSONObject jsonObject);

    /**
     * @Author lvleigang
     * @Description  查询树节点下级的节点数据 ok
     * @Date 3:21 下午 2023/2/14
     * @param jsonObject
     * @return com.hzya.frame.web.entity.JsonResultEntity
     **/
    JsonResultEntity selectTreeSubordinateList(JSONObject jsonObject);
    /**
     * @Author lvleigang
     * @Description  查询树节点下面所有的递归节点数据 ok
     * @Date 3:21 下午 2023/2/14
     * @param jsonObject
     * @return com.hzya.frame.web.entity.JsonResultEntity
     **/
    JsonResultEntity selectTreeAllList(JSONObject jsonObject);

    /**
     * @param jsonObject
     * @return com.hzya.frame.web.entity.JsonResultEntity
     * @Author lvleigang
     * @Description 查询数据字典
     * @Date 9:40 上午 2022/12/7
     **/
    JsonResultEntity selectDictionaryshop(JSONObject jsonObject);

}
