package cn.estsh.i3plus.core.api.iservice.busi;

import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.platform.bean.SysConfig;
import io.swagger.annotations.ApiOperation;

import java.util.Date;
import java.util.List;

/**
 * @Description : 系统参数服务接口
 * @Reference :
 * @Author : yunhao
 * @Date : 2018-10-25 9:21
 * @Modify :
 **/
public interface ISysConfigService {

    /**
     * 添加系统参数
     * @param sysConfig
     */
    @ApiOperation(value = "添加系统参数")
    void insertSysConfig(SysConfig sysConfig);

    /**
     * 删除系统参数
     * @param id
     */
    @ApiOperation(value = "删除系统参数")
    void deleteSysConfigById(Long id);

    /**
     * 修改系统参数
     * @param sysConfig
     */
    @ApiOperation(value = "修改系统参数")
    void updateSysConfig(SysConfig sysConfig);

    /**
     * 查询全部系统参数
     */
    @ApiOperation(value = "查询全部系统参数")
    List<SysConfig> ListSysConfig();

    /**
     * 根据id查询系统参数
     * @param id
     */
    @ApiOperation(value = "根据id查询系统参数")
    SysConfig getSysConfigById(Long id);

    /**
     *  系统配置复杂查询分页排序
      * @param sysConfig
     * @param pager
     * @return
     */
    @ApiOperation(value = "系统配置复杂查询分页排序")
    ListPager querySysConfigByPager(SysConfig sysConfig, Pager pager);

    /**
     *  根据code查询系统配置
     * @param code
     * @return
     */
    @ApiOperation(value = "根据code查询系统配置")
    SysConfig getSysConfigByCode(String code);

    /**
     * 查询系统邮件配置项
     * @return
     */
    @ApiOperation(value = "查询系统邮件配置项")
    List findMailConfig();

    /**
     * 根据系统配置代码修改配置项
     * @param code
     * @param value
     */
    @ApiOperation(value = "根据系统配置代码修改配置项")
    void updateSysConfigByCode(String code,String value);

    /**
     * 根据系统参数组来查找系统参数
     * @param group
     * @return
     */
    @ApiOperation(value = "根据系统参数组来查找系统参数")
    List findSysConfigByGroup(Integer group);

}
