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