Helius
2021-06-08 30c1c9d16a57d2bbc7cd1511d02c5ddcc6a143f6
src/main/resources/mapper/otc/OtcOrderDao.xml
@@ -4,7 +4,7 @@
    <select id="selectOrderListUnFinish" resultType="com.xcong.excoin.modules.otc.entity.OtcOrder">
        select * from otc_order
        where status not in (2,4) and member_id=#{memberId} and entrust_order_id=#{entrustOrderId}
        where status in (1,2) and member_id=#{memberId} and entrust_order_id=#{entrustOrderId}
    </select>
@@ -14,12 +14,13 @@
            a.order_no orderNo,
            a.unit_price unitPrice,
            a.coin_amount amount,
            a.status status,
            a.total_amount totalAmount,
            a.create_time creatTime,
            a.order_type orderType,
            b.name name
        from otc_order a
        inner join member b on a.member_id=b.id
        inner join member b on a.opposite_member_id=b.id
        <where>
            <if test="record!=null">
                <if test="record.status != null and record.status == 1">
@@ -36,11 +37,117 @@
                </if>
            </if>
        </where>
        order by a.create_time desc
    </select>
    <update id="updateOrderStatusByOrderNo">
        update otc_order
        set status=#{status}
        <if test="payName != null and payName != ''">
            , pay_name = #{payName}
        </if>
        where order_no=#{orderNo}
    </update>
    <select id="selectOrderByOrderNoAndType" resultType="com.xcong.excoin.modules.otc.entity.OtcOrder">
        select * from otc_order
        where order_no=#{orderNo} and order_type=#{orderType}
    </select>
    <select id="selectOrderListWithStatusAndType" resultType="com.xcong.excoin.modules.otc.entity.OtcOrder">
        select * from otc_order
        where order_type=#{type} and status=#{status}
    </select>
    <select id="selectMemberCntForEntrust" resultType="java.lang.Integer">
        select count(distinct member_id) from otc_order
        where entrust_member_id=#{entrustMemberId} and status != 4 and entrust_member_id!=member_id
    </select>
    <select id="selectTotalOrderCount" resultType="java.lang.Integer">
        select count(1) from otc_order
        where member_id=#{entrustMemberId}
        <if test="status != null">
            and status = #{status}
        </if>
        <if test="type != null and type!=''">
            and order_type = #{type}
        </if>
    </select>
    <select id="selectMemberAvgPayTime" resultType="java.math.BigDecimal">
        select
               IFNULL(sum(timestampdiff(SECOND, create_time, pay_time))/count(1), 0)
        from otc_order
        where status=3 and member_id=#{memberId} and order_type='B'
    </select>
    <select id="selectMemberAvgCoinTime" resultType="java.math.BigDecimal">
        select
            IFNULL(sum(timestampdiff(SECOND, pay_time, finish_time))/count(1), 0)
        from otc_order
        where status=3 and member_id=40 and order_type='S'
    </select>
    <select id="selectOrderListForUser" resultType="com.xcong.excoin.modules.otc.entity.OtcOrder">
        select * from otc_order
        where member_id=#{memberId}
        <!-- 查询除完成以外所有订单 -->
        <if test="status != null">
            and status = #{status}
        </if>
    </select>
    <select id="selectOrderTotalAmount" resultType="java.math.BigDecimal">
        select sum(total_amount) from otc_order
        where member_id=#{memberId} and status = 3
    </select>
    <select id="selectByMemberIdAndTargetId" resultType="com.xcong.excoin.modules.otc.vo.ChatOrderVo">
        select
            order_no orderNo,
            member_id memberId,
            unit_price unitPrice,
            coin_amount usdtAmount,
            total_amount totalAmount,
            status status,
            order_type orderType
        from otc_order
        where ((member_id=#{memberId} and opposite_member_id=#{targetId})
            or
              (member_id=#{targetId} and opposite_member_id=#{memberId}))
            and status in (1,2)
        order by create_time desc
    </select>
    <select id="selectOneByMemberIdAndTargetId" resultType="com.xcong.excoin.modules.otc.vo.ChatOrderVo">
        select
            order_no orderNo,
            member_id memberId,
            unit_price unitPrice,
            coin_amount usdtAmount,
            total_amount totalAmount,
            status status,
            order_type orderType
        from otc_order
        where ((member_id=#{memberId} and opposite_member_id=#{targetId})
            or
               (member_id=#{targetId} and opposite_member_id=#{memberId}))
        order by create_time desc
            LIMIT 2
    </select>
    <update id="updateIsReturnByOrderNo">
        update otc_order
        set is_return=#{isReturn}
        where order_no=#{orderNo}
    </update>
    <select id="selectOrderUnEntrust" resultType="com.xcong.excoin.modules.otc.entity.OtcOrder">
        select * from otc_order
        where order_no=#{orderNo} and member_id!=entrust_member_id
    </select>
</mapper>