package org.springblade.system.mapper;

import org.apache.ibatis.annotations.Param;
import org.springblade.common.core.domain.entity.SysLogsVo;

import java.util.List;

/**
 * @author：bonus
 * @version：1.0
 * @description：系统日志-数据库访问层
 */
public interface SysLogMapper {

    /**
     * 保存系统日志
     *
     * @param sysLog
     * @description 保存系统日志
     * @author cwchen
     * @date 2024/2/28 14:35
     */
    void saveLogs(SysLogsVo sysLog);

    /**
     * 查询日志
     * @param dto
     * @return
     */
    List<SysLogsVo> getSystemLogs(SysLogsVo dto);


    /**
     * 查询日志容量
     * @return
     */
    String getLogsSet();

    /**
     * 数据插入
     * @param capacity
     */
    void setLogsSet(String capacity);

    /**
     * 更新数据
     * @param capacity
     */
    void updateLogsSet(String capacity);

    /**
     * 采茶戏
     * @param dto
     * @return
     */
   int  getLogStatistics(SysLogsVo dto);

    /**
     * 按照操作类型查询
     * @param dto
     * @return
     */
    List<SysLogsVo> getLogsListByOperType(SysLogsVo dto);

    /**
     * 按照操作人查询
     * @param dto
     * @return
     */
    List<SysLogsVo> getLogsListByOperUserName(SysLogsVo dto);


    /**
     * 通过 方法查找模块
     * @param operUri
     * @return
     */
    SysLogsVo getModule(@Param("module") String operUri);

    /**
     * 查询当日异常告警数量
     * @return
     */
    int getErrorLogs();

    /**
     * 查询日志容量
     * @return
     */
    String getLogsRl(String schemaName);

    /**
     * 查询全部日志细腻系
     * @param dto
     * @return
     */
    List<SysLogsVo> getAllLogs(SysLogsVo dto);

    /**
     * 查询
     * @param sysLog
     * @return
     */
    String getModuleName(SysLogsVo sysLog);

    /**
     * 检查模块是否存在
     * @param sysLog
     * @return
     */
    String getModuleIsc(SysLogsVo sysLog);

    /**
     * 查询全部日志
     * @param logType
     * @return
     */
    List<SysLogsVo> getLogsLists(@Param("logType") String logType);

    /**
     * 查询未处理告警日志
     * @return
     */
    List<SysLogsVo> getNotHandleWarningLog();

    /**
     * 修改指定日志为已处理状态
     * @param logId 日志id
     * @return
     */
    void updateLogsWithHandledStatus(String logId);

}
