From 2b1a74f4faa5a00a294bdc6a6d956c2e009cf467 Mon Sep 17 00:00:00 2001
From: lin <sbla5888@163.com>
Date: Tue, 16 Apr 2024 15:32:09 +0800
Subject: [PATCH] 管理员过滤文章

---
 src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java |  182 ++++++++++++++++++++++++++-------------------
 1 files changed, 105 insertions(+), 77 deletions(-)

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 f6bc461..6e58274 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
@@ -48,6 +48,7 @@
 import org.springblade.modules.grid.service.IGridRangeService;
 import org.springblade.modules.grid.service.IGridService;
 import org.springblade.modules.grid.service.IGridmanService;
+import org.springblade.modules.grid.vo.GridVO;
 import org.springblade.modules.house.entity.HouseEntity;
 import org.springblade.modules.house.entity.UserHouseLabelEntity;
 import org.springblade.modules.house.service.IHouseRentalService;
@@ -143,43 +144,44 @@
 		List<TreeStringNode> list = new ArrayList<>();
 		// 获取请求头中的角色别名
 		String roleName = SpringUtils.getRequestParam("roleName");
-		// 如果是网格管理员,系统管理员,民警,无诈场所采集
-		if (roleName.equals("admin") ||
-			roleName.equals("wzcj") ||
-			roleName.equals("wgy") ||
-			roleName.equals("mj"))
-		{
-			houseParam.setRoleName(roleName);
-			if ((roleName.equals("wgy") || roleName.equals("wzcj"))
-				&& !userId.equals("1726859808689696770")) {
-				// 查询对应的网格code
+		if (!Strings.isBlank(roleName)) {
+			// 如果是网格管理员,系统管理员,民警,无诈场所采集
+			if (roleName.equals("admin") ||
+				roleName.equals("wzcj") ||
+				roleName.equals("wgy") ||
+				roleName.equals("mj")) {
+				houseParam.setRoleName(roleName);
+				if ((roleName.equals("wgy") || roleName.equals("wzcj"))
+					&& !userId.equals("1726859808689696770")) {
+					// 查询对应的网格code
 //				stringList = gridService.getGridListByUserId(AuthUtil.getUserId());
-				stringList = SysCache.getGridRegionChildCodesByDeptId(AuthUtil.getDeptId(),null,roleName);
-			}
-			if (roleName.equals("mj")) {
-				// 查询对应的社区编号
-				communityList = SysCache.getPoliceRegionChildCodesByDeptId(AuthUtil.getDeptId(),null);
-			}
-			// 查询街道
-			List<TreeStringNode> townList = baseMapper.getRegionListByGroupTwon(houseParam, stringList, communityList);
-			// 查询社区
-			List<TreeStringNode> neiList = baseMapper.getRegionListByGroupNei(houseParam, stringList, communityList);
-			// 遍历
-			for (TreeStringNode treeNode : townList) {
+					stringList = SysCache.getGridRegionChildCodesByDeptId(AuthUtil.getDeptId(), null, roleName);
+				}
+				if (roleName.equals("mj")) {
+					// 查询对应的社区编号
+					communityList = SysCache.getGridRegionChildCodesByDeptId(AuthUtil.getDeptId(), null, roleName);
+				}
+				// 查询街道
+				List<TreeStringNode> townList = baseMapper.getRegionListByGroupTwon(houseParam, stringList, communityList);
+				// 查询社区
+				List<TreeStringNode> neiList = baseMapper.getRegionListByGroupNei(houseParam, stringList, communityList);
 				// 遍历
-				for (TreeStringNode node : neiList) {
-					if (treeNode.getId().equals(node.getParentId())) {
-						node.setHasChildren(false);
-						treeNode.getChildren().add(node);
+				for (TreeStringNode treeNode : townList) {
+					// 遍历
+					for (TreeStringNode node : neiList) {
+						if (treeNode.getId().equals(node.getParentId())) {
+							node.setHasChildren(false);
+							treeNode.getChildren().add(node);
+						}
 					}
 				}
+				// 查询区域数据
+				return townList;
 			}
-			// 查询区域数据
-			return townList;
-		}
-		// 如果是居民
-		if (roleName.equals("inhabitant")) {
-			return getInhabitantInfo(list);
+			// 如果是居民
+			if (roleName.equals("inhabitant")) {
+				return getInhabitantInfo(list);
+			}
 		}
 		return list;
 	}
@@ -247,7 +249,7 @@
 		}
 		if (placeNodeList.size() > 0) {
 			TreeStringNode placeNode = new TreeStringNode();
-			placeNode.setName("场所");
+			placeNode.setName("经营场所");
 			placeNode.setId("2");
 			placeNode.setHasChildren(true);
 			placeNode.setChildren(placeNodeList);
@@ -267,23 +269,27 @@
 	public Object getHousesList(HouseParam houseParam) {
 		List<TreeStringNode> list = new ArrayList<>();
 		Map<String, Object> map = new HashMap<>(2);
+		String roleName = SpringUtils.getRequestParam("roleName");
+		if (!Strings.isBlank(roleName)){
+			houseParam.setRoleName(roleName);
+		}
 		// 获取网格员对应的地址编号集合
-		List<String> stringList = getHouseCodeList(houseParam);
+		List<String> addressCodeList = getHouseCodeList(houseParam);
 		List<String> communityCodeList = getCommunityCodeList(houseParam);
 		// 获取网格员对应的网格信息
 		getGridInfoByGridman(houseParam);
 		// 查小区,场所
 		if (houseParam.getType() == 1) {
 			// 根据社区名称查询小区集合
-			list = baseMapper.getDistrictList(houseParam, stringList, communityCodeList);
+			list = baseMapper.getDistrictList(houseParam, addressCodeList, communityCodeList);
 		}
 		// 查楼栋,街路巷
 		if (houseParam.getType() == 2) {
-			return getBuildLevelData(houseParam, map);
+			return getBuildLevelData(houseParam,addressCodeList, map);
 		}
 		// 查户室
 		if (houseParam.getType() == 3) {
-			return getHouseLevelData(houseParam, map);
+			return getHouseLevelData(houseParam,addressCodeList, map);
 		}
 		return list;
 	}
@@ -294,22 +300,19 @@
 	 * @param houseParam
 	 */
 	private void getGridInfoByGridman(HouseParam houseParam) {
-		if (houseParam.getRoleName().equals("网格员")) {
-			QueryWrapper<GridmanEntity> wrapper = new QueryWrapper<>();
-			wrapper.eq("is_deleted", 0)
-				.eq("user_id", AuthUtil.getUserId());
-			List<GridmanEntity> list = gridmanService.list(wrapper);
-			if (list.size() > 0) {
-				GridmanEntity gridmanEntity = list.get(0);
-				GridEntity gridEntity = gridService.getById(gridmanEntity.getGridId());
-				// 查询居委会
-				Region region = regionService.getById(gridEntity.getCommunityCode());
-				if (null != region) {
-					houseParam.setCommunityName(region.getName());
-				}
-				if (!Strings.isBlank(gridEntity.getGridName())) {
-					houseParam.setGridName(gridEntity.getGridName());
-				}
+		if (houseParam.getRoleName().equals("wgy")) {
+			if (Strings.isBlank(houseParam.getRoleName())){
+				houseParam.setRoleName(SpringUtils.getRequestParam("roleName"));
+			}
+			// 查询网格员的网格编号集合
+			List<String> gridCodeList
+				= SysCache.getGridRegionChildCodesByDeptId(AuthUtil.getDeptId(), null, houseParam.getRoleName());
+			String communityCode = SpringUtils.getRequestParam("communityCode");
+			List<GridVO> list = gridService.getGridListByComAndList(communityCode,gridCodeList);
+			if (list.size()>0){
+				GridVO grid = list.get(0);
+				houseParam.setCommunityName(grid.getCommunityName());
+				houseParam.setGridName(grid.getGridName());
 			}
 		}
 	}
@@ -321,8 +324,7 @@
 	 * @param map
 	 * @return
 	 */
-	private Map<String, Object> getHouseLevelData(HouseParam houseParam, Map<String, Object> map) {
-		List<String> stringList = getHouseCodeList(houseParam);
+	private Map<String, Object> getHouseLevelData(HouseParam houseParam, List<String> stringList,Map<String, Object> map) {
 		// 判断地址类型
 		if (houseParam.getAddressType() == 1) {
 			List<FuncNode> aoiList = new ArrayList<>();
@@ -395,7 +397,7 @@
 	 * @param map
 	 * @return
 	 */
-	private Object getBuildLevelData(HouseParam houseParam, Map<String, Object> map) {
+	private Object getBuildLevelData(HouseParam houseParam,List<String> stringList, Map<String, Object> map) {
 		if (houseParam.getAddressType() == 4) {
 			// 获取网格员对应的网格信息
 			getGridInfoByGridman(houseParam);
@@ -406,7 +408,6 @@
 			// 返回
 			return map;
 		} else {
-			List<String> stringList = getHouseCodeList(houseParam);
 			// 判断 code 长度,如果 code 长度大于 12 则为小区查楼栋/商铺,否则则按社区查街路巷
 			if (houseParam.getCode().length() > 12) {
 				List<TreeStringNode> aoiList = new ArrayList<>();
@@ -625,14 +626,20 @@
 	 * @return
 	 */
 	@Override
-	public Object getHouseRentInfo(String code) {
-		// 先查询门牌信息
-		DoorplateAddressVO doorplateAddressDetailVO = baseMapper.getDoorplateAddressDetailByCode(code);
+	public Object getHouseRentInfo(String code,Long houseId) {
+		DoorplateAddressVO doorplateAddressDetailVO = new DoorplateAddressVO();
+		if (Strings.isBlank(code) && null!=houseId) {
+			// 先查询门牌信息
+			doorplateAddressDetailVO = baseMapper.getDoorplateAddressDetailByHouseId(houseId);
+		}else {
+			// 先查询门牌信息
+			doorplateAddressDetailVO = baseMapper.getDoorplateAddressDetailByCode(code);
+		}
 		if (null != doorplateAddressDetailVO) {
 			// 查询房屋出租情况
-			List<HouseRentalVO> houseRentalVOS = houseRentalService.getHouseRentalListByCode(code);
+			List<HouseRentalVO> houseRentalVOS = houseRentalService.getHouseRentalListByCode(doorplateAddressDetailVO.getAddressCode());
 			// 查询房屋人员情况
-			List<HouseholdVO> householdVOS = householdService.getHouseholdListByCode(code);
+			List<HouseholdVO> householdVOS = householdService.getHouseholdListByCode(doorplateAddressDetailVO.getAddressCode());
 			// 设置数据
 			doorplateAddressDetailVO.setHouseRentalList(houseRentalVOS);
 			doorplateAddressDetailVO.setHouseholdList(householdVOS);
@@ -708,6 +715,10 @@
 	 */
 	@Override
 	public List<DoorplateAddressVOTree> getHouseTree(HouseParam houseParam) {
+		String roleName = SpringUtils.getRequestParam("roleName");
+		if (!Strings.isBlank(roleName)){
+			houseParam.setRoleName(roleName);
+		}
 		List<String> stringList = getHouseCodeList(houseParam);
 		// 根据社区居委会编号获取对应的小区/楼栋/单元/户室
 		return NodeTreeUtil.getAddressNodeTree(baseMapper.getHouseTree(houseParam, stringList));
@@ -720,16 +731,22 @@
 	 * @return
 	 */
 	private List<String> getHouseCodeList(HouseParam houseParam) {
-		List<String> stringList = new ArrayList<>();
+		List<String> addressCodeList = new ArrayList<>();
 		String userId = AuthUtil.getUserId().toString();
 		houseParam.setUserId(userId);
 		if (null != houseParam.getRoleName() && !houseParam.getRoleName().equals("")) {
-			if (houseParam.getRoleName().equals("网格员") && !userId.equals("1726859808689696770")) {
+			if ((houseParam.getRoleName().equals("wgy") || houseParam.getRoleName().equals("wzcj"))
+				&& !userId.equals("1726859808689696770")) {
+				// 先取对应网格员对应的网格编号集合
+				List<String> gridCodeList
+					= SysCache.getGridRegionChildCodesByDeptId(AuthUtil.getDeptId(), null, houseParam.getRoleName());
 				// 查询对应的房屋地址code
-				stringList = gridService.getAddressCodeListByUserId(AuthUtil.getUserId(),null);
+//				addressCodeList = gridService.getAddressCodeListByUserId(AuthUtil.getUserId(),null);
+				addressCodeList =
+					gridService.getAddressCodeListByGridCodeList(SpringUtils.getRequestParam("communityCode"),gridCodeList);
 			}
 		}
-		return stringList;
+		return addressCodeList;
 	}
 
 	/**
@@ -743,9 +760,9 @@
 		String userId = AuthUtil.getUserId().toString();
 		houseParam.setUserId(userId);
 		if (null != houseParam.getRoleName() && !houseParam.getRoleName().equals("")) {
-			if (houseParam.getRoleName().equals("民警") && !userId.equals("1726859808689696770")) {
+			if (houseParam.getRoleName().equals("mj") && !userId.equals("1726859808689696770")) {
 				// 查询对应社区编号集合
-				stringList = SysCache.getPoliceRegionChildCodesByDeptId(AuthUtil.getDeptId(),null);
+				stringList = SysCache.getGridRegionChildCodesByDeptId(AuthUtil.getDeptId(),null,houseParam.getRoleName());
 			}
 		}
 		return stringList;
@@ -980,19 +997,30 @@
 			String roleName = SpringUtils.getRequestParam("roleName");
 			if (!Strings.isBlank(roleName)) {
 				// 判断是否有权限
-				if (roleName.equals("wgy")) {
-					list = gridService.getAddressCodeListByUserId(AuthUtil.getUserId(),doorplateAddress.getAddressCode());
-					if (list.size() == 0) {
-						// 无权限
-						doorplateAddressVO.setIsJur(2);
-					} else {
-						doorplateAddressVO.setIsJur(1);
+				if (roleName.equals("wgy") || roleName.equals("wzcj")) {
+					// 无权限
+					doorplateAddressVO.setIsJur(2);
+//					list = gridService.getAddressCodeListByUserId(AuthUtil.getUserId(),doorplateAddress.getAddressCode());
+					list = SysCache.getGridRegionChildCodesByDeptId(AuthUtil.getDeptId(),null,roleName);
+					if (null != list && list.size() > 0) {
+						List<String> arrayList = new ArrayList<>();
+						for (String gridCode : list) {
+							if (gridCode.length()>12) {
+								arrayList.add(gridCode.substring(0, gridCode.length() - 2));
+							}else {
+								arrayList.add(gridCode);
+							}
+						}
+						boolean contains = arrayList.contains(doorplateAddressVO.getNeiCode());
+						if (contains) {
+							doorplateAddressVO.setIsJur(1);
+						}
 					}
-				} else if (roleName.equals("mj")) {
+				}else if (roleName.equals("mj")) {
 					// 无权限
 					doorplateAddressVO.setIsJur(2);
 					// 查询对应的社区code
-					list = SysCache.getPoliceRegionChildCodesByDeptId(AuthUtil.getDeptId(),null);
+					list = SysCache.getGridRegionChildCodesByDeptId(AuthUtil.getDeptId(),null,roleName);
 					if (null != list && list.size() > 0) {
 						boolean contains = list.contains(doorplateAddressVO.getNeiCode());
 						if (contains) {

--
Gitblit v1.9.3