From 7f133cb8fc080b64ab8002b35f04b646f95a6abf Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Thu, 27 May 2021 16:37:38 +0800
Subject: [PATCH] Merge branch 'otc' of http://120.27.238.55:7000/r/exchange into otc

---
 src/main/java/com/xcong/excoin/modules/otc/dao/OtcOrderDao.java                  |    2 +
 src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcOrderServiceImpl.java |    3 +
 src/main/java/com/xcong/excoin/modules/otc/vo/BuyOrderDetailVo.java              |    2 +
 src/main/java/com/xcong/excoin/modules/otc/vo/SaleOrderDetailVo.java             |    2 +
 src/main/resources/mapper/otc/OtcOrderDao.xml                                    |   18 +++++++++
 src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcMsgServiceImpl.java   |   58 ++++++++++++----------------
 src/main/java/com/xcong/excoin/modules/otc/vo/MsgListVo.java                     |    3 +
 7 files changed, 55 insertions(+), 33 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/otc/dao/OtcOrderDao.java b/src/main/java/com/xcong/excoin/modules/otc/dao/OtcOrderDao.java
index b39c27b..ca216ca 100644
--- a/src/main/java/com/xcong/excoin/modules/otc/dao/OtcOrderDao.java
+++ b/src/main/java/com/xcong/excoin/modules/otc/dao/OtcOrderDao.java
@@ -37,4 +37,6 @@
     BigDecimal selectOrderTotalAmount(@Param("memberId") Long memberId);
 
     List<ChatOrderVo> selectByMemberIdAndTargetId(@Param("memberId")Long memberId, @Param("targetId")long targetId);
+
+    List<ChatOrderVo> selectOneByMemberIdAndTargetId(@Param("memberId")Long memberId, @Param("targetId")long targetId);
 }
diff --git a/src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcMsgServiceImpl.java b/src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcMsgServiceImpl.java
index ce6755b..69fce34 100644
--- a/src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcMsgServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcMsgServiceImpl.java
@@ -4,6 +4,7 @@
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -54,11 +55,35 @@
         otcMsgUserListEntity.setMemberId(memberId);
         IPage<MsgListVo> msgList = otcMsgUserListDao.getMsgList(otcMsgUserListEntity, page);
         List<MsgListVo> records = msgList.getRecords();
+        //更新最外层的消息提醒
+        boolean flag = true;
         if(CollUtil.isNotEmpty(records)){
             for(MsgListVo msgListVo : records){
                 long targetId = msgListVo.getTargetId();
                 MemberEntity memberEntity = memberDao.selectById(targetId);
                 msgListVo.setNickname(memberEntity.getName());
+
+                ChatOrderVo chatOrderVo = new ChatOrderVo();
+                List<ChatOrderVo> chatOrderVos = otcOrderDao.selectOneByMemberIdAndTargetId(memberId,targetId);
+                if(CollUtil.isNotEmpty(chatOrderVos)){
+                    for(ChatOrderVo chatOrderVodone : chatOrderVos){
+                        Long memberIdDone = chatOrderVodone.getMemberId();
+                        if(memberId.equals(memberIdDone) || memberId == memberIdDone){
+                            chatOrderVo = chatOrderVodone;
+                        }
+                    }
+                }
+                msgListVo.setChatOrderVo(chatOrderVo);
+
+                Integer isRead = msgListVo.getIsRead();
+                if(OtcMsgUserListEntity.ISREAD_ONE == isRead){
+                    flag = false;
+                }
+            }
+            if(flag){
+                MemberSettingEntity memberSettingEntity = memberSettingDao.selectMemberSettingByMemberId(member.getId());
+                memberSettingEntity.setMessageReminder(0);
+                memberSettingDao.updateById(memberSettingEntity);
             }
         }
         return msgList;
@@ -89,17 +114,6 @@
         otcMsgHistoryEntity.setMemberId(memberId);
         otcMsgHistoryEntity.setTargetId(targetId);
         IPage<ChatBoxVo> chatBoxVos= otcMsgHistoryDao.getChatBoxMsgList(page,otcMsgHistoryEntity);
-//        List<ChatBoxVo> records = chatBoxVos.getRecords();
-//        if(CollUtil.isNotEmpty(records)){
-//            for(ChatBoxVo chatBoxVo : records){
-//                long memberIds = chatBoxVo.getMemberId();
-//                if(memberIds == member.getId()){
-//                    chatBoxVo.setIsSelf(1);
-//                }else{
-//                    chatBoxVo.setIsSelf(2);
-//                }
-//            }
-//        }
         return Result.ok(chatBoxVos);
     }
 
@@ -125,17 +139,6 @@
         if(ObjectUtil.isEmpty(msgType)){
             return Result.fail("请输入发送消息");
         }
