From 0d30c93d000413c6eb34f489ef17688ad4175201 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Mon, 29 Apr 2024 18:18:21 +0800
Subject: [PATCH] 55测试环境

---
 src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcMsgServiceImpl.java |  136 +++++++++++++++++++++++++++------------------
 1 files changed, 82 insertions(+), 54 deletions(-)

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 3164006..67a62fa 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;
@@ -28,6 +29,7 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
 import java.util.List;
 
 @Service
@@ -46,23 +48,45 @@
     public IPage<MsgListVo> getMsgList(MsgListDto msgListDto) {
         MemberEntity member = LoginUserUtils.getAppLoginUser();
         Long memberId = member.getId();
-//        Long memberId = 445L;
+//        Long memberId = 444L;
+//        MemberEntity member = memberDao.selectById(memberId);
+
         Page<MsgListVo> page = new Page<>(msgListDto.getPageNum(), msgListDto.getPageSize());
 
         OtcMsgUserListEntity otcMsgUserListEntity = new OtcMsgUserListEntity();
         otcMsgUserListEntity.setMemberId(memberId);
+        otcMsgUserListEntity.setNickname(msgListDto.getNickname());
         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();
-                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());
+
+                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;
@@ -93,17 +117,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);
     }
 
@@ -112,7 +125,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("对话用户不存在");
@@ -129,41 +142,58 @@
         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> 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);
@@ -190,17 +220,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);
     }
@@ -216,8 +235,17 @@
         if(ObjectUtil.isEmpty(targetId)){
             return Result.fail("请返回重试");
         }
+        ArrayList<ChatOrderVo> chatOrderVoList = new ArrayList<>();
         List<ChatOrderVo> chatOrderVos = otcOrderDao.selectByMemberIdAndTargetId(memberId,targetId);
-        return Result.ok(chatOrderVos);
+        if(CollUtil.isNotEmpty(chatOrderVos)){
+            for(ChatOrderVo chatOrderVo : chatOrderVos){
+                Long memberIdDone = chatOrderVo.getMemberId();
+                if(memberId.equals(memberIdDone) || memberId == memberIdDone){
+                    chatOrderVoList.add(chatOrderVo);
+                }
+            }
+        }
+        return Result.ok(chatOrderVoList);
     }
 
 

--
Gitblit v1.9.1