From 1636f02b9cf3f408ebf8b3c4e377237e5b74bf4a Mon Sep 17 00:00:00 2001 From: zhangnaisong <2434969829@qq.com> Date: 星期五, 26 七月 2024 10:57:30 +0800 Subject: [PATCH] 电磁锁实时状态加入报警详情提交 --- ard-work/src/main/java/com/ruoyi/call/service/impl/ArdCallHistoryServiceImpl.java | 65 ++++++++++++++++++++++---------- 1 files changed, 45 insertions(+), 20 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 82014e5..d7a967c 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 @@ -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; } /** @@ -77,7 +104,6 @@ */ @Override public int insertArdCallHistory(ArdCallHistory ardCallHistory) { - ardCallHistory.setId(IdUtils.simpleUUID()); ardCallHistory.setCreateTime(DateUtils.getNowDate()); @@ -90,7 +116,10 @@ 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); @@ -102,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 { //鏇存柊缇よ亰鐢ㄦ埛鏈娑堟伅璁℃暟 @@ -124,7 +150,10 @@ 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); @@ -136,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)); } }); -- Gitblit v1.9.3