<?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="selectOrderNoByOrderIds" resultType="java.lang.String">
|
SELECT
|
order_no
|
FROM
|
contract_order
|
WHERE
|
id = #{orderId}
|
</select>
|
|
<select id="selectFollowOrderListByMemberId" resultType="com.xcong.excoin.modules.contract.entity.ContractOrderEntity">
|
SELECT
|
*
|
FROM
|
contract_order
|
WHERE
|
member_id = #{tradeMemberId}
|
AND contract_type = 2
|
AND closing_price IS NOT NULL;
|
</select>
|
|
<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.math.BigDecimal">
|
select count(1)
|
from contract_order a
|
where member_id=#{memberId}
|
and contract_type=2
|
and closing_time is not null
|
<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>
|
|
<select id="getBurstUsdtByMemberId" resultType="java.math.BigDecimal">
|
SELECT
|
IFNULL(SUM(reward_amount), 0)
|
FROM
|
contract_order
|
WHERE
|
closing_type IN (4, 5)
|
and member_id=#{memberId}
|
</select>
|
|
<select id="selectThirtyTotalCntByMemberId" resultType="java.math.BigDecimal">
|
select count(id)
|
from contract_order
|
where
|
member_id=#{memberId}
|
and contract_type=2
|
and closing_time is not null
|
and create_time BETWEEN #{offsetDay} and #{date}
|
</select>
|
|
<select id="selectThirtyWinCntByMemberId" resultType="java.math.BigDecimal">
|
select count(id)
|
from contract_order
|
where
|
member_id=#{memberId}
|
and contract_type=2
|
and create_time BETWEEN #{offsetDay} and #{date}
|
and reward_ratio > 0
|
</select>
|
|
<select id="selectThirtyMaxRatioByMemberId" resultType="java.math.BigDecimal">
|
select MAX(reward_ratio)*100
|
from contract_order
|
where
|
member_id=#{memberId}
|
and contract_type=2
|
and create_time BETWEEN #{offsetDay} and #{date}
|
</select>
|
|
<select id="selectThirtyMinRatioByMemberId" resultType="java.math.BigDecimal">
|
select MIN(reward_ratio)*100
|
from contract_order
|
where
|
member_id=#{memberId}
|
and contract_type=2
|
and create_time BETWEEN #{offsetDay} and #{date}
|
</select>
|
</mapper>
|