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

import cn.estsh.i3plus.pojo.platform.bean.SysUser;
import io.swagger.annotations.ApiOperation;

import java.util.List;
import java.util.Map;

/**
 * @Description : Dashboard服务接口
 * @Reference :
 * @Author : yunhao
 * @CreateDate : 2018-12-14 15:41
 * @Modify:
 **/
public interface ISysDashboardService {

    /**
     * 查询组织个数
     * @return
     */
    @ApiOperation(value = "查询组织个数")
    long getSysOrganizeCount();

    /**
     * 获取部门数量
     * @return
     */
    @ApiOperation(value = "获取部门数量")
    long getSysDepartmentCount();

    /**
     * 查询用户登录日志
     * @return
     */
    @ApiOperation(value = "查询用户登录日志",notes = "查询用户登录日志")
    List<SysUser> findSysUserLoginLog(Integer size);

    /**
     * 查询最近操作日志
     * @param size
     * @return
     */
    @ApiOperation(value = "查询操作日志",notes = "查询最近操作日志")
    List findNewSysLogOperateSize(Integer size);

    /**
     * 查询最近异常日志
     * @param size
     * @return
     */
    @ApiOperation(value = "查询异常日志",notes = "查询最近异常日志")
    List findNewSysLogExceptionSize(Integer size);

    /**
     * 查询系统日志各级别占比
     * @param startTime
     * @param endTime
     * @return
     */
    @ApiOperation(value = "查询系统日志",notes = "查询系统日志各级别占比")
    Map findSysLogSystempByLevel(String startTime,String endTime);

    /**
     * 查询平均耗时
     * @param startTime
     * @param endTime
     * @return
     */
    @ApiOperation(value = "查询操作日志",notes = "查询平均响应耗时")
    Map<Object,Object>  querySysLogSystemAvgExecuteTime(String startTime, String endTime);

    /**
     * 查询时间段内各等级日志数量
     * @param startTime
     * @param endTime
     * @return
     */
    @ApiOperation(value = "查询系统日志",notes = "查询各模块系统日志数量")
    Map<Object,Object> querySysLogSystemByLevel(String startTime, String endTime);
}
