wlzboy
2025-12-03 7c790c248c137a2fa5525bf66ed04c25043cded7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<?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>