From 2bd69d1dca40d2fdf07f72e0117d2f0febde5359 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Sat, 23 Dec 2023 15:27:02 +0800
Subject: [PATCH] 新增民警楼盘,功能数据过滤

---
 src/main/java/org/springblade/modules/community/mapper/CommunityMapper.xml                           |    6 +++
 src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml             |   24 ++++++++++++
 src/main/java/org/springblade/modules/community/service/ICommunityService.java                       |    8 ++++
 src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.java            |    9 +++-
 src/main/java/org/springblade/modules/community/mapper/CommunityMapper.java                          |    7 +++
 src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java |   32 ++++++++++++++--
 src/main/java/org/springblade/modules/community/service/impl/CommunityServiceImpl.java               |   12 +++++
 7 files changed, 89 insertions(+), 9 deletions(-)

diff --git a/src/main/java/org/springblade/modules/community/mapper/CommunityMapper.java b/src/main/java/org/springblade/modules/community/mapper/CommunityMapper.java
index 1861f71..efd3f61 100644
--- a/src/main/java/org/springblade/modules/community/mapper/CommunityMapper.java
+++ b/src/main/java/org/springblade/modules/community/mapper/CommunityMapper.java
@@ -40,5 +40,10 @@
 	 */
 	List<CommunityVO> selectCommunityPage(IPage page,@Param("community") CommunityVO community);
 
-
+	/**
+	 * 查询个人社区编号集合
+	 * @param userId
+	 * @return
+	 */
+	List<String> getCommunityCodeListByUserId(@Param("userId") Long userId);
 }
diff --git a/src/main/java/org/springblade/modules/community/mapper/CommunityMapper.xml b/src/main/java/org/springblade/modules/community/mapper/CommunityMapper.xml
index 12a9083..0b885da 100644
--- a/src/main/java/org/springblade/modules/community/mapper/CommunityMapper.xml
+++ b/src/main/java/org/springblade/modules/community/mapper/CommunityMapper.xml
@@ -36,5 +36,11 @@
         </if>
     </select>
 
+    <!--自定义分页列表查询-->
+    <select id="getCommunityCodeListByUserId" resultType="java.lang.String">
+        select code from jczz_community
+        where is_deleted = 0 and res_police_user_id = #{userId}
+    </select>
+
 
 </mapper>
diff --git a/src/main/java/org/springblade/modules/community/service/ICommunityService.java b/src/main/java/org/springblade/modules/community/service/ICommunityService.java
index df2d6cd..fed076a 100644
--- a/src/main/java/org/springblade/modules/community/service/ICommunityService.java
+++ b/src/main/java/org/springblade/modules/community/service/ICommunityService.java
@@ -21,6 +21,8 @@
 import org.springblade.modules.community.vo.CommunityVO;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
+import java.util.List;
+
 /**
  * 社区表 服务类
  *
@@ -39,4 +41,10 @@
 	IPage<CommunityVO> selectCommunityPage(IPage<CommunityVO> page, CommunityVO community);
 
 
+	/**
+	 * 查询个人社区编号集合
+	 * @param userId
+	 * @return
+	 */
+    List<String> getCommunityCodeListByUserId(Long userId);
 }
diff --git a/src/main/java/org/springblade/modules/community/service/impl/CommunityServiceImpl.java b/src/main/java/org/springblade/modules/community/service/impl/CommunityServiceImpl.java
index 97148ef..e9945ce 100644
--- a/src/main/java/org/springblade/modules/community/service/impl/CommunityServiceImpl.java
+++ b/src/main/java/org/springblade/modules/community/service/impl/CommunityServiceImpl.java
@@ -24,6 +24,8 @@
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
+import java.util.List;
+
 /**
  * 社区表 服务实现类
  *
@@ -38,5 +40,13 @@
 		return page.setRecords(baseMapper.selectCommunityPage(page, community));
 	}
 
-
+	/**
+	 * 查询个人社区编号集合
+	 * @param userId
+	 * @return
+	 */
+	@Override
+	public List<String> getCommunityCodeListByUserId(Long userId) {
+		return baseMapper.getCommunityCodeListByUserId(userId);
+	}
 }