-        /**
-         * 是否有记录
-         *  有就更新,没有就新增
-         * 在消息列表中增加一条记录
-         * 在历史记录中增加一条记录
-         * 增加一个提醒的
-         */
-//        QueryWrapper<OtcMsgHistoryEntity> objectQueryWrapper = new QueryWrapper<>();
-//        objectQueryWrapper.eq("member_id",memberId);
-//        objectQueryWrapper.eq("target_id",targetId);
-//        OtcMsgUserListEntity otcMsgUserListEntity = otcMsgUserListDao.selectById(objectQueryWrapper);
         //发送方
         List<OtcMsgUserListEntity> otcMsgUserListEntityFrom = otcMsgUserListDao.selectListByMemberIdAndTargetId(memberId,targetId);
         if(CollUtil.isEmpty(otcMsgUserListEntityFrom)){
@@ -214,17 +217,6 @@
             otcMsgHistoryEntity.setMemberId(memberId);
             otcMsgHistoryEntity.setTargetId(targetId);
             chatBoxVos = otcMsgHistoryDao.getChatBoxMsgList(page,otcMsgHistoryEntity);
-//            List<ChatBoxVo> records = chatBoxVos.getRecords();
-//            if(CollUtil.isNotEmpty(records)){
-//                for(ChatBoxVo chatBoxVo : records){
-//                    long memberIds = chatBoxVo.getMemberId();
-//                    if(memberIds == memberId){
-//                        chatBoxVo.setIsSelf(1);
-//                    }else{
-//                        chatBoxVo.setIsSelf(2);
-//                    }
-//                }
-//            }
         }
         return Result.ok(chatBoxVos);
     }
diff --git a/src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcOrderServiceImpl.java b/src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcOrderServiceImpl.java
index 66d6a7f..2ed558d 100644
--- a/src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcOrderServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcOrderServiceImpl.java
@@ -351,7 +351,9 @@
         }
 
         buyDetail.setSaleName(saleMember.getName());
+
         buyDetail.setSaleMemberId(saleMember.getId());
+        buyDetail.setMemberId(member.getId());
 
         buyDetail.setBankName(buyOrder.getBankName());
         buyDetail.setBankNo(buyOrder.getBankNo());
@@ -400,6 +402,7 @@
 
         saleDetail.setSaleName(buyMember.getName());
         saleDetail.setSaleMemberId(buyMember.getId());
+        saleDetail.setMemberId(member.getId());
 
         saleDetail.setPayType(saleOrder.getPayType());
         saleDetail.setIsOwnEntrust(member.getId().equals(saleOrder.getEntrustMemberId()) ? 1 : 2);
diff --git a/src/main/java/com/xcong/excoin/modules/otc/vo/BuyOrderDetailVo.java b/src/main/java/com/xcong/excoin/modules/otc/vo/BuyOrderDetailVo.java
index de3345f..33b0fdb 100644
--- a/src/main/java/com/xcong/excoin/modules/otc/vo/BuyOrderDetailVo.java
+++ b/src/main/java/com/xcong/excoin/modules/otc/vo/BuyOrderDetailVo.java
@@ -53,6 +53,8 @@
 
     @ApiModelProperty(value = "商家MemberId")
     private Long saleMemberId;
+    @ApiModelProperty(value = "memberId")
+    private Long memberId;
 
     @ApiModelProperty(value = "商家ID")
     private Long mbId;
diff --git a/src/main/java/com/xcong/excoin/modules/otc/vo/MsgListVo.java b/src/main/java/com/xcong/excoin/modules/otc/vo/MsgListVo.java
index b8ad910..fd5317c 100644
--- a/src/main/java/com/xcong/excoin/modules/otc/vo/MsgListVo.java
+++ b/src/main/java/com/xcong/excoin/modules/otc/vo/MsgListVo.java
@@ -33,4 +33,7 @@
     @ApiModelProperty(value = "最后聊天时间")
     private Date lastMsgTime;
 
+    @ApiModelProperty(value = "最新的订单")
+    private ChatOrderVo chatOrderVo;
+
 }
diff --git a/src/main/java/com/xcong/excoin/modules/otc/vo/SaleOrderDetailVo.java b/src/main/java/com/xcong/excoin/modules/otc/vo/SaleOrderDetailVo.java
index 2baac93..f1ad32a 100644
--- a/src/main/java/com/xcong/excoin/modules/otc/vo/SaleOrderDetailVo.java
+++ b/src/main/java/com/xcong/excoin/modules/otc/vo/SaleOrderDetailVo.java
@@ -47,6 +47,8 @@
 
     @ApiModelProperty(value = "商家MemberId")
     private Long saleMemberId;
+    @ApiModelProperty(value = "memberId")
+    private Long memberId;
 
     @ApiModelProperty(value = "商家ID")
     private Long mbId;
diff --git a/src/main/resources/mapper/otc/OtcOrderDao.xml b/src/main/resources/mapper/otc/OtcOrderDao.xml
index 20ac813..f932ed5 100644
--- a/src/main/resources/mapper/otc/OtcOrderDao.xml
+++ b/src/main/resources/mapper/otc/OtcOrderDao.xml
@@ -118,4 +118,22 @@
 
     </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>
+
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.1