From a418deffea29910c52bc5f89d43a9f8a0cac3553 Mon Sep 17 00:00:00 2001 From: tianfeng <769204422@qq.com> Date: Thu, 7 Aug 2025 18:46:30 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E5=8F=91=E7=8E=B0):=20=E5=8F=91=E7=8E=B0?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=96=B0=E5=A2=9E=E6=98=AF=E5=90=A6=E6=89=80?= =?UTF-8?q?=E6=9C=89=E5=8C=BA=E5=9F=9F=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../circle/common/business/dto/cmd/AppExtCommand.java | 5 +++++ .../command/room/query/RoomVoiceDiscoverQryExe.java | 10 ++++------ .../mongo/service/live/ActiveVoiceRoomService.java | 2 +- .../service/live/impl/ActiveVoiceRoomServiceImpl.java | 6 +++--- 4 files changed, 13 insertions(+), 10 deletions(-) diff --git a/rc-common-business/common-business-dto/src/main/java/com/red/circle/common/business/dto/cmd/AppExtCommand.java b/rc-common-business/common-business-dto/src/main/java/com/red/circle/common/business/dto/cmd/AppExtCommand.java index 0516630d..e76df6de 100644 --- a/rc-common-business/common-business-dto/src/main/java/com/red/circle/common/business/dto/cmd/AppExtCommand.java +++ b/rc-common-business/common-business-dto/src/main/java/com/red/circle/common/business/dto/cmd/AppExtCommand.java @@ -29,6 +29,11 @@ public class AppExtCommand extends AppCommand { private String roomSessionId; + /** + * 所有区域 + */ + private boolean isAllRegion = false; + /** * 转系统枚举. */ 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 d4a42e35..f4be0cba 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 @@ -54,7 +54,7 @@ public class RoomVoiceDiscoverQryExe { private final LiveMicClient liveMicClient; public List execute(AppExtCommand cmd) { - String region = userRegionGateway.getRegionCode(cmd.requiredReqUserId()); + String region = cmd.isAllRegion() ? "ALL" : userRegionGateway.getRegionCode(cmd.requiredReqUserId()); String key = cmd.requireReqSysOrigin() + region; String regionsRoom = regionRoomCacheService.getRegionsRoom(key); @@ -63,7 +63,7 @@ public class RoomVoiceDiscoverQryExe { return roomList; } - List activeVoiceRooms = activeVoiceRoomService.listDiscover(cmd.requireReqSysOrigin(), region, 50); + List activeVoiceRooms = activeVoiceRoomService.listDiscover(cmd.requireReqSysOrigin(), cmd.isAllRegion(), region, 50); log.info("activeVoiceRooms:{}", JSON.toJSONString(activeVoiceRooms)); // 处理没有人的房间,有缓存不会大量创建线程 // new Thread(() -> formatRoomList(activeVoiceRooms)).start(); @@ -72,10 +72,8 @@ public class RoomVoiceDiscoverQryExe { if (CollectionUtils.isEmpty(roomList)) { //roomList = getHomeData(cmd,latestMobileDeviceService.getLatestLanguage(cmd.requiredReqUserId())); - roomList = roomVoiceProfileCommon - .toListRoomVoiceProfileCO(activeVoiceRoomService.listDiscover( - cmd.requireReqSysOrigin(), "ID", 50) - ); + roomList = roomVoiceProfileCommon.toListRoomVoiceProfileCO( + activeVoiceRoomService.listDiscover(cmd.requireReqSysOrigin(), cmd.isAllRegion(), "ID", 50)); } if (CollectionUtils.isEmpty(roomList)) { return CollectionUtils.newArrayList(); diff --git a/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/mongo/service/live/ActiveVoiceRoomService.java b/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/mongo/service/live/ActiveVoiceRoomService.java index 0b913d35..02a2878c 100644 --- a/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/mongo/service/live/ActiveVoiceRoomService.java +++ b/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/mongo/service/live/ActiveVoiceRoomService.java @@ -65,7 +65,7 @@ public interface ActiveVoiceRoomService { /** * 获取发现页数据. */ - List listDiscover(String sysOrigin, String region, Integer limit); + List listDiscover(String sysOrigin, boolean isAllRegion, String region, Integer limit); /** * 获取区域房间. diff --git a/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/mongo/service/live/impl/ActiveVoiceRoomServiceImpl.java b/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/mongo/service/live/impl/ActiveVoiceRoomServiceImpl.java index 683e4455..342eaf15 100644 --- a/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/mongo/service/live/impl/ActiveVoiceRoomServiceImpl.java +++ b/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/mongo/service/live/impl/ActiveVoiceRoomServiceImpl.java @@ -118,7 +118,7 @@ public class ActiveVoiceRoomServiceImpl implements ActiveVoiceRoomService { @Override - public List listDiscover(String sysOrigin, String region, Integer limit) { + public List listDiscover(String sysOrigin, boolean isAllRegion, String region, Integer limit) { // 区域隔离 List regions = getRegions(region); @@ -126,10 +126,10 @@ public class ActiveVoiceRoomServiceImpl implements ActiveVoiceRoomService { log.info("被隔离区域 regions:{}", JSON.toJSONString(regions)); // 构建聚合管道 Criteria criteria = Criteria.where("sysOrigin").is(sysOrigin); - if (CollectionUtils.isNotEmpty(specialRegions)) { + if (CollectionUtils.isNotEmpty(specialRegions) && !isAllRegion) { criteria.and("region").in(specialRegions); } - if (CollectionUtils.isEmpty(specialRegions) && CollectionUtils.isNotEmpty(regions)) { + if (CollectionUtils.isEmpty(specialRegions) && CollectionUtils.isNotEmpty(regions) && !isAllRegion) { criteria.and("region").nin(regions); } Aggregation aggregation = Aggregation.newAggregation(