diff --git a/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.java b/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.java
index 68474a8..b18d802 100644
--- a/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.java
+++ b/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.java
@@ -55,14 +55,16 @@
 	 * @return
 	 */
     List<TreeStringNode> getRegionListByGroupTwon(@Param("houseParam") HouseParam houseParam,
-                                                  @Param("list") List<String> list);
+                                                  @Param("list") List<String> list,
+                                                  @Param("communityList") List<String> communityList);
 
 	/**
 	 * 查询社区数据
 	 * @return
 	 */
     List<TreeStringNode> getRegionListByGroupNei(@Param("houseParam") HouseParam houseParam,
-                                                 @Param("list") List<String> list);
+                                                 @Param("list") List<String> list,
+                                                 @Param("communityList") List<String> communityList);
 
 	/**
 	 * 根据社区名称查询小区集合
@@ -71,7 +73,8 @@
 	 * @return
 	 */
     List<TreeStringNode> getDistrictList(@Param("houseParam") HouseParam houseParam,
-                                         @Param("list") List<String> list);
+                                         @Param("list") List<String> list,
+                                         @Param("communityList") List<String> communityList);
 
 	/**
 	 * 根据社区名称查询楼栋集合
diff --git a/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml b/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml
index 19886da..6341475 100644
--- a/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml
+++ b/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml
@@ -21,6 +21,25 @@
         </if>
     </sql>
 
+    <!--过滤社区数据-->
+    <sql id="filterCommunity">
+        <if test="houseParam.roleName!=null and houseParam.roleName!=''">
+            <if test="houseParam.roleName=='民警' and houseParam.userId!='1726859808689696770'">
+                <choose>
+                    <when test="communityList != null and communityList.size()>0">
+                        and nei_code in
+                        <foreach collection="communityList" item="neiCode" separator ="," open="("  close=")">
+                            #{neiCode}
+                        </foreach>
+                    </when>
+                    <otherwise>
+                        and nei_code in ('')
+                    </otherwise>
+                </choose>
+            </if>
+        </if>
+    </sql>
+
     <!--门牌地址详情查询-->
     <resultMap id="doorplateAddressDetailMap" type="org.springblade.modules.doorplateAddress.vo.DoorplateAddressVO"
                autoMapping="true">
@@ -56,6 +75,7 @@
             and nei_name = '万达社区居民委员会'
         </if>
         <include refid="filterHouseGrid"/>
+        <include refid="filterCommunity"/>
         group by town_street_code,town_street_name
     </select>
 
@@ -67,6 +87,7 @@
             and nei_name = '万达社区居民委员会'
         </if>
         <include refid="filterHouseGrid"/>
+        <include refid="filterCommunity"/>
         group by nei_code,nei_name,town_street_code
     </select>
 
@@ -83,6 +104,7 @@
             and nei_code = #{houseParam.code}
         </if>
         <include refid="filterHouseGrid"/>
+        <include refid="filterCommunity"/>
         group by aoi_code,aoi_name
         union all
         (
@@ -97,6 +119,7 @@
             and nei_code = #{houseParam.code}
         </if>
         <include refid="filterHouseGrid"/>
+        <include refid="filterCommunity"/>
         group by aoi_code,sub_aoi
         )
         union all
@@ -111,6 +134,7 @@
             and nei_code = #{houseParam.code}
         </if>
         <include refid="filterHouseGrid"/>
+        <include refid="filterCommunity"/>
         group by nei_code
         )
         union all
diff --git a/src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java b/src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java
index efe9394..fb04f78 100644
--- a/src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java
+++ b/src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java
@@ -118,21 +118,26 @@
 		String userId = AuthUtil.getUserId().toString();
 		houseParam.setUserId(userId);
 		List<String> stringList = new ArrayList<>();
+		List<String> communityList = new ArrayList<>();
 		if (null!=roleName && !roleName.equals("")){
 			houseParam.setRoleName(roleName);
 			if (roleName.equals("网格员") && !userId.equals("1726859808689696770")){
 				// 查询对应的房屋地址code
 				stringList = gridService.getAddressCodeListByUserId(AuthUtil.getUserId());
 			}
+			if (roleName.equals("民警")){
+				// 查询对应的社区编号
+				communityList = communityService.getCommunityCodeListByUserId(AuthUtil.getUserId());
+			}
 		}
 		List<TreeStringNode> list = new ArrayList<>();
 		if (null!=type) {
-			// 如果是网格管理员,系统管理员
+			// 如果是网格管理员,系统管理员,民警
 			if (type==1){
 				// 查询街道
-				List<TreeStringNode> townList = baseMapper.getRegionListByGroupTwon(houseParam,stringList);
+				List<TreeStringNode> townList = baseMapper.getRegionListByGroupTwon(houseParam,stringList,communityList);
 				// 查询社区
-				List<TreeStringNode> neiList = baseMapper.getRegionListByGroupNei(houseParam,stringList);
+				List<TreeStringNode> neiList = baseMapper.getRegionListByGroupNei(houseParam,stringList,communityList);
 				// 遍历
 				for (TreeStringNode treeNode : townList) {
 					// 遍历
@@ -228,12 +233,13 @@
 		Map<String, Object> map = new HashMap<>(2);
 		// 获取网格员对应的地址编号集合
 		List<String> stringList = getHouseCodeList(houseParam);
+		List<String> communityCodeList = getCommunityCodeList(houseParam);
 		// 获取网格员对应的网格信息
 		getGridInfoByGridman(houseParam);
 		// 查小区,场所
 		if (houseParam.getType()==1){
 			// 根据社区名称查询小区集合
-			list  = baseMapper.getDistrictList(houseParam,stringList);
+			list  = baseMapper.getDistrictList(houseParam,stringList,communityCodeList);
 		}
 		// 查楼栋,街路巷
 		if (houseParam.getType()==2){
@@ -626,6 +632,24 @@
 	}
 
 	/**
+	 * 根据角色获取社区编号集合
+	 * @param houseParam
+	 * @return
+	 */
+	private List<String> getCommunityCodeList(HouseParam houseParam) {
+		List<String> stringList = new ArrayList<>();
+		String userId = AuthUtil.getUserId().toString();
+		houseParam.setUserId(userId);
+		if (null != houseParam.getRoleName() && !houseParam.getRoleName().equals("")) {
+			if (houseParam.getRoleName().equals("民警") && !userId.equals("1726859808689696770")) {
+				// 查询对应的房屋地址code
+				stringList = communityService.getCommunityCodeListByUserId(AuthUtil.getUserId());
+			}
+		}
+		return stringList;
+	}
+
+	/**
 	 * 房屋数据处理
 	 * @return
 	 */

--
Gitblit v1.9.3