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());