疯狂的狮子li
2022-01-13 a0bed51d966ab5d161d3fdd5423ba84f59fb60ff
ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogMapper.xml
@@ -1,273 +1,273 @@
<?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">
<!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" />
    <resultMap id="XxlJobLog" type="com.xxl.job.admin.core.model.XxlJobLog" >
        <result column="id" property="id" />
      <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="job_group" property="jobGroup" />
        <result column="job_id" property="jobId" />
      <result column="alarm_status" property="alarmStatus" />
   </resultMap>
        <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" />
   <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>
        <result column="trigger_time" property="triggerTime" />
        <result column="trigger_code" property="triggerCode" />
        <result column="trigger_msg" property="triggerMsg" />
   <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>
        <result column="handle_time" property="handleTime" />
        <result column="handle_code" property="handleCode" />
        <result column="handle_msg" property="handleMsg" />
   <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>
        <result column="alarm_status" property="alarmStatus" />
    </resultMap>
   <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>
    <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
            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
            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>
    <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>
    <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>
    <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>
    <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
      )
   -->
    <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>
</mapper>