liusuyi
2024-07-26 38f4107cbe3cbb066f77365b16af96f5b7650bd8
ard-work/src/main/java/com/ruoyi/call/service/impl/ArdCallHistoryServiceImpl.java
@@ -7,10 +7,13 @@
import com.alibaba.fastjson2.JSONObject;
import com.ruoyi.call.domain.*;
import com.ruoyi.call.mapper.*;
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.MessageUtils;
import com.ruoyi.common.utils.uuid.IdUtils;
import com.ruoyi.system.service.ISysUserService;
import com.ruoyi.utils.websocket.util.WebSocketUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -46,6 +49,8 @@
    private ArdCallUnreadMessagesMapper ardCallUnreadMessagesMapper;
    @Resource
    private ArdCallGroupUserMapper ardCallGroupUserMapper;
    @Resource
    private IArdCallGroupService ardCallGroupService;
    /**
     * 查询会话历史
@@ -55,7 +60,18 @@
     */
    @Override
    public ArdCallHistory selectArdCallHistoryById(String id) {
        return ardCallHistoryMapper.selectArdCallHistoryById(id);
        ArdCallHistory ardCallHistory = ardCallHistoryMapper.selectArdCallHistoryById(id);
        if (ardCallHistory != null) {
            //群聊则将targetNickName改为群名称
            ArdCallSession ardCallSession = ardCallSessionMapper.selectArdCallSessionById(ardCallHistory.getSessionId());
            if (ardCallSession != null && ardCallSession.getType().equals("1")) {
                ArdCallGroup ardCallGroup = ardCallGroupService.selectArdCallGroupById(ardCallHistory.getTargetId());
                if (ardCallGroup != null) {
                    ardCallHistory.setTargetNickName(ardCallGroup.getName());
                }
            }
        }
        return ardCallHistory;
    }
    /**
@@ -66,7 +82,18 @@
     */
    @Override
    public List<ArdCallHistory> selectArdCallHistoryList(ArdCallHistory ardCallHistory) {
        return ardCallHistoryMapper.selectArdCallHistoryList(ardCallHistory);
        List<ArdCallHistory> ardCallHistories = ardCallHistoryMapper.selectArdCallHistoryList(ardCallHistory);
        ardCallHistories.stream().forEach(aCallHistory -> {
            //群聊则将targetNickName改为群名称
            ArdCallSession ardCallSession = ardCallSessionMapper.selectArdCallSessionById(aCallHistory.getSessionId());
            if (ardCallSession != null && ardCallSession.getType().equals("1")) {
                ArdCallGroup ardCallGroup = ardCallGroupService.selectArdCallGroupById(aCallHistory.getTargetId());
                if (ardCallGroup != null) {
                    aCallHistory.setTargetNickName(ardCallGroup.getName());
                }
            }
        });
        return ardCallHistories;
    }
    /**
@@ -104,13 +131,10 @@
            Map<String, Object> messageMap = new HashMap<>();
            messageMap.put("type", "message");
            messageMap.put("message", JSON.toJSONString(ardCallHistory));
            ONLINE_USER_SESSIONS.entrySet().stream()
                    .filter(entry -> {
                        Matcher matcher = pattern.matcher(entry.getKey());
                        return matcher.matches();
                    })
                    .map(Map.Entry::getValue)
                    .forEach(session -> WebSocketUtils.sendMessage(session, messageMap));
            ONLINE_USER_SESSIONS.entrySet().stream().filter(entry -> {
                Matcher matcher = pattern.matcher(entry.getKey());
                return matcher.matches();
            }).map(Map.Entry::getValue).forEach(session -> WebSocketUtils.sendMessage(session, messageMap));
        } else {
            //更新群聊用户未读消息计数
@@ -141,14 +165,10 @@
                    Map<String, Object> messageMap = new HashMap<>();
                    messageMap.put("type", "message");
                    messageMap.put("message", JSON.toJSONString(ardCallHistory));
                    ONLINE_USER_SESSIONS.entrySet().stream()
                            .filter(entry ->
                            {
                                Matcher matcher = pattern.matcher(entry.getKey());
                                return matcher.matches();
                            })
                            .map(Map.Entry::getValue)
                            .forEach(session -> WebSocketUtils.sendMessage(session, messageMap));
                    ONLINE_USER_SESSIONS.entrySet().stream().filter(entry -> {
                        Matcher matcher = pattern.matcher(entry.getKey());
                        return matcher.matches();
                    }).map(Map.Entry::getValue).forEach(session -> WebSocketUtils.sendMessage(session, messageMap));
                }
            });