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 |  161 ++++++++++++++++++++++++++++++++---------------------
 1 files changed, 97 insertions(+), 64 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 60ff672..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;
@@ -129,31 +130,36 @@
 	/**
 	 * 根据角色获取功能集合数据
 	 *
-	 * @param type     1:查社区  2:查房屋和场所(居民角色)
-	 * @param roleName
+	 * @param type     1:查社区  2:查房屋和场所(居民角色)--2024/04/10  弃用
+	 * @param roleNames --2024/04/10  弃用
 	 * @return
 	 */
 	@Override
-	public Object getFuncList(Integer type, String roleName) {
+	public Object getFuncList(Integer type, String roleNames) {
 		HouseParam houseParam = new HouseParam();
 		String userId = AuthUtil.getUserId().toString();
 		houseParam.setUserId(userId);
 		List<String> stringList = new ArrayList<>();
 		List<String> communityList = new ArrayList<>();
 		List<TreeStringNode> list = new ArrayList<>();
-		if (null != type) {
-			// 如果是网格管理员,系统管理员,民警
-			if (type == 1) {
-				if (null != roleName && !roleName.equals("")) {
-					houseParam.setRoleName(roleName);
-					if (roleName.equals("网格员") && !userId.equals("1726859808689696770")) {
-						// 查询对应的网格code
-						stringList = gridService.getGridListByUserId(AuthUtil.getUserId());
-					}
-					if (roleName.equals("民警")) {
-						// 查询对应的社区编号
-						communityList = SysCache.getPoliceRegionChildCodesByDeptId(AuthUtil.getDeptId(),null);
-					}
+		// 获取请求头中的角色别名
+		String roleName = SpringUtils.getRequestParam("roleName");
+		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.getGridRegionChildCodesByDeptId(AuthUtil.getDeptId(), null, roleName);
 				}
 				// 查询街道
 				List<TreeStringNode> townList = baseMapper.getRegionListByGroupTwon(houseParam, stringList, communityList);
@@ -173,7 +179,7 @@
 				return townList;
 			}
 			// 如果是居民
-			if (type == 2 || type == 3) {
+			if (roleName.equals("inhabitant")) {
 				return getInhabitantInfo(list);
 			}
 		}
@@ -225,7 +231,7 @@
 			list.add(houseNode);
 
 			TreeStringNode placeNode = new TreeStringNode();
-			placeNode.setName("场所");
+			placeNode.setName("经营场所");
 			placeNode.setId("2");
 			placeNode.setHasChildren(true);
 			placeNode.setChildren(placeNodeList);
@@ -243,7 +249,7 @@
 		}
 		if (placeNodeList.size() > 0) {
 			TreeStringNode placeNode = new TreeStringNode();
-			placeNode.setName("场所");
+			placeNode.setName("经营场所");
 			placeNode.setId("2");
 			placeNode.setHasChildren(true);
 			placeNode.setChildren(placeNodeList);
@@ -263,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;
 	}
@@ -290,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());
 			}
 		}
 	}
@@ -317,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<>();
@@ -391,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);
@@ -402,7 +408,6 @@
 			// 返回
 			return map;
 		} else {
-			List<String> stringList = getHouseCodeList(houseParam);
 			// 判断 code 长度,如果 code 长度大于 12 则为小区查楼栋/商铺,否则则按社区查街路巷
 			if (houseParam.getCode().length() > 12) {
 				List<TreeStringNode> aoiList = new ArrayList<>();
@@ -621,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);
@@ -704,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));
@@ -716,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;
 	}
 
 	/**
@@ -739,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;
@@ -973,21 +994,33 @@
 		if (null != doorplateAddressVO) {
 			// 不限制
 			doorplateAddressVO.setIsJur(1);
-			if (!Strings.isBlank(doorplateAddress.getRoleName())) {
+			String roleName = SpringUtils.getRequestParam("roleName");
+			if (!Strings.isBlank(roleName)) {
 				// 判断是否有权限
-				if (doorplateAddress.getRoleName().equals("网格员")) {
-					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 (doorplateAddress.getRoleName().equals("民警")) {
+				}else if (roleName.equals("mj")) {
 					// 无权限
 					doorplateAddressVO.setIsJur(2);
 					// 查询对应的社区code
-					list = policeAffairsGridService.getCommunityCodeListByUserId(AuthUtil.getUserId());
+					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