From 38f29e38fcc668171dc05c53d40a36b895c86102 Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: 星期四, 10 十月 2024 13:34:28 +0800
Subject: [PATCH] init
---
ard-work/src/main/java/com/ruoyi/call/service/impl/ArdCallHistoryServiceImpl.java | 75 ++++++++++++++++++++++++++-----------
1 files changed, 53 insertions(+), 22 deletions(-)
diff --git a/ard-work/src/main/java/com/ruoyi/call/service/impl/ArdCallHistoryServiceImpl.java b/ard-work/src/main/java/com/ruoyi/call/service/impl/ArdCallHistoryServiceImpl.java
index 8667806..d442904 100644
--- a/ard-work/src/main/java/com/ruoyi/call/service/impl/ArdCallHistoryServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/call/service/impl/ArdCallHistoryServiceImpl.java
@@ -1,26 +1,23 @@
package com.ruoyi.call.service.impl;
-import java.util.List;
-
import com.ruoyi.call.domain.*;
-import com.ruoyi.call.mapper.*;
+import com.ruoyi.call.dto.MessageEvent;
+import com.ruoyi.call.mapper.ArdCallGroupUserMapper;
+import com.ruoyi.call.mapper.ArdCallHistoryMapper;
+import com.ruoyi.call.mapper.ArdCallSessionMapper;
+import com.ruoyi.call.mapper.ArdCallUnreadMessagesMapper;
+import com.ruoyi.call.service.IArdCallGroupService;
+import com.ruoyi.call.service.IArdCallHistoryService;
import com.ruoyi.common.utils.DateUtils;
-
-import com.ruoyi.common.utils.MessageUtils;
+import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.uuid.IdUtils;
-import com.ruoyi.utils.websocket.util.WebSocketUtils;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.ApplicationEventPublisher;
import org.springframework.stereotype.Service;
-import java.util.ArrayList;
-
-import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.common.utils.SecurityUtils;
-import com.ruoyi.call.service.IArdCallHistoryService;
-
import javax.annotation.Resource;
-
-import static com.ruoyi.utils.websocket.util.WebSocketUtils.ONLINE_USER_SESSIONS;
+import java.util.List;
/**
* 浼氳瘽鍘嗗彶Service涓氬姟灞傚鐞�
@@ -29,6 +26,7 @@
* @date 2024-07-03
*/
@Service
+@Slf4j(topic = "msgListener")
public class ArdCallHistoryServiceImpl implements IArdCallHistoryService {
@Resource
private ArdCallHistoryMapper ardCallHistoryMapper;
@@ -38,6 +36,10 @@
private ArdCallUnreadMessagesMapper ardCallUnreadMessagesMapper;
@Resource
private ArdCallGroupUserMapper ardCallGroupUserMapper;
+ @Resource
+ private IArdCallGroupService ardCallGroupService;
+ @Autowired
+ private ApplicationEventPublisher eventPublisher;
/**
* 鏌ヨ浼氳瘽鍘嗗彶
@@ -47,7 +49,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;
}
/**
@@ -58,7 +71,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;
}
/**
@@ -80,13 +104,17 @@
ardCallUnreadMessages.setUserId(ardCallHistory.getTargetId());
ardCallUnreadMessages.setSessionId(ardCallHistory.getSessionId());
ardCallUnreadMessages.setUnreadCount(1);
- ardCallUnreadMessagesMapper.insertArdCallUnreadMessages(ardCallUnreadMessages);
+ int rows = ardCallUnreadMessagesMapper.selectCountByUserIdAndSessionId(ardCallUnreadMessages.getUserId(), ardCallUnreadMessages.getSessionId());
+ if (rows == 0) {
+ ardCallUnreadMessagesMapper.insertArdCallUnreadMessages(ardCallUnreadMessages);
+ }
} else {
ardCallUnreadMessages.setUnreadCount(ardCallUnreadMessages.getUnreadCount() + 1);
ardCallUnreadMessagesMapper.updateArdCallUnreadMessages(ardCallUnreadMessages);
}
//websocket鍙戦�佺粰targetId
- WebSocketUtils.sendMessage(ONLINE_USER_SESSIONS.get(ardCallHistory.getTargetId()),ardCallHistory.getContent());
+ MessageEvent messageEvent = new MessageEvent(ardCallHistory.getTargetId(), ardCallHistory);
+ eventPublisher.publishEvent(messageEvent);
} else {
//鏇存柊缇よ亰鐢ㄦ埛鏈娑堟伅璁℃暟
ArdCallGroupUser ardCallGroupUser = new ArdCallGroupUser();
@@ -101,16 +129,19 @@
ardCallUnreadMessages.setUserId(groupUser.getUserId());
ardCallUnreadMessages.setSessionId(ardCallHistory.getSessionId());
ardCallUnreadMessages.setUnreadCount(1);
- ardCallUnreadMessagesMapper.insertArdCallUnreadMessages(ardCallUnreadMessages);
+ int rows = ardCallUnreadMessagesMapper.selectCountByUserIdAndSessionId(ardCallUnreadMessages.getUserId(), ardCallUnreadMessages.getSessionId());
+ if (rows == 0) {
+ ardCallUnreadMessagesMapper.insertArdCallUnreadMessages(ardCallUnreadMessages);
+ }
} else {
ardCallUnreadMessages.setUnreadCount(ardCallUnreadMessages.getUnreadCount() + 1);
ardCallUnreadMessagesMapper.updateArdCallUnreadMessages(ardCallUnreadMessages);
}
+ //websocket鍙戦�佺粰targetId
+ MessageEvent messageEvent = new MessageEvent(groupUser.getUserId(), ardCallHistory);
+ eventPublisher.publishEvent(messageEvent);
}
- //websocket鍙戦�佺粰targetId
- WebSocketUtils.sendMessage(ONLINE_USER_SESSIONS.get(groupUser.getUserId()),ardCallHistory.getContent());
});
-
}
return ardCallHistoryMapper.insertArdCallHistory(ardCallHistory);
}
--
Gitblit v1.9.3