Browse Source

用户状态统计列表开发

gao.qiang 1 week ago
parent
commit
b78a5c7596

+ 10 - 6
hazard-admin/src/main/java/com/ozs/web/core/util/InsertUserStateUtil.java

@@ -55,16 +55,20 @@ public class InsertUserStateUtil {
         List<String>  userLists =baseUserMapper.getUserLists();
 
 
+        // 使用Set提高查找性能
+        Set<String> onlineSet = new HashSet<>(onlineUser);
+        Set<String> userSet = new HashSet<>(userIdList);
+        Set<String> userAll = new HashSet<>(userIdsAll);
 
         // 计算差集和交集
-        Set<String> offlineUsers = userIdList.stream()
-                .filter(userId -> !onlineUser.contains(userId))
+        Set<String> offlineUsers = userSet.stream()
+                .filter(userId -> !onlineSet.contains(userId))
                 .collect(Collectors.toSet());
-        Set<String> offlineUsersAll = userIdsAll.stream()
-                .filter(userId -> !onlineUser.contains(userId))
+        Set<String> offlineUsersAll = userAll.stream()
+                .filter(userId -> !onlineSet.contains(userId))
                 .collect(Collectors.toSet());
-        Set<String> onlineUsers = onlineUser.stream()
-                .filter(userIdList::contains)
+        Set<String> onlineUsers = onlineSet.stream()
+                .filter(userSet::contains)
                 .collect(Collectors.toSet());
 
         // 批量查询用户信息,减少数据库查询