62 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			XML
		
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			2.4 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="cn.iocoder.mall.pay.biz.dao.PayNotifyTaskMapper">
 | |
| 
 | |
|     <sql id="FIELDS">
 | |
|         id, app_id, type,
 | |
|         status, next_notify_time, last_execute_time, notify_times, max_notify_times,
 | |
|         create_time
 | |
|     </sql>
 | |
| 
 | |
|     <resultMap id="PayNotifyTaskResultMap" type="PayNotifyTaskDO">
 | |
|         <result property="transaction" column="transaction"
 | |
|                 javaType="cn.iocoder.mall.pay.biz.dataobject.PayNotifyTaskDO$Transaction"
 | |
|                 typeHandler="cn.iocoder.common.framework.mybatis.JSONTypeHandler"/>
 | |
|         <result property="refund" column="refund"
 | |
|                 javaType="cn.iocoder.mall.pay.biz.dataobject.PayNotifyTaskDO$Refund"
 | |
|                 typeHandler="cn.iocoder.common.framework.mybatis.JSONTypeHandler"/>
 | |
|     </resultMap>
 | |
| 
 | |
|     <insert id="insert" parameterType="PayNotifyTaskDO" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
 | |
|         INSERT INTO notify_task (
 | |
|             app_id, type,
 | |
|             status, next_notify_time, notify_times, max_notify_times,
 | |
|             `transaction`, refund
 | |
|         ) VALUES (
 | |
|             #{appId}, #{type},
 | |
|             #{status}, #{nextNotifyTime}, #{notifyTimes}, #{maxNotifyTimes},
 | |
|             #{transaction, typeHandler=cn.iocoder.common.framework.mybatis.JSONTypeHandler},
 | |
|             #{refund, typeHandler=cn.iocoder.common.framework.mybatis.JSONTypeHandler}
 | |
|         )
 | |
|     </insert>
 | |
| 
 | |
|     <update id="update" parameterType="PayNotifyTaskDO">
 | |
|         UPDATE notify_task
 | |
|         <set>
 | |
|             <if test="status != null">
 | |
|                 , status = #{status}
 | |
|             </if>
 | |
|             <if test="nextNotifyTime != null">
 | |
|                 , next_notify_time = #{nextNotifyTime}
 | |
|             </if>
 | |
|             <if test="lastExecuteTime != null">
 | |
|                 , last_execute_time = #{lastExecuteTime}
 | |
|             </if>
 | |
|             <if test="notifyTimes != null">
 | |
|                 , notify_times = #{notifyTimes}
 | |
|             </if>
 | |
|         </set>
 | |
|         WHERE id = #{id}
 | |
|     </update>
 | |
| 
 | |
|     <select id="selectByNotify" resultMap="PayNotifyTaskResultMap">
 | |
|         SELECT
 | |
|             <include refid="FIELDS"/>
 | |
|         FROM notify_task
 | |
|         WHERE status IN (1, 4, 5)
 | |
|         AND next_notify_time <![CDATA[ <= ]]> NOW()
 | |
|         AND last_execute_time > next_notify_time
 | |
|     </select>
 | |
| 
 | |
| </mapper>
 |