From c94c6e7a2e671f0c291885ab87f386a03c3fef11 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Thu, 27 May 2021 14:57:49 +0800
Subject: [PATCH] 20210527  最多三个待付款

---
 src/main/java/com/xcong/excoin/modules/otc/entity/OtcMsgHistoryEntity.java     |    7 ++
 src/main/resources/mapper/otc/OtcMsgHistoryDao.xml                             |   11 ++-
 src/main/java/com/xcong/excoin/modules/otc/vo/ChatBoxVo.java                   |    5 +
 src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcMsgServiceImpl.java |  109 ++++++++++++++++++++++--------------
 src/main/resources/mapper/otc/OtcMsgUserListDao.xml                            |    6 -
 5 files changed, 86 insertions(+), 52 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/otc/entity/OtcMsgHistoryEntity.java b/src/main/java/com/xcong/excoin/modules/otc/entity/OtcMsgHistoryEntity.java
index 736fa8e..daa3662 100644
--- a/src/main/java/com/xcong/excoin/modules/otc/entity/OtcMsgHistoryEntity.java
+++ b/src/main/java/com/xcong/excoin/modules/otc/entity/OtcMsgHistoryEntity.java
@@ -12,6 +12,8 @@
     //用户ID
     private long memberId;
 
+    //发送方
+    private long fromMemberId;
     //对方用户ID
     private long targetId;
 
@@ -20,4 +22,9 @@
 
     //消息类型 1-文本2-图片
     private Integer msgType;
+
+    //是不是memberId发的消息 1:是 2:否
+    private Integer isSelf;
+    public static final Integer ISSELF_ONE = 1;
+    public static final Integer ISSELF_TWO = 2;
 }
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 769bfa8..ce6755b 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
@@ -47,7 +47,7 @@
     public IPage<MsgListVo> getMsgList(MsgListDto msgListDto) {
         MemberEntity member = LoginUserUtils.getAppLoginUser();
         Long memberId = member.getId();
-//        Long memberId = 445L;
+//        Long memberId = 443L;
         Page<MsgListVo> page = new Page<>(msgListDto.getPageNum(), msgListDto.getPageSize());
 
         OtcMsgUserListEntity otcMsgUserListEntity = new OtcMsgUserListEntity();
@@ -57,13 +57,8 @@
         if(CollUtil.isNotEmpty(records)){
             for(MsgListVo msgListVo : records){
                 long targetId = msgListVo.getTargetId();
-                if(memberId == targetId){
-                    MemberEntity memberEntity = memberDao.selectById(msgListVo.getMemberId());
-                    msgListVo.setNickname(memberEntity.getName());
-                }else{
-                    MemberEntity memberEntity = memberDao.selectById(targetId);
-                    msgListVo.setNickname(memberEntity.getName());
-                }
+                MemberEntity memberEntity = memberDao.selectById(targetId);
+                msgListVo.setNickname(memberEntity.getName());
             }
         }
         return msgList;
@@ -94,17 +89,17 @@
         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);
-                }
-            }
-        }
+//        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);
     }
 
