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) {