xiaoyong931011
2022-10-22 9cc3cf1059d45956f2def7b2b4beb7a112e85c85
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
<?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="cc.mrbird.febs.dapp.mapper.DappWalletCoinDao">
 
    <select id="selectByMemberId" resultType="cc.mrbird.febs.dapp.entity.DappWalletCoinEntity">
        select * from dapp_wallet_coin where member_id=#{memberId} limit 1 for update
    </select>
 
    <select id="selectInPage" resultType="cc.mrbird.febs.dapp.entity.DappWalletCoinEntity">
        select a.*, b.address address from dapp_wallet_coin a
        inner join dapp_member b on a.member_id=b.id
        <where>
            <if test="record.currentUser != null">
                and b.referer_id = (select invite_id from dapp_user_member_relate where user_id=#{record.currentUser})
            </if>
            <if test="record.address != '' and record.address != null">
                and b.address = #{record.address}
            </if>
        </where>
    </select>
 
    <update id="addAvailableAndDelFrozenById">
        update dapp_wallet_coin
        set
            available_amount = available_amount + #{balance},
            frozen_amount = frozen_amount - #{balance}
        where
            id = #{id}
          and frozen_amount - #{balance} <![CDATA[ >= ]]> 0
    </update>
 
    <update id="addFrozenAndDelAvailableById">
        update dapp_wallet_coin
        set
            available_amount = available_amount - #{balance},
            frozen_amount = frozen_amount + #{balance}
        where
            id = #{id}
          and available_amount - #{balance} <![CDATA[ >= ]]> 0
    </update>
 
    <update id="delTotalAndDelFrozenById">
        update dapp_wallet_coin
        set
            total_amount = total_amount - #{balance},
            frozen_amount = frozen_amount - #{balance}
        where
              id = #{id}
          and total_amount - #{balance} <![CDATA[ >= ]]> 0
          and frozen_amount - #{balance} <![CDATA[ >= ]]> 0
    </update>
 
    <update id="addTotalAndaddAvailableById">
        update dapp_wallet_coin
        set
            total_amount = total_amount + #{balance},
            available_amount = available_amount + #{balance}
        where
              id = #{id}
    </update>
 
    <update id="delAvailableDelTotalById">
        update dapp_wallet_coin
        set
            total_amount = total_amount - #{balance},
            available_amount = available_amount - #{balance}
        where
              id = #{id}
           and total_amount - #{balance} <![CDATA[ >= ]]> 0
    </update>
 
 
    <select id="selectWalletCoinBymIdAndCode" resultType="cc.mrbird.febs.dapp.entity.DappWalletCoinEntity">
        select * from member_wallet_coin where member_id = #{memberId} and wallet_code = #{walletCode}
    </select>
 
    <update id="updateFrozenBalance" parameterType="map">
        UPDATE member_wallet_coin
        SET available_balance = available_balance - #{amount},
            frozen_balance = frozen_balance + #{amount}
        WHERE
            id = #{id}
          AND member_id = #{memberId}
    </update>
 
    <update id="subFrozenBalance" parameterType="map">
        UPDATE member_wallet_coin
        SET available_balance = available_balance + #{amount},
            frozen_balance = frozen_balance - #{amount}
        WHERE
            id = #{id}
          AND member_id = #{memberId}
    </update>
 
 
    <update id="updateBlockBalance">
        update member_wallet_coin
        set
            available_balance = IFNULL(available_balance, 0) + #{availableBalance},
            total_balance = IFNULL(total_balance, 0) + #{availableBalance},
            early_balance = IFNULL(early_balance, 0) + #{earlyBalance},
            block_number  = IFNULL(block_number, 0) + #{blockNumber}
        where id=#{id}
    </update>
 
    <update id="reduceFrozenBalance">
        update member_wallet_coin
        set frozen_balance = frozen_balance - #{amount},
            total_balance = total_balance - #{amount}
        where id=#{id}
    </update>
</mapper>