bns_jjsp_service/securityControl-modules/securityControl-system/target/classes/mapper/system/SysLogsMapper.xml

312 lines
13 KiB
XML
Raw Permalink Normal View History

2025-01-16 18:13:22 +08:00
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.securityControl.system.mapper.SysLogsDao">
<!--日志数据记录插入-->
<insert id="saveLogs" parameterType="com.securityControl.system.api.domain.SysOperLog">
insert into sys_logs(user_name, model, details, method, requestMethod, uri, params, ip, create_time, grade,
businessType, role_name, log_time, dept_name, err_msg,
log_type, sys_name,
sys_version,sys_menu,status) value ( #{operName}, #{title}, #{detail}, #{method}, #{requestMethod}, #{operUrl}, #{operParam}, #{operIp}, #{times},#{grade},#{businessType},
#{roleName},#{logTime},#{deptName},#{errorMsg},#{logType},#{sysName},#{sysVersion},#{sysMenu},#{status}
)
</insert>
<!-- 分页查询 -->
<select id="queryByPage" resultType="com.securityControl.system.api.domain.SysLogsInfo">
SELECT id, user_name userName, oper_time operTime,
oper_ip operIp, oper_model operModel, oper_type operType,
oper_details operDetails, oper_result operResult,
event_type eventType, oper_param operParam, oper_meth operMeth,
err_grade errGrade, err_reason errReason, title,
times
FROM sys_log_info
<where>
<if test="userName!=null and userName!=''">
and user_name like concat('%',#{userName},'%')
</if>
<if test="operIp!=null and operIp!=''">
and oper_ip like concat('%',#{operIp},'%')
</if>
<if test="logType!=null and logType!=''">
and log_type =#{logType}
</if>
<if test="errGrade!=null and errGrade!=''">
and err_grade =#{errGrade}
</if>
<if test="errReason!=null and errReason!=''">
and err_reason =#{errReason}
</if>
<if test="operDetails!=null and operDetails!=''">
and oper_details like concat('%',#{operDetails},'%')
</if>
<if test="startTime!=null and startTime!='' and endTime!=null and endTime!=''" >
AND DATE_FORMAT(oper_time,'%Y-%m-%d') BETWEEN #{startTime} and #{endTime}
</if>
<if test="operResult!=null and operResult!='' " >
AND oper_result=#{operResult}
</if>
<if test="eventType!=null and eventType!='' " >
AND event_type=#{eventType}
</if>
<if test="operType!=null and operType!='' " >
AND oper_type=#{operType}
</if>
</where>
<if test="sort!=null and sort!=''">
order by ${sortName} ${sortType}
</if>
</select>
<select id="getRunningLog" resultType="com.securityControl.system.domain.vo.SysRunningLogVo">
SELECT log_type logType, status sysStatus, create_time sysStartTime,
sys_name sysName, sys_version sysVersion, details sysLogInfo
FROM sys_logs
<where>
<if test="startTime != null and startTime != ''">
AND create_time <![CDATA[>=]]> concat(#{startTime}, ' 00:00:00')
</if>
<if test="endTime != null and endTime != ''">
AND create_time <![CDATA[<=]]> concat(#{endTime}, ' 23:59:59')
</if>
<if test="logType != null and logType != ''">
AND log_type = #{logType}
</if>
<if test="sysName != null and sysName != ''">
AND sys_name like concat('%', #{sysName}, '%')
</if>
<if test="sysVersion != null and sysVersion != ''">
AND sys_version like concat('%', #{sysVersion}, '%')
</if>
</where>
order by ${orderType} ${orderBy}
</select>
<!-- 更新 -->
<update id="updateEndTime">
UPDATE sys_logs
SET end_time = NOW(),
status = 2,
details = replace(details, '部署并启动成功!','已停止运行!')
WHERE log_type = #{logType}
AND status = 0
</update>
<select id="getTotalStatic" resultType="com.securityControl.system.domain.vo.SysLogStatisticVo">
SELECT COUNT(1) totalNum,
count(CASE oper_result =1 WHEN 1 THEN 0 END) totalSuccess,
count(CASE oper_result =0 WHEN 1 THEN 0 END) totalFail
FROM sys_log_info
WHERE 1=1
<if test="startTime != null and startTime != ''">
AND oper_time <![CDATA[>=]]> concat(#{startTime}, ' 00:00:00')
</if>
<if test="endTime != null and endTime != ''">
AND oper_time <![CDATA[<=]]> concat(#{endTime}, ' 23:59:59')
</if>
</select>
<select id="statistics" resultType="java.util.Map">
SELECT any_value(oper_type) grade,
any_value(log_type) logType,
COUNT(1) AS total,
count(CASE oper_result = 1 WHEN 1 THEN 0 END) success,
count(CASE oper_result = 0 WHEN 1 THEN 0 END) fail
FROM sys_log_info
WHERE 1=1
<if test="startTime != null and startTime != ''">
AND oper_time <![CDATA[>=]]> concat(#{startTime}, ' 00:00:00')
</if>
<if test="endTime != null and endTime != ''">
AND oper_time <![CDATA[<=]]> concat(#{endTime}, ' 23:59:59')
</if>
<choose>
<when test="keyword != null and keyword == 'logType'">
GROUP BY log_type
</when>
<when test="keyword != null and keyword == 'model'">
GROUP BY oper_type
</when>
</choose>
</select>
<update id="updateContent">
UPDATE sys_log_config
SET content_size = #{number}
</update>
<select id="getMaxLogSize" resultType="java.util.Map">
SELECT content_size contentSize
FROM sys_log_config LIMIT 1
</select>
<select id="getUsedMaxSize" resultType="java.util.Map">
SELECT ROUND((SUM(A.DATA)) / 1024 / 1024, 4) AS logSize
FROM (SELECT DATA_LENGTH + INDEX_LENGTH AS DATA
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'gwjjspaq'
AND TABLE_NAME = 'sys_logs'
UNION
SELECT DATA_LENGTH + INDEX_LENGTH AS DATA
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'gwjjspaq'
AND TABLE_NAME = 'sys_log_config'
UNION
SELECT DATA_LENGTH + INDEX_LENGTH AS DATA
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'gwjjspaq'
AND TABLE_NAME = 'sys_warning_log') A
</select>
<insert id="insertWarningLog" keyProperty="id" useGeneratedKeys="true">
INSERT INTO sys_warning_log(operate_type, operation_ip, operate_title, operate_details, operate_jb, fast_time,
operation_name)
VALUES (#{operateType}, #{operationIp}, #{operateTitle}, #{operateDetails}#{operateJb}, #{fastTime},
#{operationName})
</insert>
<select id="getLogContent" resultType="java.util.Map">
SELECT content_size contentSize
FROM sys_log_config
</select>
<select id="getLastCopyLogSet" resultType="java.util.Map">
SELECT log_type logType, update_date updateDate
FROM sys_log_set
WHERE log_type = #{logType}
</select>
<select id="getCopyData" resultType="com.securityControl.system.api.domain.SysOperLog">
SELECT user_name operName,
model title,
details detail,
method,
requestMethod,
uri operUrl,
params operParam,
ip operIp,
create_time times,
grade,
businessType,
role_name roleName,
log_time logTime,
dept_name deptName,
err_msg errorMsg,
log_type logType,
sys_name sysName,
sys_version sysVersion,
end_time endTime
FROM sys_logs
WHERE log_type = #{logType}
AND create_time >= #{updateDate}
</select>
<select id="restoreLog" resultType="com.securityControl.system.api.domain.SysOperLog">
SELECT user_name operName,
model title,
details detail,
method,
requestMethod,
uri operUrl,
params operParam,
ip operIp,
create_time times,
grade,
businessType,
role_name roleName,
log_time logTime,
dept_name deptName,
err_msg errorMsg,
log_type logType,
sys_name sysName,
sys_version sysVersion,
end_time endTime
FROM sys_logs_copy
WHERE log_type = #{logType}
</select>
<update id="updateLastCopyTime">
UPDATE sys_log_set
SET update_date = #{time}
WHERE log_type = #{logType}
</update>
<insert id="saveCopyLogs" parameterType="com.securityControl.system.api.domain.SysOperLog">
insert into sys_logs_copy(user_name, model, details, method, requestMethod, uri, params, ip, create_time, grade,
businessType, role_name, log_time, dept_name, err_msg,
log_type, sys_name,
sys_version,
end_time) value ( #{operName}, #{title}, #{detail}, #{method}, #{requestMethod}, #{operUrl}, #{operParam}, #{operIp}, #{times},#{grade},#{businessType},
#{roleName},#{logTime},#{deptName},#{errorMsg},#{logType},#{sysName},#{sysVersion},#{endTime}
)
</insert>
<insert id="saveRestoreLog" parameterType="com.securityControl.system.api.domain.SysOperLog">
insert into sys_logs(user_name, model, details, method, requestMethod, uri, params, ip, create_time, grade,
businessType, role_name, log_time, dept_name, err_msg,
log_type, sys_name,
sys_version,
end_time) value ( #{operName}, #{title}, #{detail}, #{method}, #{requestMethod}, #{operUrl}, #{operParam}, #{operIp}, #{times},#{grade},#{businessType},
#{roleName},#{logTime},#{deptName},#{errorMsg},#{logType},#{sysName},#{sysVersion},#{endTime}
)
</insert>
<!--添加日志数据-接口-->
<insert id="addSaveSysLog">
insert into sys_log_info(
user_name, oper_time, oper_ip,
oper_model, oper_type, oper_details,
oper_result, event_type,
oper_param, oper_meth, log_type,
err_grade, err_reason, title, times
)values (#{userName},#{operTime},#{operIp},#{operModel},#{operType},#{operDetails},
#{operResult},#{eventType},#{operParam},#{operMeth},#{logType},#{errGrade},#{errReason},#{title},#{times}
)
</insert>
<delete id="delRestoreLog">
delete from sys_logs where log_type = #{logType}
AND create_time &lt; #{updateDate}
</delete>
<!--查询菜单名称及模块-->
<select id="getModelTitle" resultType="com.securityControl.system.api.domain.SysLogsInfo">
select sm.menu_name operModel ,sm2.menu_name title ,sm.paths
from sys_menu sm
left join sys_menu sm2 on sm2.p_id=sm.id and sm2.types=1
where sm.types=1 and sm.paths like concat('%',#{operMeth},'%')
limit 1
</select>
<select id="getLogsLists" resultType="com.securityControl.system.api.domain.SysLogsInfo">
SELECT id, user_name userName, oper_time operTime,
oper_ip operIp, oper_model operModel, oper_type operType,
oper_details operDetails, oper_result operResult,
event_type eventType, oper_param operParam, oper_meth operMeth,
err_grade errGrade, err_reason errReason, title,log_type logType,
times
FROM sys_log_info
where log_type=#{logType}
</select>
<select id="getErrorLogs" resultType="java.lang.Integer">
select count(1)
from sys_log_info
where log_type=2
and DATE_FORMAT(oper_time,'%Y-%m-%d')=CURRENT_DATE
</select>
<select id="getLogsRl" resultType="java.lang.String">
SELECT
round(((data_length + index_length) / 1024 / 1024), 2) AS 'Size in MB'
FROM information_schema.TABLES
WHERE table_schema = 'gwjjspaq' AND table_name = 'sys_log_info'
</select>
<select id="getLogsSet" resultType="java.lang.String">
select content_size
from sys_log_config
</select>
</mapper>