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

    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.aizuda.snailjob.template.datasource.persistence.po.RetryTaskLogMessage">
        <id column="id" property="id"/>
        <result column="group_name" property="groupName"/>
        <result column="unique_id" property="uniqueId"/>
        <result column="create_dt" property="createDt"/>
        <result column="message" property="message"/>
    </resultMap>

    <insert id="batchInsert" parameterType="java.util.List">
        INSERT INTO sj_retry_task_log_message (namespace_id, group_name, unique_id, log_num, message,
        create_dt, real_time)
        VALUES
        <foreach collection="list" item="item" separator=",">
            (
            #{item.namespaceId},
            #{item.groupName},
            #{item.uniqueId},
            #{item.logNum},
            #{item.message},
            #{item.createDt},
            #{item.realTime}
            )
        </foreach>
    </insert>

    <update id="batchUpdate" parameterType="java.util.List">
        UPDATE sj_retry_task_log_message jlm,
        (
        <foreach collection="list" item="item" index="index" separator="UNION ALL">
            SELECT
            #{item.message} AS message,
            #{item.logNum} AS log_num,
            #{item.id} AS id
        </foreach>
        ) tt
        SET jlm.message = tt.message, jlm.log_num = tt.log_num
        WHERE jlm.id = tt.id
    </update>

</mapper>