<?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">

    <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)
        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="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
        ${ew.customSqlSegment}
    </select>

</mapper>