gtsoft-snail-job-server/snail-job-datasource/snail-job-datasource-template/src/main/resources/template/mapper/RetryTaskLogMapper.xml

52 lines
2.6 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.aizuda.snailjob.template.datasource.persistence.mapper.RetryTaskLogMapper">
<sql id="insertBatch_Column_List">
#{item.uniqueId},
#{item.groupName},
#{item.sceneName},
#{item.idempotentId},
#{item.bizNo},
#{item.executorName},
#{item.argsStr},
#{item.extAttrs},
#{item.taskType},
#{item.createDt},
#{item.namespaceId}
</sql>
<insert id="insertBatch" parameterType="java.util.List" useGeneratedKeys="false">
INSERT INTO sj_retry_task_log (unique_id, group_name, scene_name, idempotent_id, biz_no, executor_name,
args_str, ext_attrs, task_type, create_dt, namespace_id)
<if test="@com.aizuda.snailjob.template.datasource.utils.DbUtils@notOracle()">
VALUES
<foreach collection="list" item="item" open="(" separator="," close=")">
<include refid="insertBatch_Column_List" />
</foreach>
</if>
<if test="@com.aizuda.snailjob.template.datasource.utils.DbUtils@isOracle()">
<foreach collection="list" item="item" open="SELECT" separator="UNION ALL" close="FROM DUAL">
<include refid="insertBatch_Column_List" />
</foreach>
</if>
</insert>
<!-- 重试统计 -->
<select id="selectRetryRetryTaskLogSummaryList"
resultType="com.aizuda.snailjob.template.datasource.persistence.dataobject.DashboardRetryResponseDO">
SELECT namespace_id AS namespaceId,
group_name AS groupName,
scene_name AS sceneName,
SUM(CASE WHEN (retry_status = 0) THEN 1 ELSE 0 END) AS runningNum,
SUM(CASE WHEN (retry_status = 1) THEN 1 ELSE 0 END) AS finishNum,
SUM(CASE WHEN (retry_status = 2) THEN 1 ELSE 0 END) AS maxCountNum,
SUM(CASE WHEN (retry_status = 3) THEN 1 ELSE 0 END) AS suspendNum
FROM sj_retry_task_log a
join (SELECT namespace_id AS namespaceId, group_name AS groupName, scene_name AS sceneName
FROM sj_retry_scene_config) b
on a.namespace_id = b.namespaceId and a.group_name = b.groupName and a.scene_name = b.sceneName
${ew.customSqlSegment}
</select>
</mapper>