From 72359f3c9e9fe855ecafafb769ed52fc2a7f7e61 Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: 星期六, 10 八月 2024 09:46:02 +0800
Subject: [PATCH] 优化:视频通话会话列表和详情获取最后一条消息中增加用户名称和头像

---
 ard-work/src/main/java/com/ruoyi/call/service/impl/ArdCallSessionUserServiceImpl.java |   60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 55 insertions(+), 5 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/call/service/impl/ArdCallSessionUserServiceImpl.java b/ard-work/src/main/java/com/ruoyi/call/service/impl/ArdCallSessionUserServiceImpl.java
index 13c2fdf..7f67aed 100644
--- a/ard-work/src/main/java/com/ruoyi/call/service/impl/ArdCallSessionUserServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/call/service/impl/ArdCallSessionUserServiceImpl.java
@@ -4,14 +4,15 @@
 import java.util.List;
 
 import com.ruoyi.call.compare.ArdCallSessionUserComparator;
-import com.ruoyi.call.domain.ArdCallGroupUser;
-import com.ruoyi.call.domain.ArdCallHistory;
-import com.ruoyi.call.domain.ArdCallUnreadMessages;
+import com.ruoyi.call.domain.*;
 import com.ruoyi.call.mapper.ArdCallGroupUserMapper;
 import com.ruoyi.call.mapper.ArdCallHistoryMapper;
 import com.ruoyi.call.mapper.ArdCallUnreadMessagesMapper;
+import com.ruoyi.call.service.IArdCallGroupService;
+import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.uuid.IdUtils;
+import com.ruoyi.system.service.ISysUserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -21,7 +22,6 @@
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.call.mapper.ArdCallSessionUserMapper;
-import com.ruoyi.call.domain.ArdCallSessionUser;
 import com.ruoyi.call.service.IArdCallSessionUserService;
 
 import javax.annotation.Resource;
@@ -42,6 +42,10 @@
     private ArdCallSessionUserComparator ardCallSessionUserComparator;
     @Resource
     private ArdCallUnreadMessagesMapper ardCallUnreadMessagesMapper;
+    @Resource
+    private IArdCallGroupService ardCallGroupService;
+    @Resource
+    private ISysUserService sysUserService;
 
     /**
      * 鏌ヨ浼氳瘽鐢ㄦ埛涓棿琛�
@@ -52,6 +56,38 @@
     @Override
     public ArdCallSessionUser selectArdCallSessionUserById(String id) {
         return ardCallSessionUserMapper.selectArdCallSessionUserById(id);
+    }
+
+    @Override
+    public ArdCallSessionUser selectArdCallSessionUserBySesionId(String userId, String sessionId) {
+        ArdCallSessionUser ardCallSessionUser = ardCallSessionUserMapper.selectArdCallSessionUserBySesionId(userId, sessionId);
+        if (ardCallSessionUser != null) {
+            //鑾峰彇鏈鏁伴噺
+            ArdCallUnreadMessages ardCallUnreadMessages = ardCallUnreadMessagesMapper.getUnreadMessage(ardCallSessionUser.getSessionId(), ardCallSessionUser.getUserId());
+            if (ardCallUnreadMessages != null) {
+                ardCallSessionUser.setUnReadCount(ardCallUnreadMessages.getUnreadCount());
+            } else {
+                ardCallSessionUser.setUnReadCount(0);
+            }
+            //鑾峰彇鏈�鍚庝竴鏉℃秷鎭疄浣�
+            ArdCallHistory ardCallHistory = ardCallHistoryMapper.selectLastArdCallHistory(ardCallSessionUser.getSessionId());
+            if (ardCallHistory != null) {
+                SysUser sysUser = sysUserService.selectUserById(ardCallHistory.getUserId());
+                if (sysUser != null) {
+                    ardCallHistory.setNickName(sysUser.getNickName());
+                    ardCallHistory.setAvatar(sysUser.getAvatar());
+                }
+                ardCallSessionUser.setArdCallHistory(ardCallHistory);
+            }
+            //缇よ亰targetNickName鏀逛负缇ゅ悕绉�
+            if (ardCallSessionUser.getType().equals("1")) {
+                ArdCallGroup ardCallGroup = ardCallGroupService.selectArdCallGroupById(ardCallSessionUser.getTargetId());
+                if (ardCallGroup != null) {
+                    ardCallSessionUser.setTargetNickName(ardCallGroup.getName());
+                }
+            }
+        }
+        return ardCallSessionUser;
     }
 
     /**
@@ -73,7 +109,21 @@
             }
             //鑾峰彇鏈�鍚庝竴鏉℃秷鎭疄浣�
             ArdCallHistory ardCallHistory = ardCallHistoryMapper.selectLastArdCallHistory(callSessionUser.getSessionId());
-            callSessionUser.setArdCallHistory(ardCallHistory);
+            if(ardCallHistory != null) {
+                SysUser sysUser = sysUserService.selectUserById(ardCallHistory.getUserId());
+                if (sysUser != null) {
+                    ardCallHistory.setNickName(sysUser.getNickName());
+                    ardCallHistory.setAvatar(sysUser.getAvatar());
+                }
+                callSessionUser.setArdCallHistory(ardCallHistory);
+            }
+            //缇よ亰targetNickName鏀逛负缇ゅ悕绉�
+            if (callSessionUser.getType().equals("1")) {
+                ArdCallGroup ardCallGroup = ardCallGroupService.selectArdCallGroupById(callSessionUser.getTargetId());
+                if (ardCallGroup != null) {
+                    callSessionUser.setTargetNickName(ardCallGroup.getName());
+                }
+            }
         });
         //杩囨护鎺夋病鏈夊巻鍙茶褰曠殑浼氳瘽
         ardCallSessionUsers = ardCallSessionUsers.stream().filter(obj -> obj.getArdCallHistory() != null).collect(Collectors.toList());

--
Gitblit v1.9.3