src/main/java/org/springblade/modules/district/mapper/DistrictMapper.xml
@@ -71,7 +71,7 @@ aoi_code aoiCode from jczz_district where is_deleted = 0 <if test="district.districtIdList!=null and district.districtIdList!=''"> <if test="district.districtIdList!=null and district.districtIdList.size() > 0"> and id in <foreach collection="district.districtIdList" item="item" separator ="," open="(" close=")"> #{item} src/main/java/org/springblade/modules/district/service/impl/DistrictServiceImpl.java
@@ -16,26 +16,20 @@ */ package org.springblade.modules.district.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springblade.common.cache.SysCache; import org.springblade.common.node.TreeIntegerNode; 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.modules.district.entity.DistrictEntity; import org.springblade.modules.district.vo.DistrictVO; import org.springblade.modules.district.mapper.DistrictMapper; import org.springblade.modules.district.service.IDistrictService; import org.springblade.core.mp.base.BaseServiceImpl; 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.service.IPropertyDistrictUserService; import org.springblade.modules.system.entity.Dept; import org.springblade.modules.system.service.IDeptService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.metadata.IPage; import java.util.List; import java.util.Map; @@ -55,13 +49,13 @@ @Override public IPage<DistrictVO> selectDistrictPage(IPage<DistrictVO> page, DistrictVO district) { List<String> regionChildCodesList = SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId()); Integer isAdministrator = AuthUtil.isAdministrator()==true?1:2; List<DistrictVO> districtVOS = baseMapper.selectDistrictPage(page, district,regionChildCodesList,isAdministrator); Integer isAdministrator = AuthUtil.isAdministrator() == true ? 1 : 2; List<DistrictVO> districtVOS = baseMapper.selectDistrictPage(page, district, regionChildCodesList, isAdministrator); // 遍历 for (DistrictVO districtVO : districtVOS) { // 设置对应的网格名称 List<GridVO> gridVO = gridService.getGridListByAoiCode(districtVO.getAoiCode()); if (gridVO.size()>0) { if (gridVO.size() > 0) { StringBuilder builder = new StringBuilder(); for (GridVO vo : gridVO) { builder.append(vo.getGridName()).append(","); @@ -77,17 +71,12 @@ /** * 获取小区树 * * @param district * @return */ @Override public Object getDistrictTree(DistrictVO district) { String userRole = AuthUtil.getUserRole(); if (userRole.equals("wygly")||userRole.equals("wyxmjl")) { // 查询管理的小区 不好过滤小区 // todo // district.setDistrictIdList(strings); } Map<String, TreeStringNode> districtTree = baseMapper.getDistrictTree(district); List<TreeStringNode> stringNodeTree = NodeTreeUtil.getStringNodeTree(districtTree); stringNodeTree.forEach(node -> recursion(node)); @@ -97,6 +86,7 @@ /** * 去除空的数据组 * * @param node */ private void recursion(TreeStringNode node) { @@ -109,6 +99,7 @@ /** * 小区表 自定义获取详情 * * @param district * @return */ src/main/java/org/springblade/modules/system/mapper/DeptMapper.java
@@ -47,7 +47,7 @@ * @param tenantId * @return */ List<DeptVO> tree(String tenantId, Long parentId, Long id); List<DeptVO> tree(String tenantId, Long id); /** * 懒加载获取树形节点 src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml
@@ -39,17 +39,17 @@ <select id="lazyList" resultMap="deptVOResultMap"> SELECT dept.* , ( SELECT CASE WHEN count(1) > 0 THEN 1 ELSE 0 END FROM blade_dept WHERE parent_id = dept.id and is_deleted = 0 ) AS "has_children" dept.* , ( SELECT CASE WHEN count(1) > 0 THEN 1 ELSE 0 END FROM blade_dept dept blade_dept WHERE parent_id = dept.id and is_deleted = 0 ) AS "has_children" FROM blade_dept dept WHERE dept.is_deleted = 0 <if test="param1!=null and param1!=''"> and dept.tenant_id = #{param1} @@ -67,40 +67,52 @@ </select> <select id="tree" resultMap="treeNodeResultMap"> select id, parent_id, dept_name as title, id as "value", id as "key" from blade_dept where is_deleted = 0 <if test="param1!=null and param1!=''"> and tenant_id = #{param1} <if test="param2!=null"> SELECT id, dept_name AS title, id AS "value", id AS "key", parent_id FROM ( SELECT * FROM blade_dept WHERE is_deleted = 0 AND tenant_id = #{param1} ORDER BY parent_id, id ) org_query, ( SELECT @id := #{param2} ) initialisation WHERE (FIND_IN_SET( parent_id, @id ) > 0 or FIND_IN_SET( id, @id ) > 0) AND @id := CONCAT(@id,',',id) ORDER BY sort </if> <if test="param2!=null and param2!=''"> and parent_id = #{param2} <if test="param2==null"> select id, parent_id, dept_name as title, id as "value", id as "key" from blade_dept where is_deleted = 0 <if test="param1!=null and param1!=''"> and tenant_id = #{param1} </if> ORDER BY sort </if> <if test="param3!=null and param3!=''"> and id = #{param3} </if> ORDER BY sort </select> <select id="lazyTree" resultMap="treeNodeResultMap" > <select id="lazyTree" resultMap="treeNodeResultMap"> SELECT dept.id, dept.parent_id, dept.dept_name AS title, dept.id AS "value", dept.id AS "key", ( SELECT CASE WHEN count(1) > 0 THEN 1 ELSE 0 END FROM blade_dept WHERE parent_id = dept.id and is_deleted = 0 ) AS "has_children" dept.id, dept.parent_id, dept.dept_name AS title, dept.id AS "value", dept.id AS "key", ( SELECT CASE WHEN count(1) > 0 THEN 1 ELSE 0 END FROM blade_dept dept blade_dept WHERE dept.parent_id = #{param2} AND dept.is_deleted = 0 parent_id = dept.id and is_deleted = 0 ) AS "has_children" FROM blade_dept dept WHERE dept.parent_id = #{param2} AND dept.is_deleted = 0 <if test="param1!=null and param1!=''"> and dept.tenant_id = #{param1} </if> src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java
@@ -99,7 +99,6 @@ @Override public List<DeptVO> tree(String tenantId) { Long parentId = null; Long id = null; // 判断数据权限控制,非超管角色只可看到本级及以下数据 // if (!AuthUtil.isAdministrator()) { @@ -120,7 +119,7 @@ id = Func.firstLong(AuthUtil.getDeptId()); } return ForestNodeMerger.merge(baseMapper.tree(tenantId, parentId, id)); return ForestNodeMerger.merge(baseMapper.tree(tenantId, id)); } @Override