zainali5120
2021-02-23 705635efdd5000152d9c4423ae980ccdc34632a8
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
<?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.xcong.excoin.modules.contract.dao.ContractOrderDao">
 
 
    <select id="selectContractOrderInPage" resultType="com.xcong.excoin.modules.contract.entity.ContractOrderEntity">
        select
            create_time,
            id,
            member_id,
            order_no,
            position_type,
            trade_type,
            order_type,
            order_status,
            entrust_opening_price,
            entrust_time,
            symbol,
            symbol_cnt,
            symbol_sku,
            closing_price,
            closing_time,
            closing_fee_amount*(select fee_spread_ratio from platform_trade_setting) closing_fee_amount,
            closing_type,
            lever_ratio,
            stop_loss_price,
            stop_profit_price,
            reward_amount,
            reward_ratio,
            opening_price,
            opening_time,
            pre_payment_amount,
            bond_amount,
            mark_price,
            force_closing_price,
            hold_amount,
            opening_fee_amount*(select fee_spread_ratio from platform_trade_setting) opening_fee_amount
        from contract_order
        <if test="record != null">
            <where>
                <if test="record.memberId != null" >
                    and member_id=#{record.memberId}
                </if>
                <if test="record.symbol != null and record.symbol != ''">
                    and symbol = #{record.symbol}
                </if>
            </where>
        </if>
        order by create_time desc, id desc
    </select>
 
    <select id="selectOrderDetailByIdAndMemberId" resultType="com.xcong.excoin.modules.contract.entity.ContractOrderEntity">
        select * from contract_order where id=#{id} and member_id=#{memberId}
    </select>
 
    <select id="selectFollowOrderByMemberId" resultType="com.xcong.excoin.modules.contract.entity.ContractOrderEntity">
        select *
        from contract_order a, follow_follower_order_relation b
        where a.id=b.order_id and a.member_id=#{memberId}
    </select>
 
    <select id="selectFollowOrderTotalProfitByMemberId" resultType="java.math.BigDecimal">
        select sum(reward_ratio)*100
        from contract_order
        where member_id=#{memberId} and contract_type=2
    </select>
 
    <select id="selectFollowOrderCntForWinRate" resultType="java.lang.Integer">
        select count(1)
        from contract_order a
        where member_id=#{memberId}
        and contract_type=2 and order_type in (3,4)
        <if test="type!=null and type==1">
            and reward_amount > 0
        </if>
        <if test="type!=null and type==2">
            and 0 > reward_amount
        </if>
    </select>
 
    <select id="selectWholeOpenOrderByOrderNo" resultType="com.xcong.excoin.modules.contract.entity.ContractOrderEntity">
        select * from contract_order
        where order_no=#{orderNo}
        and order_type in (1,2) and order_status=1
    </select>
 
    <select id="selectWholeFeeAmountByOrderNo" resultType="java.math.BigDecimal">
        select sum(opening_fee_amount)
        from contract_order
        where order_no=#{orderNo}
        and order_type in (1,2) and order_status=1
    </select>
 
    <update id="updateOrderProfitOrLessById">
        update contract_order
        set reward_amount=#{rewardAmount},
        reward_ratio=#{rewardRatio}
        where id=#{id}
    </update>
</mapper>