@@ -113,7 +108,7 @@
     public Result sendMsg(SendMsgDto sendMsgDto) {
         MemberEntity member = LoginUserUtils.getAppLoginUser();
         Long memberId = member.getId();
-//        Long memberId = 445L;
+//        Long memberId = 449L;
         long targetId = sendMsgDto.getTargetId();
         if(ObjectUtil.isEmpty(targetId)){
             return Result.fail("对话用户不存在");
@@ -141,30 +136,58 @@
 //        objectQueryWrapper.eq("member_id",memberId);
 //        objectQueryWrapper.eq("target_id",targetId);
 //        OtcMsgUserListEntity otcMsgUserListEntity = otcMsgUserListDao.selectById(objectQueryWrapper);
-        List<OtcMsgUserListEntity> otcMsgUserListEntitys = otcMsgUserListDao.selectListByMemberIdAndTargetId(memberId,targetId);
-        if(CollUtil.isEmpty(otcMsgUserListEntitys)){
+        //发送方
+        List<OtcMsgUserListEntity> otcMsgUserListEntityFrom = otcMsgUserListDao.selectListByMemberIdAndTargetId(memberId,targetId);
+        if(CollUtil.isEmpty(otcMsgUserListEntityFrom)){
             OtcMsgUserListEntity otcMsgUserListEntity = new OtcMsgUserListEntity();
             otcMsgUserListEntity.setMemberId(memberId);
             otcMsgUserListEntity.setTargetId(targetId);
+            otcMsgUserListEntity.setIsRead(OtcMsgUserListEntity.ISREAD_TWO);
+            otcMsgUserListEntity.setLastMsgTime(DateUtil.date());
+            otcMsgUserListDao.insert(otcMsgUserListEntity);
+        }else{
+            OtcMsgUserListEntity otcMsgUserListEntity = otcMsgUserListEntityFrom.get(0);
+            otcMsgUserListEntity.setMemberId(memberId);
+            otcMsgUserListEntity.setTargetId(targetId);
+            otcMsgUserListEntity.setIsRead(OtcMsgUserListEntity.ISREAD_TWO);
+            otcMsgUserListEntity.setLastMsgTime(DateUtil.date());
+            otcMsgUserListDao.updateById(otcMsgUserListEntity);
+        }
+        //历史消息中增加新纪录
+        OtcMsgHistoryEntity otcMsgHistoryEntityFrom = new OtcMsgHistoryEntity();
+        otcMsgHistoryEntityFrom.setMemberId(memberId);
+        otcMsgHistoryEntityFrom.setFromMemberId(memberId);
+        otcMsgHistoryEntityFrom.setTargetId(targetId);
+        otcMsgHistoryEntityFrom.setMsg(msg);
+        otcMsgHistoryEntityFrom.setMsgType(msgType);
+        otcMsgHistoryEntityFrom.setIsSelf(OtcMsgHistoryEntity.ISSELF_ONE);
+        otcMsgHistoryDao.insert(otcMsgHistoryEntityFrom);
+        //接受方
+        List<OtcMsgUserListEntity> otcMsgUserListEntityTo = otcMsgUserListDao.selectListByMemberIdAndTargetId(targetId,memberId);
+        if(CollUtil.isEmpty(otcMsgUserListEntityTo)){
+            OtcMsgUserListEntity otcMsgUserListEntity = new OtcMsgUserListEntity();
+            otcMsgUserListEntity.setMemberId(targetId);
+            otcMsgUserListEntity.setTargetId(memberId);
             otcMsgUserListEntity.setIsRead(OtcMsgUserListEntity.ISREAD_ONE);
             otcMsgUserListEntity.setLastMsgTime(DateUtil.date());
             otcMsgUserListDao.insert(otcMsgUserListEntity);
         }else{
-            OtcMsgUserListEntity otcMsgUserListEntity = otcMsgUserListEntitys.get(0);
-            otcMsgUserListEntity.setMemberId(memberId);
-            otcMsgUserListEntity.setTargetId(targetId);
+            OtcMsgUserListEntity otcMsgUserListEntity = otcMsgUserListEntityTo.get(0);
+            otcMsgUserListEntity.setMemberId(targetId);
+            otcMsgUserListEntity.setTargetId(memberId);
             otcMsgUserListEntity.setIsRead(OtcMsgUserListEntity.ISREAD_ONE);
             otcMsgUserListEntity.setLastMsgTime(DateUtil.date());
             otcMsgUserListDao.updateById(otcMsgUserListEntity);
         }
-
         //历史消息中增加新纪录
-        OtcMsgHistoryEntity otcMsgHistoryEntity = new OtcMsgHistoryEntity();
-        otcMsgHistoryEntity.setMemberId(memberId);
-        otcMsgHistoryEntity.setTargetId(targetId);
-        otcMsgHistoryEntity.setMsg(msg);
-        otcMsgHistoryEntity.setMsgType(msgType);
-        otcMsgHistoryDao.insert(otcMsgHistoryEntity);
+        OtcMsgHistoryEntity otcMsgHistoryEntityTo = new OtcMsgHistoryEntity();
+        otcMsgHistoryEntityTo.setMemberId(targetId);
+        otcMsgHistoryEntityTo.setFromMemberId(memberId);
+        otcMsgHistoryEntityTo.setTargetId(targetId);
+        otcMsgHistoryEntityTo.setMsg(msg);
+        otcMsgHistoryEntityTo.setMsgType(msgType);
+        otcMsgHistoryEntityTo.setIsSelf(OtcMsgHistoryEntity.ISSELF_TWO);
+        otcMsgHistoryDao.insert(otcMsgHistoryEntityTo);
 
         //增加一个提醒的
         MemberSettingEntity memberSettingEntity = memberSettingDao.selectMemberSettingByMemberId(targetId);
@@ -191,17 +214,17 @@
             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);
-                    }
-                }
-            }
+//            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/vo/ChatBoxVo.java b/src/main/java/com/xcong/excoin/modules/otc/vo/ChatBoxVo.java
index e35db34..25318f3 100644
--- a/src/main/java/com/xcong/excoin/modules/otc/vo/ChatBoxVo.java
+++ b/src/main/java/com/xcong/excoin/modules/otc/vo/ChatBoxVo.java
@@ -15,9 +15,12 @@
     @ApiModelProperty(value = "时间")
     private Date createTime;
 
-    @ApiModelProperty(value = "对方用户ID")
+    @ApiModelProperty(value = "接受ID")
     private long targetId;
 
+    @ApiModelProperty(value = "发送ID")
+    private long fromMemberId;
+
     @ApiModelProperty(value = "用户ID")
     private long memberId;
 
diff --git a/src/main/resources/mapper/otc/OtcMsgHistoryDao.xml b/src/main/resources/mapper/otc/OtcMsgHistoryDao.xml
index 3a3869e..4d4f1a1 100644
--- a/src/main/resources/mapper/otc/OtcMsgHistoryDao.xml
+++ b/src/main/resources/mapper/otc/OtcMsgHistoryDao.xml
@@ -9,13 +9,18 @@
         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.target_id = ${record.targetId})
-                or
-                (a.member_id = ${record.targetId} and a.target_id = ${record.memberId})
+                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
diff --git a/src/main/resources/mapper/otc/OtcMsgUserListDao.xml b/src/main/resources/mapper/otc/OtcMsgUserListDao.xml
index a1d336c..446527f 100644
--- a/src/main/resources/mapper/otc/OtcMsgUserListDao.xml
+++ b/src/main/resources/mapper/otc/OtcMsgUserListDao.xml
@@ -13,8 +13,6 @@
         <where>
             <if test="record!=null">
                     a.member_id = #{record.memberId}
-                    or
-                    a.target_id = #{record.memberId}
             </if>
         </where>
         order by a.create_time desc
@@ -25,9 +23,7 @@
               *
         from otc_msg_user_list a
         <where>
-                    (a.member_id = #{memberId} and a.target_id = #{targetId})
-                    or
-                    (a.member_id = #{targetId} and a.target_id = #{memberId})
+                    a.member_id = #{memberId} and a.target_id = #{targetId}
         </where>
         order by a.create_time desc
     </select>

--
Gitblit v1.9.1