Helius
2020-09-08 3b51e28456fc8c3ca03a27df70645b82c1a1530b
src/main/resources/mapper/contract/ContractOrderDao.xml
@@ -2,4 +2,92 @@
<!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>
</mapper>