diff --git a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/room/query/RoomVoiceDiscoverQryExe.java b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/room/query/RoomVoiceDiscoverQryExe.java index edaa6311..ae463f5f 100644 --- a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/room/query/RoomVoiceDiscoverQryExe.java +++ b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/room/query/RoomVoiceDiscoverQryExe.java @@ -81,9 +81,16 @@ public class RoomVoiceDiscoverQryExe { // 按照listDiscover的过滤规则过滤空房间 List matchedEmptyRooms = filterEmptyRoomsByRegion(emptyRooms, cmd.requireReqSysOrigin(), cmd.isAllRegion(), region); if (CollectionUtils.isNotEmpty(matchedEmptyRooms)) { - // 创建新的可修改列表,合并活跃房间和空房间 + // 创建新的可修改列表,合并活跃房间和空房间,并去重 List allRooms = new ArrayList<>(activeVoiceRooms); - allRooms.addAll(matchedEmptyRooms); + // 获取已存在的房间ID + Set existingRoomIds = activeVoiceRooms.stream() + .map(ActiveVoiceRoom::getId) + .collect(Collectors.toSet()); + // 只添加不存在的空房间 + matchedEmptyRooms.stream() + .filter(room -> !existingRoomIds.contains(room.getId())) + .forEach(allRooms::add); activeVoiceRooms = allRooms; } } diff --git a/rc-service/rc-service-other/other-inner-endpoint/src/main/java/com/red/circle/other/app/inner/service/live/impl/ActiveVoiceRoomClientServiceImpl.java b/rc-service/rc-service-other/other-inner-endpoint/src/main/java/com/red/circle/other/app/inner/service/live/impl/ActiveVoiceRoomClientServiceImpl.java index 9794aa0a..b5bd5998 100644 --- a/rc-service/rc-service-other/other-inner-endpoint/src/main/java/com/red/circle/other/app/inner/service/live/impl/ActiveVoiceRoomClientServiceImpl.java +++ b/rc-service/rc-service-other/other-inner-endpoint/src/main/java/com/red/circle/other/app/inner/service/live/impl/ActiveVoiceRoomClientServiceImpl.java @@ -93,20 +93,12 @@ public class ActiveVoiceRoomClientServiceImpl implements ActiveVoiceRoomClientSe .setExpiredTime(TimestampUtils.nowPlusMinutes(topRoomForeverOnline ? 60 : 3)) .setCreateTime(TimestampUtils.now()) .setUpdateTime(TimestampUtils.now()) - .setOnlineQuantity(getAvRoomOnlineMemberNum(room)) + .setOnlineQuantity(0L) .setWeights(weights) .setSuperVipLevel(Objects.toString( userSVipGateway.checkSVipIdentity(room.getUserId())) ); } - private Long getAvRoomOnlineMemberNum(RoomProfile roomProfile) { - Long resultQuantity = liveMicClient.getLiveRoomUserSize(roomProfile.getId()).getBody(); - if (Objects.nonNull(resultQuantity)) { - roomManagerCacheService.setNumberPeople(roomProfile.getRoomAccount(), resultQuantity); - return resultQuantity; - } - return 0L; - } }