Blame | Last modification | View Log | RSS feed
<?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="in.shop2020.payment.persistence.RefundMapper"><resultMap type="refund" id="refundResult"><id property="id" column="id"/><collection property="attributes" javaType="ArrayList" column="id" ofType="refundAttribute" select="getAttributesForRefund"/></resultMap><insert id="insertRefund" parameterType="refund" useGeneratedKeys="true" keyProperty="id">INSERT INTO refund(gatewayId, paymentId, orderId, amount, attempts, createdAt)VALUES(#{gatewayId}, #{paymentId}, #{orderId}, #{amount}, 0, now())</insert><insert id="insertRefundAttribute" parameterType="map">INSERT INTO refundattribute(refund_id, name, value)VALUES(#{refundId}, #{name}, #{value})ON DUPLICATE KEY UPDATE value=values(value);</insert><update id="updateRefund" parameterType="refund">UPDATE refundSET<if test="processedAt != null">processedAt = #{processedAt},</if>attempts = #{attempts}WHERE id=#{id}</update><sql id="selectAllRefundFields">SELECT * FROM refund</sql><sql id="batchSizeLimit"><if test="batchSize !=0">LIMIT #{batchSize}</if></sql><select id="getRefund" parameterType="int" resultMap="refundResult"><include refid="selectAllRefundFields"/>WHERE id=#{id}</select><select id="getRefunds" parameterType="int" resultMap="refundResult"><include refid="selectAllRefundFields"/>ORDER BY id<include refid="batchSizeLimit"/></select><select id="getPendingRefunds" parameterType="int" resultMap="refundResult"><include refid="selectAllRefundFields"/>WHERE processedAt is null and attempts < 5ORDER BY id<include refid="batchSizeLimit"/></select><select id="getFailedRefunds" parameterType="int" resultMap="refundResult"><include refid="selectAllRefundFields"/>WHERE processedAt is null and attempts >= 5ORDER BY id<include refid="batchSizeLimit"/></select><select id="getAttributesForRefund" parameterType="int" resultType="refundAttribute">SELECT * FROM refundattribute where refund_id = #{id}</select></mapper>