<?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.ruoyi.payment.infrastructure.persistence.mapper.PaymentTransactionMapper">
|
|
<resultMap id="PaymentTransactionResult" type="com.ruoyi.payment.domain.model.PaymentTransaction">
|
<id property="id" column="id"/>
|
<result property="orderId" column="order_id"/>
|
<result property="channel" column="channel"/>
|
<result property="clientType" column="client_type"/>
|
<result property="status" column="status"/>
|
<result property="codeOrQr" column="code_or_qr"/>
|
<result property="qrBase64" column="qr_base64"/>
|
<result property="requestParams" column="request_params"/>
|
<result property="responseSnapshot" column="response_snapshot"/>
|
<result property="channelTradeNo" column="channel_trade_no"/>
|
<result property="createdAt" column="created_at"/>
|
<result property="paidAt" column="paid_at"/>
|
</resultMap>
|
|
<insert id="insert" parameterType="com.ruoyi.payment.domain.model.PaymentTransaction">
|
INSERT INTO pay_transaction (
|
id, order_id, channel, client_type, status,
|
code_or_qr, qr_base64, request_params, response_snapshot,
|
channel_trade_no, created_at, paid_at
|
) VALUES (
|
#{id}, #{orderId}, #{channel}, #{clientType}, #{status},
|
#{codeOrQr}, #{qrBase64}, #{requestParams}, #{responseSnapshot},
|
#{channelTradeNo}, #{createdAt}, #{paidAt}
|
)
|
</insert>
|
|
<update id="update" parameterType="com.ruoyi.payment.domain.model.PaymentTransaction">
|
UPDATE pay_transaction
|
<set>
|
<if test="orderId != null">order_id = #{orderId},</if>
|
<if test="channel != null">channel = #{channel},</if>
|
<if test="clientType != null">client_type = #{clientType},</if>
|
<if test="status != null">status = #{status},</if>
|
<if test="codeOrQr != null">code_or_qr = #{codeOrQr},</if>
|
<if test="qrBase64 != null">qr_base64 = #{qrBase64},</if>
|
<if test="requestParams != null">request_params = #{requestParams},</if>
|
<if test="responseSnapshot != null">response_snapshot = #{responseSnapshot},</if>
|
<if test="channelTradeNo != null">channel_trade_no = #{channelTradeNo},</if>
|
<if test="paidAt != null">paid_at = #{paidAt},</if>
|
</set>
|
WHERE id = #{id}
|
</update>
|
|
<select id="selectById" resultMap="PaymentTransactionResult">
|
SELECT * FROM pay_transaction
|
WHERE id = #{id}
|
</select>
|
|
<select id="selectPendingByOrderId" resultMap="PaymentTransactionResult">
|
SELECT * FROM pay_transaction
|
WHERE order_id = #{orderId}
|
AND status = 'PENDING'
|
LIMIT 1
|
</select>
|
|
<select id="selectByChannelTradeNo" resultMap="PaymentTransactionResult">
|
SELECT * FROM pay_transaction
|
WHERE channel_trade_no = #{channelTradeNo}
|
LIMIT 1
|
</select>
|
|
<select id="selectLatestByOrderId" resultMap="PaymentTransactionResult">
|
SELECT * FROM pay_transaction
|
WHERE order_id = #{orderId}
|
ORDER BY created_at DESC
|
LIMIT 1
|
</select>
|
|
</mapper>
|