From 2b599a5307883b9407ea9225c4e33fc28706f7a8 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Tue, 30 Apr 2024 09:49:37 +0800
Subject: [PATCH] 新增社区树查询接口(单独)

---
 src/main/java/org/springblade/modules/system/mapper/RegionMapper.java            |    9 ++++
 src/main/java/org/springblade/modules/system/mapper/RegionMapper.xml             |   44 +++++++++++++++++----
 src/main/java/org/springblade/modules/system/service/IRegionService.java         |    6 +++
 src/main/java/org/springblade/modules/system/controller/RegionController.java    |    9 ++++
 src/main/java/org/springblade/modules/system/service/impl/RegionServiceImpl.java |   13 ++++++
 5 files changed, 72 insertions(+), 9 deletions(-)

diff --git a/src/main/java/org/springblade/modules/system/controller/RegionController.java b/src/main/java/org/springblade/modules/system/controller/RegionController.java
index 2f3eda8..448d86c 100644
--- a/src/main/java/org/springblade/modules/system/controller/RegionController.java
+++ b/src/main/java/org/springblade/modules/system/controller/RegionController.java
@@ -136,6 +136,15 @@
 		return R.data(regionService.getTree(region));
 	}
 
+	/**
+	 * 树列表-查询到社区的树
+	 * @return
+	 */
+	@GetMapping("/treeToCommunity")
+	@ApiOperation(value = "树列表-查询到社区的树", notes = "传入menu")
+	public R treeToCommunity() {
+		return R.data(regionService.treeToCommunity());
+	}
 
 	/**
 	 * 树列表(获取当前树)
diff --git a/src/main/java/org/springblade/modules/system/mapper/RegionMapper.java b/src/main/java/org/springblade/modules/system/mapper/RegionMapper.java
index 03d1f88..d2386ac 100644
--- a/src/main/java/org/springblade/modules/system/mapper/RegionMapper.java
+++ b/src/main/java/org/springblade/modules/system/mapper/RegionMapper.java
@@ -128,4 +128,13 @@
 	 * @return
 	 */
     List<String> getAllCommunityNameListString(@Param("articleRange") String articleRange);
+
+	/**
+	 * 树列表-查询到社区的树
+	 * @param regionChildCodesList
+	 * @param isAdministrator
+	 * @return
+	 */
+	@MapKey(value = "id")
+	Map<String, TreeStringNode> treeToCommunity(List<String> regionChildCodesList, Integer isAdministrator);
 }
diff --git a/src/main/java/org/springblade/modules/system/mapper/RegionMapper.xml b/src/main/java/org/springblade/modules/system/mapper/RegionMapper.xml
index da5f846..a36c2e5 100644
--- a/src/main/java/org/springblade/modules/system/mapper/RegionMapper.xml
+++ b/src/main/java/org/springblade/modules/system/mapper/RegionMapper.xml
@@ -152,14 +152,14 @@
     <!--根据父编号查询所有的下级-->
     <select id="getTreeList" resultType="org.springblade.common.node.TreeStringNode">
         <if test="region.cityCode!=null and region.cityCode!=''">
-        select
-        grid_code as id,
-        community_code as parentId,
-        grid_name as name,
-        jg.sort
-        FROM jczz_grid jg
-        left join blade_region br on br.village_code = jg.community_code and br.region_level = 5
-        where jg.is_deleted = 0 and jg.community_code like concat(#{region.cityCode},'%')
+            select
+            grid_code as id,
+            community_code as parentId,
+            grid_name as name,
+            jg.sort
+            FROM jczz_grid jg
+            left join blade_region br on br.village_code = jg.community_code and br.region_level = 5
+            where jg.is_deleted = 0 and jg.community_code like concat(#{region.cityCode},'%')
             <if test="isAdministrator==2">
                 <choose>
                     <when test="regionChildCodesList !=null and regionChildCodesList.size()>0">
@@ -173,7 +173,7 @@
                     </otherwise>
                 </choose>
             </if>
-        union all
+            union all
         </if>
         SELECT
         code as id,
@@ -337,4 +337,30 @@
         )
     </select>
 
+
+    <!--根据父编号查询所有的下级-->
+    <select id="treeToCommunity" resultType="org.springblade.common.node.TreeStringNode">
+        select
+        br.code as id,
+        br.parent_code as parentId,
+        br.name as name,
+        br.sort
+        FROM blade_region br
+        left join jczz_grid jg on br.village_code = jg.community_code and jg.is_deleted = 0 and br.region_level = 5
+        where 1=1 and (br.ancestors like '%361102%' or br.code = '361102')
+        <if test="isAdministrator==2">
+            <choose>
+                <when test="regionChildCodesList !=null and regionChildCodesList.size()>0">
+                    and jg.community_code in
+                    <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
+                        #{code}
+                    </foreach>
+                </when>
+                <otherwise>
+                    and jg.community_code in ('')
+                </otherwise>
+            </choose>
+        </if>
+    </select>
+
 </mapper>
diff --git a/src/main/java/org/springblade/modules/system/service/IRegionService.java b/src/main/java/org/springblade/modules/system/service/IRegionService.java
index 1bb8585..6ac4937 100644
--- a/src/main/java/org/springblade/modules/system/service/IRegionService.java
+++ b/src/main/java/org/springblade/modules/system/service/IRegionService.java
@@ -138,4 +138,10 @@
 	 * @return
 	 */
     String getAllCommunityNameListString(String articleRange);
+
+	/**
+	 * 树列表-查询到社区的树
+	 * @return
+	 */
+	List<TreeStringNode> treeToCommunity();
 }
diff --git a/src/main/java/org/springblade/modules/system/service/impl/RegionServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/RegionServiceImpl.java
index f2df262..39d8ea5 100644
--- a/src/main/java/org/springblade/modules/system/service/impl/RegionServiceImpl.java
+++ b/src/main/java/org/springblade/modules/system/service/impl/RegionServiceImpl.java
@@ -347,4 +347,17 @@
 		// 分割后es搜索才有效果,不能用逗号分割
 		return String.join("\\",baseMapper.getAllCommunityNameListString(articleRange));
 	}
+
+	/**
+	 * 树列表-查询到社区的树
+	 * @return
+	 */
+	@Override
+	public List<TreeStringNode> treeToCommunity() {
+		List<String> regionChildCodesList = SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId(), null);
+		Integer isAdministrator = AuthUtils.isAdministratorOrAdmin(AuthUtil.getUserRole()) == true ? 1 : 2;
+		// 查询
+		Map<String, TreeStringNode> treeList = baseMapper.treeToCommunity(regionChildCodesList, isAdministrator);
+		return NodeTreeUtil.getStringNodeTree(treeList);
+	}
 }

--
Gitblit v1.9.3