linwei
2024-01-24 157b568be6abe0b759ab5cd3dd91ea829841cfa3
查询机构子机构及其本身
5 files modified
54 ■■■■ changed files
src/main/java/org/springblade/modules/district/mapper/DistrictMapper.xml 2 ●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/district/service/impl/DistrictServiceImpl.java 19 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/mapper/DeptMapper.java 2 ●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml 28 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java 3 ●●●● patch | view | raw | blame | history
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;
@@ -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
@@ -67,19 +67,31 @@
    </select>
    <select id="tree" resultMap="treeNodeResultMap">
        <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">
        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>
        <if test="param2!=null and param2!=''">
            and parent_id = #{param2}
        </if>
        <if test="param3!=null and param3!=''">
            and id = #{param3}
        </if>
        ORDER BY sort
        </if>
    </select>
    <select id="lazyTree" resultMap="treeNodeResultMap" >
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