<?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"> <resultMap id="BaseResultMap" type="com.aizuda.snailjob.template.datasource.persistence.po.RetryTaskLog"> <id column="id" jdbcType="BIGINT" property="id"/> <result column="unique_id" jdbcType="VARCHAR" property="uniqueId"/> <result column="namespace_id" jdbcType="VARCHAR" property="namespaceId"/> <result column="group_name" jdbcType="VARCHAR" property="groupName"/> <result column="scene_name" jdbcType="VARCHAR" property="sceneName"/> <result column="idempotent_id" jdbcType="VARCHAR" property="idempotentId"/> <result column="biz_no" jdbcType="VARCHAR" property="bizNo"/> <result column="executor_name" jdbcType="VARCHAR" property="executorName"/> <result column="args_str" jdbcType="VARCHAR" property="argsStr"/> <result column="ext_attrs" jdbcType="VARCHAR" property="extAttrs"/> <result column="retry_status" jdbcType="TINYINT" property="retryStatus"/> <result column="task_type" jdbcType="TINYINT" property="taskType"/> <result column="create_dt" jdbcType="TIMESTAMP" property="createDt"/> </resultMap> <sql id="Base_Column_List"> id, unique_id, group_name, scene_name, idempotent_id, biz_no, executor_name, args_str, ext_attrs, retry_status, create_dt, task_type, namespace_id </sql> <!-- 定义批量新增的 SQL 映射 --> <insert id="batchInsert" parameterType="java.util.List"> 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) VALUES <foreach collection="list" item="item" separator=","> (#{item.uniqueId}, #{item.groupName}, #{item.sceneName}, #{item.idempotentId}, #{item.bizNo}, #{item.executorName}, #{item.argsStr}, #{item.extAttrs}, #{item.taskType}, #{item.createDt}, #{item.namespaceId}) </foreach> </insert> <!-- 重试统计 --> <select id="retrySummaryRetryTaskLogList" 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 ${ew.customSqlSegment} </select> </mapper>