Files
schoolNews/schoolNewsServ/crontab/src/main/resources/mapper/CrontabLogMapper.xml

209 lines
8.3 KiB
XML
Raw Normal View History

2025-10-25 18:46:54 +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="org.xyzh.crontab.mapper.CrontabLogMapper">
<!-- 结果映射 -->
<resultMap id="BaseResultMap" type="org.xyzh.common.dto.crontab.TbCrontabLog">
2025-11-28 17:16:17 +08:00
<id column="id" property="id" />
2025-10-25 18:46:54 +08:00
<result column="task_id" property="taskId" />
<result column="task_name" property="taskName" />
<result column="task_group" property="taskGroup" />
<result column="bean_name" property="beanName" />
<result column="method_name" property="methodName" />
<result column="method_params" property="methodParams" />
<result column="execute_status" property="executeStatus" />
<result column="execute_message" property="executeMessage" />
<result column="exception_info" property="exceptionInfo" />
<result column="start_time" property="startTime" />
<result column="end_time" property="endTime" />
<result column="execute_duration" property="executeDuration" />
<result column="create_time" property="createTime" />
<result column="update_time" property="updateTime" />
<result column="delete_time" property="deleteTime" />
<result column="deleted" property="deleted" />
</resultMap>
<!-- 字段列表 -->
<sql id="Base_Column_List">
id, task_id, task_name, task_group, bean_name, method_name, method_params,
execute_status, execute_message, exception_info, start_time, end_time,
execute_duration, create_time, update_time, delete_time, deleted
</sql>
<!-- 查询条件 -->
<sql id="Base_Where_Clause">
<where>
<if test="filter != null">
2025-11-28 17:16:17 +08:00
<if test="filter.id != null and filter.id != ''">
AND id = #{filter.id}
2025-10-25 18:46:54 +08:00
</if>
<if test="filter.taskId != null and filter.taskId != ''">
AND task_id = #{filter.taskId}
</if>
<if test="filter.taskName != null and filter.taskName != ''">
AND task_name LIKE CONCAT('%', #{filter.taskName}, '%')
</if>
<if test="filter.taskGroup != null and filter.taskGroup != ''">
AND task_group = #{filter.taskGroup}
</if>
<if test="filter.beanName != null and filter.beanName != ''">
AND bean_name = #{filter.beanName}
</if>
<if test="filter.executeStatus != null">
AND execute_status = #{filter.executeStatus}
</if>
<if test="filter.deleted != null">
AND deleted = #{filter.deleted}
</if>
</if>
</where>
</sql>
<!-- 插入日志 -->
<insert id="insertLog">
INSERT INTO tb_crontab_log
<trim prefix="(" suffix=")" suffixOverrides=",">
2025-11-28 17:16:17 +08:00
<if test="log.id != null">id,</if>
2025-10-25 18:46:54 +08:00
<if test="log.taskId != null">task_id,</if>
<if test="log.taskName != null">task_name,</if>
<if test="log.taskGroup != null">task_group,</if>
<if test="log.beanName != null">bean_name,</if>
<if test="log.methodName != null">method_name,</if>
<if test="log.methodParams != null">method_params,</if>
<if test="log.executeStatus != null">execute_status,</if>
<if test="log.executeMessage != null">execute_message,</if>
<if test="log.exceptionInfo != null">exception_info,</if>
<if test="log.startTime != null">start_time,</if>
<if test="log.endTime != null">end_time,</if>
<if test="log.executeDuration != null">execute_duration,</if>
<if test="log.createTime != null">create_time,</if>
deleted
</trim>
VALUES
<trim prefix="(" suffix=")" suffixOverrides=",">
2025-11-28 17:16:17 +08:00
<if test="log.id != null">#{log.id},</if>
2025-10-25 18:46:54 +08:00
<if test="log.taskId != null">#{log.taskId},</if>
<if test="log.taskName != null">#{log.taskName},</if>
<if test="log.taskGroup != null">#{log.taskGroup},</if>
<if test="log.beanName != null">#{log.beanName},</if>
<if test="log.methodName != null">#{log.methodName},</if>
<if test="log.methodParams != null">#{log.methodParams},</if>
<if test="log.executeStatus != null">#{log.executeStatus},</if>
<if test="log.executeMessage != null">#{log.executeMessage},</if>
<if test="log.exceptionInfo != null">#{log.exceptionInfo},</if>
<if test="log.startTime != null">#{log.startTime},</if>
<if test="log.endTime != null">#{log.endTime},</if>
<if test="log.executeDuration != null">#{log.executeDuration},</if>
<if test="log.createTime != null">#{log.createTime},</if>
0
</trim>
</insert>
2025-11-12 19:16:50 +08:00
<!-- updateLog -->
<update id="updateLog">
UPDATE tb_crontab_log
SET
<if test="log.executeStatus != null">execute_status = #{log.executeStatus},</if>
<if test="log.executeMessage != null">execute_message = #{log.executeMessage},</if>
<if test="log.exceptionInfo != null">exception_info = #{log.exceptionInfo},</if>
<if test="log.endTime != null">end_time = #{log.endTime},</if>
<if test="log.executeDuration != null">execute_duration = #{log.executeDuration},</if>
update_time = NOW()
2025-11-28 17:16:17 +08:00
WHERE id = #{log.id} AND deleted = 0
2025-11-12 19:16:50 +08:00
</update>
2025-10-25 18:46:54 +08:00
<!-- 根据ID查询日志 -->
<select id="selectLogById" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List" />
FROM tb_crontab_log
WHERE id = #{logId} AND deleted = 0
</select>
<!-- 根据任务ID查询日志列表 -->
<select id="selectLogsByTaskId" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List" />
FROM tb_crontab_log
WHERE task_id = #{taskId} AND deleted = 0
ORDER BY start_time DESC
</select>
<!-- 根据过滤条件查询日志列表 -->
<select id="selectLogList" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List" />
FROM tb_crontab_log
<include refid="Base_Where_Clause" />
ORDER BY start_time DESC
</select>
<!-- 分页查询日志列表 -->
<select id="selectLogPage" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List" />
FROM tb_crontab_log
<include refid="Base_Where_Clause" />
ORDER BY start_time DESC
LIMIT #{pageParam.pageSize} OFFSET #{pageParam.offset}
</select>
<!-- 统计日志总数 -->
<select id="countLogs" resultType="long">
SELECT COUNT(*)
FROM tb_crontab_log
<include refid="Base_Where_Clause" />
</select>
<!-- 删除日志(逻辑删除) -->
<update id="deleteLog">
UPDATE tb_crontab_log
SET deleted = 1,
delete_time = NOW()
WHERE id = #{logId} AND deleted = 0
</update>
<!-- 批量删除日志 -->
<update id="batchDeleteLogs">
UPDATE tb_crontab_log
SET deleted = 1,
delete_time = NOW()
WHERE deleted = 0
AND id IN
<foreach collection="ids" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</update>
<!-- 清理指定时间之前的日志 -->
<update id="cleanLogsByDate">
UPDATE tb_crontab_log
SET deleted = 1,
delete_time = NOW()
WHERE deleted = 0
AND create_time &lt; #{beforeDate}
</update>
<!-- 根据任务ID和执行状态查询日志 -->
<select id="selectLogsByTaskIdAndStatus" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List" />
FROM tb_crontab_log
WHERE task_id = #{taskId}
AND execute_status = #{executeStatus}
AND deleted = 0
ORDER BY start_time DESC
</select>
<!-- 查询最近的执行日志 -->
<select id="selectRecentLogs" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List" />
FROM tb_crontab_log
WHERE task_id = #{taskId} AND deleted = 0
ORDER BY start_time DESC
LIMIT #{limit}
</select>
</mapper>