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