From b639a956c488bb588e39f1141aaf55232f30aaba Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Thu, 25 Jan 2024 09:16:24 +0800
Subject: [PATCH] 小区过滤

---
 src/main/java/org/springblade/modules/district/service/impl/DistrictServiceImpl.java |   35 +++++++++++++++++++++++++++++++++++
 1 files changed, 35 insertions(+), 0 deletions(-)

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 0e9fa04..e2ab801 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
@@ -17,22 +17,32 @@
 package org.springblade.modules.district.service.impl;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springblade.common.cache.SysCache;
 import org.springblade.common.node.TreeStringNode;
 import org.springblade.common.utils.NodeTreeUtil;
+import org.springblade.common.utils.SpringUtils;
 import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.utils.SpringUtil;
 import org.springblade.modules.district.entity.DistrictEntity;
 import org.springblade.modules.district.mapper.DistrictMapper;
 import org.springblade.modules.district.service.IDistrictService;
 import org.springblade.modules.district.vo.DistrictVO;
 import org.springblade.modules.grid.service.IGridService;
 import org.springblade.modules.grid.vo.GridVO;
+import org.springblade.modules.property.entity.PropertyCompanyDistrictEntity;
+import org.springblade.modules.property.entity.PropertyCompanyEntity;
+import org.springblade.modules.property.service.IPropertyCompanyDistrictService;
+import org.springblade.modules.property.service.IPropertyCompanyService;
+import org.springblade.modules.property.service.IPropertyDistrictUserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * 小区表 服务实现类
@@ -77,6 +87,31 @@
 	 */
 	@Override
 	public Object getDistrictTree(DistrictVO district) {
+		// 判断角色,物业角色只能查询当前小区的
+		String userRole = AuthUtil.getUserRole();
+		if (userRole.contains("wygly")|| userRole.contains("wyxmjl")) {
+			// 查询小区id
+			IPropertyDistrictUserService propertyDistrictUserService = SpringUtils.getBean(IPropertyDistrictUserService.class);
+			List<String> districtIds = propertyDistrictUserService.selectPropertyDistrictByUserId(AuthUtil.getUserId());
+			// 通过用户机构查询用户的物业公司
+			// 通过用户机构查询用户的物业公司
+			IPropertyCompanyService bean = SpringUtil.getBean(IPropertyCompanyService.class);
+			PropertyCompanyEntity one = bean.getOne(Wrappers.<PropertyCompanyEntity>lambdaQuery().eq(PropertyCompanyEntity::getDeptId, AuthUtil.getDeptId()));
+			if (one != null) {
+				IPropertyCompanyDistrictService bean2 = SpringUtils.getBean(IPropertyCompanyDistrictService.class);
+				// 通过物业公司,查询小区
+				List<PropertyCompanyDistrictEntity> list = bean2.list(Wrappers.<PropertyCompanyDistrictEntity>lambdaQuery()
+					.eq(PropertyCompanyDistrictEntity::getPropertyCompanyId, one.getId()));
+				if (list.size() > 0) {
+					List<String> collect = list.stream().map(i -> i.getDistrictId()).collect(Collectors.toList());
+					districtIds.addAll(collect);
+				}
+			}
+			district.setDistrictIdList(districtIds);
+			if (districtIds.size() == 0) {
+				return new ArrayList<>();
+			}
+		}
 		Map<String, TreeStringNode> districtTree = baseMapper.getDistrictTree(district);
 		List<TreeStringNode> stringNodeTree = NodeTreeUtil.getStringNodeTree(districtTree);
 		stringNodeTree.forEach(node -> recursion(node));

--
Gitblit v1.9.3