<?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.xxl.job.admin.dao.XxlJobLogDao">
|
|
<resultMap id="XxlJobLog" type="com.xxl.job.admin.core.model.XxlJobLog" >
|
<result column="id" property="id" />
|
|
<result column="job_group" property="jobGroup" />
|
<result column="job_id" property="jobId" />
|
|
<result column="executor_address" property="executorAddress" />
|
<result column="executor_handler" property="executorHandler" />
|
<result column="executor_param" property="executorParam" />
|
<result column="executor_sharding_param" property="executorShardingParam" />
|
<result column="executor_fail_retry_count" property="executorFailRetryCount" />
|
|
<result column="trigger_time" property="triggerTime" />
|
<result column="trigger_code" property="triggerCode" />
|
<result column="trigger_msg" property="triggerMsg" />
|
|
<result column="handle_time" property="handleTime" />
|
<result column="handle_code" property="handleCode" />
|
<result column="handle_msg" property="handleMsg" />
|
|
<result column="alarm_status" property="alarmStatus" />
|
</resultMap>
|
|
<sql id="Base_Column_List">
|
t.id,
|
t.job_group,
|
t.job_id,
|
t.executor_address,
|
t.executor_handler,
|
t.executor_param,
|
t.executor_sharding_param,
|
t.executor_fail_retry_count,
|
t.trigger_time,
|
t.trigger_code,
|
t.trigger_msg,
|
t.handle_time,
|
t.handle_code,
|
t.handle_msg,
|
t.alarm_status
|
</sql>
|
|
<select id="pageList" resultMap="XxlJobLog">
|
SELECT <include refid="Base_Column_List" />
|
FROM xxl_job_log AS t
|
<trim prefix="WHERE" prefixOverrides="AND | OR" >
|
<if test="jobId==0 and jobGroup gt 0">
|
AND t.job_group = #{jobGroup}
|
</if>
|
<if test="jobId gt 0">
|
AND t.job_id = #{jobId}
|
</if>
|
<if test="triggerTimeStart != null">
|
AND t.trigger_time <![CDATA[ >= ]]> #{triggerTimeStart}
|
</if>
|
<if test="triggerTimeEnd != null">
|
AND t.trigger_time <![CDATA[ <= ]]> #{triggerTimeEnd}
|
</if>
|
<if test="logStatus == 1" >
|
AND t.handle_code = 200
|
</if>
|
<if test="logStatus == 2" >
|
AND (
|
t.trigger_code NOT IN (0, 200) OR
|
t.handle_code NOT IN (0, 200)
|
)
|
</if>
|
<if test="logStatus == 3" >
|
AND t.trigger_code = 200
|
AND t.handle_code = 0
|
</if>
|
</trim>
|
ORDER BY t.trigger_time DESC
|
LIMIT #{offset}, #{pagesize}
|
</select>
|
|
<select id="pageListCount" resultType="int">
|
SELECT count(1)
|
FROM xxl_job_log AS t
|
<trim prefix="WHERE" prefixOverrides="AND | OR" >
|
<if test="jobId==0 and jobGroup gt 0">
|
AND t.job_group = #{jobGroup}
|
</if>
|
<if test="jobId gt 0">
|
AND t.job_id = #{jobId}
|
</if>
|
<if test="triggerTimeStart != null">
|
AND t.trigger_time <![CDATA[ >= ]]> #{triggerTimeStart}
|
</if>
|
<if test="triggerTimeEnd != null">
|
AND t.trigger_time <![CDATA[ <= ]]> #{triggerTimeEnd}
|
</if>
|
<if test="logStatus == 1" >
|
AND t.handle_code = 200
|
</if>
|
<if test="logStatus == 2" >
|
AND (
|
t.trigger_code NOT IN (0, 200) OR
|
t.handle_code NOT IN (0, 200)
|
)
|
</if>
|
<if test="logStatus == 3" >
|
AND t.trigger_code = 200
|
AND t.handle_code = 0
|
</if>
|
</trim>
|
</select>
|
|
<select id="load" parameterType="java.lang.Long" resultMap="XxlJobLog">
|
SELECT <include refid="Base_Column_List" />
|
FROM xxl_job_log AS t
|
WHERE t.id = #{id}
|
</select>
|
|
|
<insert id="save" parameterType="com.xxl.job.admin.core.model.XxlJobLog" useGeneratedKeys="true" keyProperty="id" >
|
INSERT INTO xxl_job_log (
|
`job_group`,
|
`job_id`,
|
`trigger_time`,
|
`trigger_code`,
|
`handle_code`
|
) VALUES (
|
#{jobGroup},
|
#{jobId},
|
#{triggerTime},
|
#{triggerCode},
|
#{handleCode}
|
);
|
<!--<selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id">
|
SELECT LAST_INSERT_ID()
|
</selectKey>-->
|
</insert>
|
|
<update id="updateTriggerInfo" >
|
UPDATE xxl_job_log
|
SET
|
`trigger_time`= #{triggerTime},
|
`trigger_code`= #{triggerCode},
|
`trigger_msg`= #{triggerMsg},
|
`executor_address`= #{executorAddress},
|
`executor_handler`=#{executorHandler},
|
`executor_param`= #{executorParam},
|
`executor_sharding_param`= #{executorShardingParam},
|
`executor_fail_retry_count`= #{executorFailRetryCount}
|
WHERE `id`= #{id}
|
</update>
|
|
<update id="updateHandleInfo">
|
UPDATE xxl_job_log
|
SET
|
`handle_time`= #{handleTime},
|
`handle_code`= #{handleCode},
|
`handle_msg`= #{handleMsg}
|
WHERE `id`= #{id}
|
</update>
|
|
<delete id="delete" >
|
delete from xxl_job_log
|
WHERE job_id = #{jobId}
|
</delete>
|
|
<!--<select id="triggerCountByDay" resultType="java.util.Map" >
|
SELECT
|
DATE_FORMAT(trigger_time,'%Y-%m-%d') triggerDay,
|
COUNT(handle_code) triggerDayCount,
|
SUM(CASE WHEN (trigger_code in (0, 200) and handle_code = 0) then 1 else 0 end) as triggerDayCountRunning,
|
SUM(CASE WHEN handle_code = 200 then 1 else 0 end) as triggerDayCountSuc
|
FROM xxl_job_log
|
WHERE trigger_time BETWEEN #{from} and #{to}
|
GROUP BY triggerDay
|
ORDER BY triggerDay
|
</select>-->
|
|
<select id="findLogReport" resultType="java.util.Map" >
|
SELECT
|
COUNT(handle_code) triggerDayCount,
|
SUM(CASE WHEN (trigger_code in (0, 200) and handle_code = 0) then 1 else 0 end) as triggerDayCountRunning,
|
SUM(CASE WHEN handle_code = 200 then 1 else 0 end) as triggerDayCountSuc
|
FROM xxl_job_log
|
WHERE trigger_time BETWEEN #{from} and #{to}
|
</select>
|
|
<select id="findClearLogIds" resultType="long" >
|
SELECT id FROM xxl_job_log
|
<trim prefix="WHERE" prefixOverrides="AND | OR" >
|
<if test="jobGroup gt 0">
|
AND job_group = #{jobGroup}
|
</if>
|
<if test="jobId gt 0">
|
AND job_id = #{jobId}
|
</if>
|
<if test="clearBeforeTime != null">
|
AND trigger_time <![CDATA[ <= ]]> #{clearBeforeTime}
|
</if>
|
<if test="clearBeforeNum gt 0">
|
AND id NOT in(
|
SELECT id FROM(
|
SELECT id FROM xxl_job_log AS t
|
<trim prefix="WHERE" prefixOverrides="AND | OR" >
|
<if test="jobGroup gt 0">
|
AND t.job_group = #{jobGroup}
|
</if>
|
<if test="jobId gt 0">
|
AND t.job_id = #{jobId}
|
</if>
|
</trim>
|
ORDER BY t.trigger_time desc
|
LIMIT 0, #{clearBeforeNum}
|
) t1
|
)
|
</if>
|
</trim>
|
order by id asc
|
LIMIT #{pagesize}
|
</select>
|
|
<delete id="clearLog" >
|
delete from xxl_job_log
|
WHERE id in
|
<foreach collection="logIds" item="item" open="(" close=")" separator="," >
|
#{item}
|
</foreach>
|
</delete>
|
|
<select id="findFailJobLogIds" resultType="long" >
|
SELECT id FROM `xxl_job_log`
|
WHERE !(
|
(trigger_code in (0, 200) and handle_code = 0)
|
OR
|
(handle_code = 200)
|
)
|
AND `alarm_status` = 0
|
ORDER BY id ASC
|
LIMIT #{pagesize}
|
</select>
|
|
<update id="updateAlarmStatus" >
|
UPDATE xxl_job_log
|
SET
|
`alarm_status` = #{newAlarmStatus}
|
WHERE `id`= #{logId} AND `alarm_status` = #{oldAlarmStatus}
|
</update>
|
|
<select id="findLostJobIds" resultType="long" >
|
SELECT
|
t.id
|
FROM
|
xxl_job_log t
|
LEFT JOIN xxl_job_registry t2 ON t.executor_address = t2.registry_value
|
WHERE
|
t.trigger_code = 200
|
AND t.handle_code = 0
|
AND t.trigger_time <![CDATA[ <= ]]> #{losedTime}
|
AND t2.id IS NULL;
|
</select>
|
<!--
|
SELECT t.id
|
FROM xxl_job_log AS t
|
WHERE t.trigger_code = 200
|
and t.handle_code = 0
|
and t.trigger_time <![CDATA[ <= ]]> #{losedTime}
|
and t.executor_address not in (
|
SELECT t2.registry_value
|
FROM xxl_job_registry AS t2
|
)
|
-->
|
|
</mapper>
|