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.platbean.SysLogOperate;
import io.swagger.annotations.ApiOperation;

import java.util.List;

/**
 * @Description : 操作日志服务接口
 * @Reference :
 * @Author : yunhao
 * @Date : 2018-10-25 13:49
 * @Modify :
 **/
public interface ISysLogOperateService {

    /**
     * 添加操作日志
     * @param logOperate
     * @return
     */
    @ApiOperation(value = "添加操作日志",notes = "添加操作日志")
    SysLogOperate insertSysLogOperate(SysLogOperate logOperate);

    /**
     * 根据id删除日志
     * @param id
     */
    @ApiOperation(value = "根据id删除日志",notes = "根据id删除日志")
    void deleteSysLogOperateById(Long id);

    /**
     * 查询全部操作日志
     * @return
     */
    @ApiOperation(value = "查询全部操作日志",notes = "查询全部操作日志")
    List listSysLogOperate();

    /**
     * 批量删除日志
     * @param ids
     */
    @ApiOperation(value = "批量删除日志",notes = "批量删除日志")
    void deleteSysLogOperateByIds(Long[] ids);

    /**
     * 根据id查询操作日志
     * @param id
     * @return
     */
    @ApiOperation(value = "根据id查询操作日志",notes = "根据id查询操作日志")
    SysLogOperate getSysLogOperateById(Long id);

    /**
     * 根据操作人姓名模糊查询日志
     * @param operateUserName
     * @return
     */
    @ApiOperation(value = "根据操作人姓名模糊查询日志",notes = "根据操作人姓名模糊查询日志")
    List<SysLogOperate> listSysLogOperateByOperateUserName(String operateUserName);

    //查询所有日志数量
    @ApiOperation(value = "查询所有日志数量")
    long countAllSysLogOperate();

    /**
     * 操作日志复杂查询，分页，排序
     * @param logOperate
     * @param pager
     * @return
     */
    @ApiOperation(value = "操作日志复杂查询，分页，排序",notes = "操作日志复杂查询，分页，排序")
    ListPager<SysLogOperate> querySysLogOperateByPager(SysLogOperate logOperate, Pager pager);

    /**
     * 查询最新的操作日志
     * @param num
     * @return
     */
    @ApiOperation(value = "查询最新的操作日志")
    List<SysLogOperate> findNewSysLogOperate(Integer num);
}
