From 16a57a8fc6868cea9171a1119698572407a2fc03 Mon Sep 17 00:00:00 2001
From: hejianhao <15708179461@qq.com>
Date: 星期五, 28 八月 2026 15:21:46 +0800
Subject: [PATCH] fix0806: APP端去掉全部的市辖区选择

---
 tcm-training-admin-backend/src/main/java/com/tcm/training/admin/app/register/service/AppRegisterRegionService.java     |   10 ++++++++++
 tcm-training-admin-backend/src/test/java/com/tcm/training/admin/app/register/service/AppRegisterRegionServiceTest.java |   24 ++++++++++++++++++++++++
 2 files changed, 34 insertions(+), 0 deletions(-)

diff --git a/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/app/register/service/AppRegisterRegionService.java b/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/app/register/service/AppRegisterRegionService.java
index 2d587a6..67902d8 100644
--- a/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/app/register/service/AppRegisterRegionService.java
+++ b/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/app/register/service/AppRegisterRegionService.java
@@ -101,6 +101,9 @@
                 }
                 List<AppRegisterRegionPickerOptionVO> currentDistrictOptions = new ArrayList<AppRegisterRegionPickerOptionVO>(districts.size());
                 for (SysRegion district : districts) {
+                    if (shouldHideInAppPicker(district)) {
+                        continue;
+                    }
                     currentDistrictOptions.add(toPickerOption(district, 3));
                 }
                 currentAreaOptions.add(currentDistrictOptions);
@@ -117,6 +120,13 @@
     }
 
     /**
+     * APP 地区选择器不展示行政区划占位节点。
+     */
+    private boolean shouldHideInAppPicker(SysRegion region) {
+        return region.getName() != null && region.getName().contains("市辖区");
+    }
+
+    /**
      * 将海诊通诊所地区编码或名称归一化为本地三级行政区划。
      */
     public RegionSelection resolveRegionSelection(String provinceCode,
diff --git a/tcm-training-admin-backend/src/test/java/com/tcm/training/admin/app/register/service/AppRegisterRegionServiceTest.java b/tcm-training-admin-backend/src/test/java/com/tcm/training/admin/app/register/service/AppRegisterRegionServiceTest.java
index c6449c6..ba020b2 100644
--- a/tcm-training-admin-backend/src/test/java/com/tcm/training/admin/app/register/service/AppRegisterRegionServiceTest.java
+++ b/tcm-training-admin-backend/src/test/java/com/tcm/training/admin/app/register/service/AppRegisterRegionServiceTest.java
@@ -2,6 +2,7 @@
 
 import com.tcm.training.admin.app.register.entity.SysRegion;
 import com.tcm.training.admin.app.register.mapper.SysRegionMapper;
+import com.tcm.training.admin.app.register.vo.AppRegisterRegionDatasetVO;
 import com.tcm.training.admin.app.register.vo.AppRegisterRegionOptionVO;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -9,6 +10,7 @@
 import org.mockito.Mock;
 import org.mockito.junit.jupiter.MockitoExtension;
 
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
@@ -52,6 +54,28 @@
     }
 
     /**
+     * APP 完整地区数据集应过滤区县层级的市辖区占位节点。
+     */
+    @Test
+    void buildRegionDatasetShouldHideMunicipalDistrictPlaceholder() {
+        SysRegion province = buildRegion(1L, "江西省", "360000", 0L);
+        SysRegion city = buildRegion(2L, "吉安市", "360800", 1L);
+        SysRegion placeholder = buildRegion(3L, "吉安市市辖区", "360801", 2L);
+        SysRegion district = buildRegion(4L, "吉州区", "360802", 2L);
+        when(sysRegionMapper.selectAllOrdered()).thenReturn(
+                Arrays.asList(province, city, placeholder, district)
+        );
+
+        AppRegisterRegionDatasetVO dataset = appRegisterRegionService.buildRegionDataset();
+
+        assertEquals(1, dataset.getAreas().size());
+        assertEquals(1, dataset.getAreas().get(0).size());
+        assertEquals(1, dataset.getAreas().get(0).get(0).size());
+        assertEquals("吉州区", dataset.getAreas().get(0).get(0).get(0).getLabel());
+        assertEquals("360802", dataset.getAreas().get(0).get(0).get(0).getValue());
+    }
+
+    /**
      * 海诊通仅返回地区名称时,应通过 sys_region 解析出完整编码。
      */
     @Test

--
Gitblit v1.7.1