新版仿ok交易所-后端
1
zj
2025-09-07 e4174aed067985155c157f10b0c4294f18eb2359
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
113
114
115
116
117
118
119
120
121
122
<?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.yami.trading.dao.contract.ContractOrderMapper">
 
    <sql id="contractOrderColumns">
        a.UUID AS "uuid",
        a.PARTY_ID AS "partyId",
        a.SYMBOL AS "symbol",
        a.ORDER_NO AS "orderNo",
        a.DIRECTION AS "direction",
        a.UNIT_AMOUNT AS "unitAmount",
        a.AMOUNT_CLOSE AS "amountClose",
        a.FEE AS "fee",
        a.DEPOSIT AS "deposit",
        a.DEPOSIT_OPEN AS "depositOpen",
        a.PROFIT AS "profit",
        a.TRADE_AVG_PRICE AS "tradeAvgPrice",
        a.STOP_PRICE_PROFIT AS "stopPriceProfit",
        a.STOP_PRICE_LOSS AS "stopPriceLoss",
        a.PIPS AS "pips",
        a.PIPS_AMOUNT AS "pipsAmount",
        a.STATE AS "state",
        a.LEVER_RATE AS "leverRate",
        a.VOLUME AS "volume",
        a.VOLUME_OPEN AS "volumeOpen",
        a.CLOSE_TIME AS "closeTime",
        a.CLOSE_AVG_PRICE AS "closeAvgPrice",
        a.create_by AS "createBy",
        a.create_time AS "createTime",
        a.update_by AS "updateBy",
        a.update_time AS "updateTime",
        a.remarks AS "remarks",
        a.del_flag AS "delFlag",
        a.create_time_ts AS "createTimeTs",
        a.update_time_ts AS "updateTimeTs"
    </sql>
 
    <sql id="contractOrderJoins">
 
    </sql>
 
 
    <select id="listRecord" resultType="com.yami.trading.bean.contract.dto.ContractOrderDTO">
        select a.*,b.role_name AS "roleName",b.user_code AS "userCode",c.money,item.name AS "symbolName" from t_contract_order a
        left join tz_user b on a.PARTY_ID = b.user_id
        left join tz_wallet c ON c.user_id = b.user_id
        left join t_item item on a.symbol = item.SYMBOL
        <where>
            <if test="query.type!=null and query.type!=''">
                and item.type=#{query.type}
            </if>
            <if test="query.orderNo!=null and query.orderNo!=''">
                and a.order_no=#{query.orderNo}
            </if>
            <if test="query.children != null and query.children.size() >0">
                AND a.party_id in
                <foreach collection="query.children" item="item" index="index" open="(" close=")" separator=",">
                    #{item}
                </foreach>
            </if>
            <if test="query.state!=null and query.state!=''">
                and a.state=#{query.state}
            </if>
            <if test="query.startTime!=null and query.startTime!=''">
                and a.create_time &gt;= #{query.startTime}
            </if>
 
            <if test="query.endTime!=null and query.endTime!=''">
                and a.create_time &lt;= #{query.endTime}
            </if>
            <if test="query.userId!=null and query.userId!=''">
                and b.user_id=#{query.userId}
            </if>
            <if test="query.userCode!=null and query.userCode!=''">
                and b.user_code=#{query.userCode}
            </if>
            <if test="query.roleName!=null and query.roleName!=''">
                and b.role_name=#{query.roleName}
            </if>
            <if test="query.ip!=null and query.ip!=''">
                and b.user_lastip like CONCAT('%', #{query.ip}, '%')
            </if>
 
            <if test="query.userName!=null and query.userName!=''">
                AND (b.user_name like CONCAT('%', #{query.userName}, '%') or b.user_code like CONCAT('%',
                #{query.userName}, '%'))
            </if>
        </where>
        GROUP BY a.order_no
        order by a.create_time desc
    </select>
 
 
    <select id="findById" resultType="com.yami.trading.bean.contract.dto.ContractOrderDTO">
        SELECT
        <include refid="contractOrderColumns"/>
        FROM t_contract_order a
        <include refid="contractOrderJoins"/>
        WHERE a.uuid = #{id} and a.del_flag = 0
    </select>
 
    <select id="findList" resultType="com.yami.trading.bean.contract.dto.ContractOrderDTO">
        SELECT
        <include refid="contractOrderColumns"/>
        FROM t_contract_order a
        <include refid="contractOrderJoins"/>
        ${ew.customSqlSegment}
    </select>
 
    <update id="batchUpdateBuffer">
        <foreach collection="list" item="item" index="index" open="" separator=";" close="">
            UPDATE t_contract_order
            SET force_close_price =#{item.forceClosePrice},
            close_avg_price = #{item.closeAvgPrice},
            profit = #{item.profit}
            WHERE uuid = #{item.uuid}
        </foreach>
    </update>
 
 
 
</mapper>