From d362cc31c68fd87d183088c4273a12a3faecb573 Mon Sep 17 00:00:00 2001 From: ScarletRedMan Date: Fri, 15 Mar 2024 00:46:10 +0700 Subject: [PATCH] Fixed count users inside nodes --- .../repository/impl/UserRepositoryImpl.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/server/src/main/java/ru/dragonestia/picker/repository/impl/UserRepositoryImpl.java b/server/src/main/java/ru/dragonestia/picker/repository/impl/UserRepositoryImpl.java index 58dc224..83c5046 100644 --- a/server/src/main/java/ru/dragonestia/picker/repository/impl/UserRepositoryImpl.java +++ b/server/src/main/java/ru/dragonestia/picker/repository/impl/UserRepositoryImpl.java @@ -166,16 +166,26 @@ public class UserRepositoryImpl implements UserRepository { @Override public Map countUsersForNodes() { - var map = new HashMap(); + var map = new HashMap>(); lock.readLock().lock(); try { - roomUsers.forEach((path, users) -> map.put(path.node, users.size())); + roomUsers.forEach((path, users) -> { + if (map.containsKey(path.node)) { + map.get(path.node).addAll(users); + return; + } + + map.put(path.node, new HashSet<>(users)); + }); } finally { lock.readLock().unlock(); } - return map; + var result = new HashMap(); + map.forEach((node, users) -> result.put(node, users.size())); + + return result; } private record NodeRoomPath(String node, String room) {