根据顶层的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));
}
相关推荐
晔子yy1 分钟前
说一下Java的垃圾回收机制
java·开发语言
tqs_123455 分钟前
@transactional事务失效场景
java·数据库·mybatis
cyforkk7 分钟前
01、Java基础入门:JDK、JRE、JVM关系详解及开发流程
java·开发语言·jvm
黎雁·泠崖8 分钟前
Java static避坑:静态与非静态访问规则全解析
java·开发语言
步步为营DotNet10 分钟前
深度解析.NET中IEnumerable<T>.SelectMany:数据扁平化与复杂映射的利器
java·开发语言·.net
aaa最北边14 分钟前
进程间通信-1.管道通信
android·java·服务器
heartbeat..16 分钟前
Redis 深度剖析:结构、原理与存储机制
java·数据库·redis·缓存
鸽鸽程序猿19 分钟前
【JavaEE】【SpringCloud】远程调用_OpenFeign
java·spring cloud·java-ee
tqs_1234522 分钟前
Spring 框架中的 IoC (控制反转) 和 AOP (面向切面编程) 及其应用
java·开发语言·log4j
難釋懷28 分钟前
StringRedisTemplate
java·spring boot·spring