根据顶层的id递归查询出全部子节点

效果图

根据输入的id为2查询出所有的红色框起来的节点

mapper接口

java 复制代码
TSystemOrg getOrgByorgId(String orgId);
List<TSystemOrg> getOrgListByParentId(String parentId);

mapper.xml

xml 复制代码
<!--根据id查询org-->
<select id="getOrgByorgId" resultType="com.iflytek.core.entity.TSystemOrg">
   SELECT
      *
   FROM
      t_system_org
   WHERE
      id=#{orgId}
   and
      is_delete = '0'
</select>

<!--根据parentId查询orgList-->
<select id="getOrgListByParentId" resultType="com.iflytek.core.entity.TSystemOrg">
   SELECT
      *
   FROM
      t_system_org
   WHERE
      parent_id=#{parentId}
   and
      is_delete = '0'
</select>

service接口

java 复制代码
List<TSystemOrg> getOrgListByOrgId(String orgId);

serviceImpl实现

java 复制代码
@Override
public List<TSystemOrg> getOrgListByOrgId(String orgId) {
    TSystemOrg org = mapper.getOrgByorgId(orgId);
    List<TSystemOrg> resultList = new ArrayList<>();
    resultList.add(org);
    diguiGetOrgListByParentId(org, resultList);
    return resultList;
}

private void diguiGetOrgListByParentId(TSystemOrg org, List<TSystemOrg> resultList) {
    List<TSystemOrg> orgList = mapper.getOrgListByParentId(org.getId());
    if(orgList != null){
        for(TSystemOrg o : orgList){
            resultList.add(o);
            //递归调用自己
            diguiGetOrgListByParentId(o,resultList);
        }
    }
}

controller

java 复制代码
@ApiOperation(value = "根据orgId获取所有子节点",tags = "机构")
@PostMapping("getOrgListByOrgId")
public ResultDto getOrgListByOrgId(String orgId){
    return ResultUtil.success("success", service.getOrgListByOrgId(orgId));
}
相关推荐
I'm Jie7 分钟前
(五)Gradle 依赖传递与冲突处理
java·spring boot·spring·kotlin·gradle·maven
我命由我123458 分钟前
Spring Cloud - Spring Cloud 声明式接口调用(Fiegn 声明式接口调用概述、Fiegn 使用)
java·后端·spring·spring cloud·微服务·架构·java-ee
_extraordinary_9 分钟前
Java Spring事务,事务的传播机制
java·开发语言·spring
摸鱼的老谭9 分钟前
Java学习之旅第三季-17:Lambda表达式
java·lambda表达式·1024程序员节
摸鱼的老谭21 分钟前
Java学习之旅第三季-18:方法引用
java·方法引用
lang201509281 小时前
Spring依赖注入与配置全解析
java·spring
百锦再1 小时前
破茧成蝶:全方位解析Java学习难点与征服之路
java·python·学习·struts·kafka·maven·intellij-idea
羊锦磊1 小时前
[ Redis ] SpringBoot集成使用Redis(补充)
java·数据库·spring boot·redis·spring·缓存·json
兮动人2 小时前
Maven 多配置文件的使用
java·maven·maven 多配置文件的使用
毕设源码-钟学长2 小时前
【开题答辩全过程】以 餐健一体化管理系统为例,包含答辩的问题和答案
java·eclipse