From 60b99798d57bee1dd8e72355c63ca636de2f90f8 Mon Sep 17 00:00:00 2001 From: tianfeng <769204422@qq.com> Date: Thu, 19 Mar 2026 22:29:46 +0800 Subject: [PATCH] =?UTF-8?q?Revert=20"=E5=8D=97=E4=BA=9A=E5=9B=BD=E5=AE=B6?= =?UTF-8?q?=E5=88=86=E5=BC=80=E5=A4=84=E7=90=86=E5=AE=8C=E5=96=84"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 7deeddc5a4e1c8617ba4e982ada031e92b42460d. --- .../room/query/RoomVoiceDiscoverQryExe.java | 58 +++++++++++++++---- .../live/impl/ActiveVoiceRoomServiceImpl.java | 38 +++++++----- 2 files changed, 69 insertions(+), 27 deletions(-) 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 f0d6468b..3c444724 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 @@ -65,9 +65,7 @@ public class RoomVoiceDiscoverQryExe { // 区域隔离常量 - 与ActiveVoiceRoomServiceImpl保持一致 private static final Set TR_REGIONS = Set.of("TR"); - private static final Set BD_REGIONS = Set.of("BD"); - private static final Set IN_REGIONS = Set.of("IN"); - private static final Set PK_REGIONS = Set.of("PK"); + private static final Set SA_REGIONS = Set.of("BD","SA", "IN", "PK"); private static final Set AR_REGIONS = Set.of("AE", "AR", "BH", "DJ", "DZ", "EG", "EY", "ER", "IL", "IQ", "JO", "KM", "KW", "LB", "LY", "MA", "MR", "OM", "PS", "QA", "SD", "SO", "SS", "SY", "TD", "TN", "YE"); private static final Set OTHER_REGIONS = Set.of("OTHER", "PH", "ID", "GH", "IR", "AF", "NG", "DE", "MYS", "TM", "AZ", "NP"); @@ -280,14 +278,8 @@ public class RoomVoiceDiscoverQryExe { * 获取区域所属的特殊区域组(如果不属于任何特殊组则返回null) */ private Set getRegionGroup(String region) { - if (BD_REGIONS.contains(region)) { - return BD_REGIONS; - } - if (IN_REGIONS.contains(region)) { - return IN_REGIONS; - } - if (PK_REGIONS.contains(region)) { - return PK_REGIONS; + if (SA_REGIONS.contains(region)) { + return SA_REGIONS; } if (AR_REGIONS.contains(region)) { return AR_REGIONS; @@ -301,6 +293,50 @@ public class RoomVoiceDiscoverQryExe { return null; } + + /** + * 获取需要排除的区域列表 + */ + private List getRegions(String region) { + List excludeRegions = new ArrayList<>(); + + if (SA_REGIONS.contains(region)) { + excludeRegions.addAll(AR_REGIONS); + excludeRegions.addAll(OTHER_REGIONS); + } else if (AR_REGIONS.contains(region)) { + excludeRegions.addAll(SA_REGIONS); + excludeRegions.addAll(OTHER_REGIONS); + } else if (OTHER_REGIONS.contains(region)) { + excludeRegions.addAll(SA_REGIONS); + excludeRegions.addAll(AR_REGIONS); + } else { + excludeRegions.addAll(SA_REGIONS); + excludeRegions.addAll(AR_REGIONS); + excludeRegions.addAll(OTHER_REGIONS); + } + + return excludeRegions; + } + + /** + * 获取特殊区域组列表 + */ + private List getSpecialRegions(String region) { + if (SA_REGIONS.contains(region)) { + return new ArrayList<>(SA_REGIONS); + } + + if (AR_REGIONS.contains(region)) { + return new ArrayList<>(AR_REGIONS); + } + + if (OTHER_REGIONS.contains(region)) { + return new ArrayList<>(OTHER_REGIONS); + } + + return new ArrayList<>(); + } + /** * 从缓存中获取没人的房间 * 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 0cd01791..0e4ce78b 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 @@ -37,18 +37,14 @@ public class ActiveVoiceRoomServiceImpl implements ActiveVoiceRoomService { private final MongoTemplate mongoTemplate; private static final Set TR_REGIONS = Set.of("TR"); - private static final Set BD_REGIONS = Set.of("BD"); - private static final Set IN_REGIONS = Set.of("IN"); - private static final Set PK_REGIONS = Set.of("PK"); + private static final Set SA_REGIONS = Set.of("BD","SA", "IN", "PK"); private static final Set AR_REGIONS = Set.of("AE", "AR", "BH", "DJ", "DZ", "EG", "EY", "ER", "IL", "IQ", "JO", "KM", "KW", "LB", "LY", "MA", "MR", "OM", "PS", "QA", "SD", "SO", "SS", "SY", "TD", "TN", "YE"); private static final Set OTHER_REGIONS = Set.of("OTHER", "PH", "ID", "GH", "IR", "AF", "NG", "DE", "MYS", "TM", "AZ", "NP"); private static final Set ALL_SPECIAL_REGIONS; static { Set temp = new HashSet<>(); - temp.addAll(BD_REGIONS); - temp.addAll(IN_REGIONS); - temp.addAll(PK_REGIONS); + temp.addAll(SA_REGIONS); temp.addAll(AR_REGIONS); temp.addAll(TR_REGIONS); temp.addAll(OTHER_REGIONS); @@ -192,14 +188,8 @@ public class ActiveVoiceRoomServiceImpl implements ActiveVoiceRoomService { * 获取区域所属的特殊区域组(如果不属于任何特殊组则返回null) */ private Set getRegionGroup(String region) { - if (BD_REGIONS.contains(region)) { - return BD_REGIONS; - } - if (IN_REGIONS.contains(region)) { - return IN_REGIONS; - } - if (PK_REGIONS.contains(region)) { - return PK_REGIONS; + if (SA_REGIONS.contains(region)) { + return SA_REGIONS; } if (AR_REGIONS.contains(region)) { return AR_REGIONS; @@ -217,8 +207,24 @@ public class ActiveVoiceRoomServiceImpl implements ActiveVoiceRoomService { * 获取指定区域组需要排除的其他区域组 */ private Set getExcludeRegionsForGroup(Set regionGroup) { - Set excludes = new HashSet<>(ALL_SPECIAL_REGIONS); - excludes.removeAll(regionGroup); + Set excludes = new HashSet<>(); + if (regionGroup == SA_REGIONS) { + excludes.addAll(AR_REGIONS); + excludes.addAll(OTHER_REGIONS); + excludes.addAll(TR_REGIONS); + } else if (regionGroup == AR_REGIONS) { + excludes.addAll(SA_REGIONS); + excludes.addAll(OTHER_REGIONS); + excludes.addAll(TR_REGIONS); + } else if (regionGroup == OTHER_REGIONS) { + excludes.addAll(SA_REGIONS); + excludes.addAll(AR_REGIONS); + excludes.addAll(TR_REGIONS); + } else if (regionGroup == TR_REGIONS) { + excludes.addAll(SA_REGIONS); + excludes.addAll(AR_REGIONS); + excludes.addAll(OTHER_REGIONS); + } return excludes; }