gs-jjsp-service/securityControl-modules/securityControl-system/target/classes/mapper/system/SysLogsMapper.xml

264 lines
11 KiB
XML

<?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.domain.vo.SysLogVo">
select user_name operName, model title, details detail, method, ip operIp, create_time operTime, grade,
businessType, role_name roleName, log_time logTime, dept_name deptName, err_msg errorMsg, log_type logType,
uri operUrl, status
from sys_logs
<where>
<if test="roleName != null and roleName != ''">
AND role_name like concat('%', #{roleName}, '%')
</if>
<if test="operIp != null and operIp != ''">
AND ip like concat('%', #{operIp}, '%')
</if>
<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="title != null and title != ''">
AND model like concat('%', #{title}, '%')
</if>
<if test="logType != null and logType != ''">
AND log_type = #{logType}
</if>
<if test="detail != null and detail != ''">
AND details like concat('%', #{detail}, '%')
</if>
<if test="grade != null and grade != ''">
AND grade like concat('%', #{grade}, '%')
</if>
<if test="status != null">
AND status = #{status}
</if>
</where>
order by ${orderType} ${orderBy}
</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 status = 0 WHEN 1 THEN 0 END) totalSuccess,
count(CASE status = 1 WHEN 1 THEN 0 END) totalFail
FROM sys_logs
WHERE log_type != '运行日志'
<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>
</select>
<select id="statistics" resultType="java.util.Map">
SELECT any_value(grade) grade,
log_type logType,
COUNT(1) AS total,
count(CASE status = 0 WHEN 1 THEN 0 END) success,
count(CASE status = 1 WHEN 1 THEN 0 END) fail
FROM sys_logs
WHERE log_type != '运行日志'
<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>
<choose>
<when test="keyword != null and keyword == 'logType'">
GROUP BY log_type
</when>
<when test="keyword != null and keyword == 'model'">
GROUP BY grade
</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>
<update id="updateSql">
${sqlData}
</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>
<delete id="delRestoreLog">
delete from sys_logs where log_type = #{logType}
AND create_time &lt; #{updateDate}
</delete>
<select id="getYueQuan" resultType="java.util.Map">
SELECT user_name as userName ,details,ip,DATE_FORMAT(create_time,'%Y-%m-%d %T') as createTime
FROM sys_logs
WHERE grade = '越权访问' and date(create_time) = current_date
order by id desc
limit 1
</select>
</mapper>