From 91b70d5ad2ada85cf00b25f7b9ecd9cf980bf138 Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: 星期一, 12 八月 2024 16:42:44 +0800
Subject: [PATCH] 优化:websocket接收消息

---
 ard-work/src/main/java/com/ruoyi/call/service/impl/ArdCallGroupUserServiceImpl.java |   52 +++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 51 insertions(+), 1 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/call/service/impl/ArdCallGroupUserServiceImpl.java b/ard-work/src/main/java/com/ruoyi/call/service/impl/ArdCallGroupUserServiceImpl.java
index a2962b4..ade48e1 100644
--- a/ard-work/src/main/java/com/ruoyi/call/service/impl/ArdCallGroupUserServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/call/service/impl/ArdCallGroupUserServiceImpl.java
@@ -4,6 +4,8 @@
 import java.util.List;
 
 import com.ruoyi.call.domain.ArdCallGroup;
+import com.ruoyi.call.domain.ArdCallSessionUser;
+import com.ruoyi.call.mapper.ArdCallSessionUserMapper;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.DateUtils;
 
@@ -36,6 +38,8 @@
     private ArdCallGroupUserMapper ardCallGroupUserMapper;
     @Resource
     private SysUserMapper sysUserMapper;
+    @Resource
+    private ArdCallSessionUserMapper ardCallSessionUserMapper;
 
     /**
      * 鏌ヨ缇ょ粍鐢ㄦ埛涓棿
@@ -130,6 +134,19 @@
             ardCallGroupUser.setCreateTime(DateUtils.getNowDate());
             ardCallGroupUser.setUserId(userId);
             ardCallGroupUserMapper.insertArdCallGroupUser(ardCallGroupUser);
+            //閭�璇锋垚鍛樻垚鍔熷悗鍒涘缓session
+            //閫氳繃缇d鑾峰彇缇ession
+            String sessionId = ardCallSessionUserMapper.getGroupSessionId("1", id);
+            if (StringUtils.isNotEmpty(sessionId)) {
+                ArdCallSessionUser ardCallSessionUser = new ArdCallSessionUser();
+                ardCallSessionUser.setId(IdUtils.simpleUUID());
+                ardCallSessionUser.setType("1");
+                ardCallSessionUser.setSessionId(sessionId);
+                ardCallSessionUser.setUserId(userId);
+                ardCallSessionUser.setTargetId(id);
+                ardCallSessionUser.setCreateTime(DateUtils.getNowDate());
+                ardCallSessionUserMapper.insertArdCallSessionUser(ardCallSessionUser);
+            }
         });
         return userIds.length;
     }
@@ -146,12 +163,18 @@
         return ardCallGroupUserMapper.removeGroupUser(id, userIds);
     }
 
+    /**
+     * 鏌ヨ涓嶅湪缇ょ粍鐨勪汉鍛樺垪琛�
+     *
+     * @param groupId 缇ょ粍涓婚敭
+     * @return 缁撴灉
+     */
     @Override
     public List<SysUser> notInGroupUsers(String groupId) {
         //鑾峰彇骞冲彴鎵�鏈夌敤鎴�
         List<SysUser> userList = sysUserMapper.selectUserList(new SysUser());
         //鑾峰彇缇ょ粍鍐呯敤鎴�
-        ArdCallGroupUser ardCallGroupUser=new ArdCallGroupUser();
+        ArdCallGroupUser ardCallGroupUser = new ArdCallGroupUser();
         ardCallGroupUser.setGroupId(groupId);
         List<ArdCallGroupUser> ardCallGroupUsers = ardCallGroupUserMapper.selectArdCallGroupUserList(ardCallGroupUser);
         // 鎻愬彇groupList涓殑userId鍒颁竴涓猄et涓�
@@ -164,4 +187,31 @@
                 .collect(Collectors.toList());
         return filteredUserList;
     }
+
+    /**
+     * 鏌ヨ缇ょ粍鐨勪汉鍛樺垪琛�
+     *
+     * @param groupId 缇ょ粍涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public List<SysUser> InGroupUsers(String groupId) {
+        // 1. 鑾峰彇缇ょ粍鍐呯敤鎴�
+        ArdCallGroupUser ardCallGroupUser = new ArdCallGroupUser();
+        ardCallGroupUser.setGroupId(groupId);
+        List<ArdCallGroupUser> ardCallGroupUsers = ardCallGroupUserMapper.selectArdCallGroupUserList(ardCallGroupUser);
+        if (ardCallGroupUsers.size() > 0) {
+            // 2. 鎻愬彇鐢ㄦ埛 ID 鍒楄〃
+            List<String> userIds = ardCallGroupUsers.stream()
+                    .map(ArdCallGroupUser::getUserId)
+                    .collect(Collectors.toList());
+
+            // 3. 鎵归噺鏌ヨ鐢ㄦ埛淇℃伅
+            List<SysUser> users = sysUserMapper.selectUsersByIds(userIds);
+            return users;
+        } else {
+            return new ArrayList<>();
+        }
+    }
+
 }

--
Gitblit v1.9.3