From c565ed505c1762e0eaf3d5eaeb618b90478920b5 Mon Sep 17 00:00:00 2001
From: lin <sbla5888@163.com>
Date: Sat, 13 Apr 2024 15:37:21 +0800
Subject: [PATCH] 小区过滤

---
 src/main/java/org/springblade/modules/district/mapper/DistrictMapper.xml             |   26 ++++++++++++++++++++++++++
 src/main/java/org/springblade/modules/district/mapper/DistrictMapper.java            |    4 +++-
 src/main/java/org/springblade/modules/district/service/impl/DistrictServiceImpl.java |    4 +++-
 3 files changed, 32 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/springblade/modules/district/mapper/DistrictMapper.java b/src/main/java/org/springblade/modules/district/mapper/DistrictMapper.java
index 1eb2bbe..db3af60 100644
--- a/src/main/java/org/springblade/modules/district/mapper/DistrictMapper.java
+++ b/src/main/java/org/springblade/modules/district/mapper/DistrictMapper.java
@@ -51,7 +51,9 @@
 	 * @return
 	 */
 	@MapKey(value = "id")
-    Map<String, TreeStringNode> getDistrictTree(@Param("district") DistrictVO district);
+    Map<String, TreeStringNode> getDistrictTree(@Param("district") DistrictVO district,
+												@Param("regionChildCodesList") List<String> regionChildCodesList,
+												@Param("isAdministrator") Integer isAdministrator);
 
 	/**
 	 * 小区表 自定义获取详情
diff --git a/src/main/java/org/springblade/modules/district/mapper/DistrictMapper.xml b/src/main/java/org/springblade/modules/district/mapper/DistrictMapper.xml
index 2fdf6b2..48790f9 100644
--- a/src/main/java/org/springblade/modules/district/mapper/DistrictMapper.xml
+++ b/src/main/java/org/springblade/modules/district/mapper/DistrictMapper.xml
@@ -62,6 +62,19 @@
         name,
         remark aoiCode
         FROM blade_region where district_code like concat('361102','%')
+        <if test="isAdministrator==2">
+            <choose>
+                <when test="regionChildCodesList !=null and regionChildCodesList.size()>0">
+                    and code in
+                    <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
+                        #{code}
+                    </foreach>
+                </when>
+                <otherwise>
+                    and code in ('')
+                </otherwise>
+            </choose>
+        </if>
         union all
         (
         select
@@ -77,6 +90,19 @@
                 #{item}
             </foreach>
         </if>
+        <if test="isAdministrator==2">
+            <choose>
+                <when test="regionChildCodesList !=null and regionChildCodesList.size()>0">
+                    and community_code in
+                    <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
+                        #{code}
+                    </foreach>
+                </when>
+                <otherwise>
+                    and community_code in ('')
+                </otherwise>
+            </choose>
+        </if>
         )
     </select>
 
diff --git a/src/main/java/org/springblade/modules/district/service/impl/DistrictServiceImpl.java b/src/main/java/org/springblade/modules/district/service/impl/DistrictServiceImpl.java
index 8662304..aef457b 100644
--- a/src/main/java/org/springblade/modules/district/service/impl/DistrictServiceImpl.java
+++ b/src/main/java/org/springblade/modules/district/service/impl/DistrictServiceImpl.java
@@ -94,6 +94,8 @@
 	public Object getDistrictTree(DistrictVO district) {
 		// 判断角色,物业角色只能查询当前小区的
 		String userRole = AuthUtil.getUserRole();
+		CommonParamSet invoke = new CommonParamSet<>().invoke(DistrictVO.class, district);
+
 		if (RoleUtil.isProperty(userRole)) {
 			if (district.getFilterFlag().equals(1)) {
 				// 查询小区id
@@ -120,7 +122,7 @@
 				}
 			}
 		}
-		Map<String, TreeStringNode> districtTree = baseMapper.getDistrictTree(district);
+		Map<String, TreeStringNode> districtTree = baseMapper.getDistrictTree(district,invoke.getRegionChildCodesList(),invoke.getIsAdministrator());
 		List<TreeStringNode> stringNodeTree = NodeTreeUtil.getStringNodeTree(districtTree);
 		stringNodeTree.forEach(node -> recursion(node));
 		return stringNodeTree;

--
Gitblit v1.9.3