From 8f07f23b122218dd8679c43d0f9d0c73f76685bc Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Wed, 09 Mar 2022 14:42:57 +0800
Subject: [PATCH] fix otc

---
 src/main/resources/mapper/otc/OtcSettingDao.xml            |    5 
 src/main/resources/mapper/otc/OtcEntrustOrderDao.xml       |   87 ++++++++++++
 src/main/resources/mapper/otc/OtcBlackListDao.xml          |   19 ++
 src/main/resources/mapper/otc/OtcMsgHistoryDao.xml         |   30 ++++
 src/main/resources/mapper/otc/OtcOrderAppealDao.xml        |    5 
 src/main/resources/mapper/otc/OtcMarketBussinessMapper.xml |    9 +
 src/main/resources/mapper/otc/OtcReturnMoneyDao.xml        |   24 +++
 src/main/resources/mapper/otc/OtcOrderDao.xml              |  153 +++++++++++++++++++++
 src/main/resources/mapper/otc/OtcMsgUserListDao.xml        |   42 ++++++
 9 files changed, 374 insertions(+), 0 deletions(-)

diff --git a/src/main/resources/mapper/otc/OtcBlackListDao.xml b/src/main/resources/mapper/otc/OtcBlackListDao.xml
new file mode 100644
index 0000000..a834238
--- /dev/null
+++ b/src/main/resources/mapper/otc/OtcBlackListDao.xml
@@ -0,0 +1,19 @@
+<?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.otc.dao.OtcBlackListDao">
+
+    <select id="selectByMemberIdAndBlackMemberId" resultType="com.xcong.excoin.modules.otc.entity.OtcBlackList">
+        select * from otc_black_list
+        where member_id=#{memberId} and black_member_id=#{blackMemberId}
+    </select>
+
+    <select id="selectBlackListInPage" resultType="com.xcong.excoin.modules.otc.vo.BlackListVo">
+        select a.id, a.create_time time, b.name from otc_black_list a, member b
+        where a.black_member_id=b.id and a.member_id=#{memberId}
+    </select>
+
+    <select id="selectBlackListByMemberId" resultType="com.xcong.excoin.modules.otc.entity.OtcBlackList">
+        select * from otc_black_list
+        where member_id=#{memberId}
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/otc/OtcEntrustOrderDao.xml b/src/main/resources/mapper/otc/OtcEntrustOrderDao.xml
new file mode 100644
index 0000000..d61cbb2
--- /dev/null
+++ b/src/main/resources/mapper/otc/OtcEntrustOrderDao.xml
@@ -0,0 +1,87 @@
+<?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.otc.dao.OtcEntrustOrderDao">
+
+    <select id="selectEntrustListInPage" resultType="com.xcong.excoin.modules.otc.vo.EntrustListVo">
+        select
+            a.id,
+            b.id mbId
+            ,c.name nickname
+            ,a.unit_price unitPrice
+            ,a.remain_coin_amount amount
+            ,a.limit_min_amount min
+            ,a.limit_max_amount max
+            ,case when a.order_type = 'B' then b.buy_order_cnt
+                  when a.order_type = 'S' then b.sale_order_cnt end orderCnt
+            ,case when a.order_type = 'B' then b.finish_ratio
+                  when a.order_type = 'S' then b.sale_finish_ratio end finishRatio
+            ,d.payment_type payType
+        from otc_entrust_order a
+        left join otc_market_bussiness b on a.member_id=b.member_id
+        left join member c on a.member_id=c.id
+        left join member_payment_method d on a.member_id=d.member_id and d.is_defualt=1
+<!--        inner join otc_black_list e on a.member_id!=e.black_member_id-->
+<!--            <if test="record.memberId != null">-->
+<!--                and e.member_id=#{record.memberId}-->
+<!--            </if>-->
+        <where>
+            a.status=1 and a.remain_coin_amount > 0
+            <if test="record != null">
+                <if test="record.type != null and record.type!=''">
+                    and order_type = #{record.type}
+                </if>
+            </if>
+            and a.member_id not in (select black_member_id from otc_black_list x where x.member_id=#{record.memberId})
+        </where>
+        order by a.unit_price desc
+    </select>
+
+    <select id="selectEntrustOrderByOrderType" resultType="com.xcong.excoin.modules.otc.entity.OtcEntrustOrder">
+        select a.*, b.payment_type payType
+        from otc_entrust_order a
+        left join member_payment_method b on a.member_id=b.member_id and b.is_defualt=1
+        <where>
+            <if test="record.orderType != null and record.orderType != ''" >
+               and a.order_type = #{record.orderType}
+            </if>
+            <if test="record.memberId != null">
+                and a.member_id = #{record.memberId}
+            </if>
+            <if test="record.status != null and record.status == 3">
+                and a.status != #{record.status}
+            </if>
+            <if test="record.status != null and record.status != 3">
+                and a.status = #{record.status}
+            </if>
+
+            <if test="record.isDefualt != null">
+                and b.is_defualt = #{record.isDefualt}
+            </if>
+        </where>
+    </select>
+
+    <select id="selectOwnEntrustListInPage" resultType="com.xcong.excoin.modules.otc.entity.OtcEntrustOrder">
+        select * from otc_entrust_order
+        <where>
+            <if test="record.orderType != null and record.orderType != ''" >
+                and order_type = #{record.orderType}
+            </if>
+            <if test="record.memberId != null">
+                and member_id = #{record.memberId}
+            </if>
+            <if test="record.status != null and record.status == 3">
+                and status != #{record.status}
+            </if>
+            <if test="record.status != null and record.status != 3">
+                and status = #{record.status}
+            </if>
+        </where>
+        order by create_time desc
+    </select>
+
+    <update id="updateRemainAmount">
+        update otc_entrust_order
+        set remain_coin_amount = remain_coin_amount + ${amount}
+        where id=#{id}
+    </update>
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/otc/OtcMarketBussinessMapper.xml b/src/main/resources/mapper/otc/OtcMarketBussinessMapper.xml
new file mode 100644
index 0000000..b9d4ecb
--- /dev/null
+++ b/src/main/resources/mapper/otc/OtcMarketBussinessMapper.xml
@@ -0,0 +1,9 @@
+<?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.otc.dao.OtcMarketBussinessDao">
+
+
+    <select id="selectMarketBussinessByMemberId" resultType="com.xcong.excoin.modules.otc.entity.OtcMarketBussiness">
+        select * from otc_market_bussiness where member_id=#{memberId}
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/otc/OtcMsgHistoryDao.xml b/src/main/resources/mapper/otc/OtcMsgHistoryDao.xml
new file mode 100644
index 0000000..4d4f1a1
--- /dev/null
+++ b/src/main/resources/mapper/otc/OtcMsgHistoryDao.xml
@@ -0,0 +1,30 @@
+<?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.otc.dao.OtcMsgHistoryDao">
+
+
+    <select id="getChatBoxMsgList" resultType="com.xcong.excoin.modules.otc.vo.ChatBoxVo">
+        select
+        a.create_time createTime,
+        a.msg msg,
+        a.target_id targetId,
+        a.member_id memberId,
+        a.from_member_id fromMemberId,
+        a.is_self isSelf,
+        a.msg_type msgType
+        from otc_msg_history a
+        <where>
+            <if test="record!=null">
+                a.member_id = ${record.memberId}
+                and (
+                    (a.from_member_id = ${record.memberId} and a.target_id = ${record.targetId})
+                    or
+                    (a.from_member_id = ${record.targetId} and a.target_id = ${record.memberId})
+                )
+            </if>
+        </where>
+        order by a.create_time asc
+    </select>
+
+
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/otc/OtcMsgUserListDao.xml b/src/main/resources/mapper/otc/OtcMsgUserListDao.xml
new file mode 100644
index 0000000..b484781
--- /dev/null
+++ b/src/main/resources/mapper/otc/OtcMsgUserListDao.xml
@@ -0,0 +1,42 @@
+<?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.otc.dao.OtcMsgUserListDao">
+
+    <select id="getMsgList" resultType="com.xcong.excoin.modules.otc.vo.MsgListVo">
+        select
+               a.id id,
+               a.is_read isRead,
+               a.target_id targetId,
+               a.member_id memberId,
+               a.last_msg_time lastMsgTime,
+               b.name nickname
+        from otc_msg_user_list a
+        left join member b on a.target_id = b.id
+        <where>
+            <if test="record!=null">
+                    a.member_id = #{record.memberId}
+                <if test="record.nickname != null and record.nickname != ''">
+                    and b.name like concat('%',  #{record.nickname},'%')
+                </if>
+            </if>
+        </where>
+        order by a.create_time desc
+    </select>
+
+    <select id="selectListByMemberIdAndTargetId" resultType="com.xcong.excoin.modules.otc.entity.OtcMsgUserListEntity">
+        select
+              *
+        from otc_msg_user_list a
+        <where>
+                    a.member_id = #{memberId} and a.target_id = #{targetId}
+        </where>
+        order by a.create_time desc
+    </select>
+
+    <select id="selectChatListByToAndFrom" resultType="com.xcong.excoin.modules.otc.entity.OtcMsgUserListEntity">
+        select * from otc_msg_user_list
+        where member_id=#{from} and target_id=#{to}
+    </select>
+
+
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/otc/OtcOrderAppealDao.xml b/src/main/resources/mapper/otc/OtcOrderAppealDao.xml
new file mode 100644
index 0000000..ae34539
--- /dev/null
+++ b/src/main/resources/mapper/otc/OtcOrderAppealDao.xml
@@ -0,0 +1,5 @@
+<?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.otc.dao.OtcOrderAppealDao">
+
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/otc/OtcOrderDao.xml b/src/main/resources/mapper/otc/OtcOrderDao.xml
new file mode 100644
index 0000000..4928e5b
--- /dev/null
+++ b/src/main/resources/mapper/otc/OtcOrderDao.xml
@@ -0,0 +1,153 @@
+<?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.otc.dao.OtcOrderDao">
+
+    <select id="selectOrderListUnFinish" resultType="com.xcong.excoin.modules.otc.entity.OtcOrder">
+        select * from otc_order
+        where status in (1,2) and member_id=#{memberId} and entrust_order_id=#{entrustOrderId}
+    </select>
+
+
+    <select id="selectOrdderListInPage" resultType="com.xcong.excoin.modules.otc.vo.OrderListVo">
+        select
+            a.id,
+            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.opposite_member_id=b.id
+        <where>
+            <if test="record!=null">
+                <if test="record.status != null and record.status == 1">
+                    and a.status in (1, 2)
+                </if>
+                <if test="record.status != null and record.status == 2">
+                    and a.status = 3
+                </if>
+                <if test="record.status != null and record.status == 3">
+                    and a.status = 4
+                </if>
+                <if test="record.memberId != null">
+                    and a.member_id = ${record.memberId}
+                </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>
\ No newline at end of file
diff --git a/src/main/resources/mapper/otc/OtcReturnMoneyDao.xml b/src/main/resources/mapper/otc/OtcReturnMoneyDao.xml
new file mode 100644
index 0000000..bb9ba46
--- /dev/null
+++ b/src/main/resources/mapper/otc/OtcReturnMoneyDao.xml
@@ -0,0 +1,24 @@
+<?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.otc.dao.OtcReturnMoneyDao">
+
+    <select id="selectMyTeamAmountInPage" resultType="com.xcong.excoin.modules.otc.vo.TeamVo">
+        select
+            substring(invite_id, -4) inviteId,
+            case when a.referer_id = #{inviteId} then 1
+                 else 2 end level,
+            (select count(1) from member c where find_in_set(a.invite_id, SUBSTRING_INDEX(c.referer_ids, ',', 3))) cnt,
+            sum(IFNULL(b.amount, 0)) amount
+        from member a
+                 left join otc_return_money b on b.from_member_id=a.id and b.to_member_id=#{memberId}
+        where find_in_set(#{inviteId}, SUBSTRING_INDEX(referer_ids, ',', 3))
+        group by a.id
+        order by amount desc
+    </select>
+
+    <select id="selectTotalAmount" resultType="java.math.BigDecimal">
+        select IFNULL(sum(amount), 0)
+        from otc_return_money
+        where to_member_id=#{memberId}
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/otc/OtcSettingDao.xml b/src/main/resources/mapper/otc/OtcSettingDao.xml
new file mode 100644
index 0000000..85d8c5f
--- /dev/null
+++ b/src/main/resources/mapper/otc/OtcSettingDao.xml
@@ -0,0 +1,5 @@
+<?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.otc.dao.OtcSettingDao">
+
+</mapper>
\ No newline at end of file

--
Gitblit v1.9.1