树形结构的节点作为查询参数业务

1、业务描述

有一个树结构,存在一个唯一的code和一个父节点的pcode,要求前端传入任意层的code匹配这个code对应的所有子节点对应的数据。

2、解决思路

因为无法判定传入的code到底在那层,so 直接递归调用查询判断,如果有子节点就继续差,如果没有子节点,说明当前节点就是最后节点,直接写入收集集合中。

3、业务实现 代码如下

java 复制代码
   public List<String> getCodeInfo(String code, List<String> info) {
        CdRegional cdRegional = new CdRegional();
        cdRegional.setParentCode(code);
        //通过封装传入的节点到对应的方法去查询对应的节点信息
        List<CdRegional> list1 = cdRegionalService.findList(cdRegional);
        //没有子节点就说明自己是最后一个信息
        if (list1.isEmpty()) {
            //写入集合
            info.add(code);
        } else {
            //将查询到的所有节点遍历查询子节点
            list1.forEach(item -> {
                List<String> codeInfo = getCodeInfo(item.getRegionalCode(), info);
            });
        }
        return info;
    }

注释:基本代码都是该框架对应的信息,注重注释就行了,

java 复制代码
    public List<CdWholeleasemanagement> getInfoBy(WholelParam wholelParam) {
        //将子节点信息都写入新集合codeInfo
        //新建一个集合用于接收最后的数据
        List<String> code = new ArrayList<>();
        //传入节点信息和用于收集的集合
        List<String> codeInfo = getCodeInfo(wholelParam.getRegions().get(0), code);

        String rentRange = wholelParam.getMin_rent() + "-" + wholelParam.getMax_rent();
        if (wholelParam.getMax_rent() == 0.0) {
            wholelParam.setMax_rent(null);
        }

//        String array = wholelParam.getRegions().get(0);
        Integer page = (wholelParam.getPage() - 1) * 6;
        List<CdWholeleasemanagement> list = cdWholeleasemanagementDao.getInfoBy(wholelParam.getHuxing(),
                wholelParam.getGengduox(),
                rentRange, codeInfo, wholelParam.getMin_rent(), wholelParam.getMax_rent(),
                wholelParam.getMetros(),
                page
        );

        return list;
    }
相关推荐
Matlab程序猿小助手9 分钟前
【MATLAB源码-第303期】基于matlab的蒲公英优化算法(DO)机器人栅格路径规划,输出做短路径图和适应度曲线.
开发语言·算法·matlab·机器人·kmeans
不爱编程的小九九9 分钟前
小九源码-springboot097-java付费自习室管理系统
java·开发语言·spring boot
云知谷22 分钟前
【经典书籍】C++ Primer 第16章模板与泛型编程精华讲解
c语言·开发语言·c++·软件工程·团队开发
独自破碎E31 分钟前
LeetCode 381: O(1) 时间插入、删除和获取随机元素 - 允许重复
java·算法·leetcode
程语有云33 分钟前
生产事故-Caffeine缓存误用之临下班的救赎
java·缓存·caffeine·阻塞·log·生产事故
workflower1 小时前
基本作业-管理⾃⼰的源代码
开发语言·单元测试·软件工程·需求分析·个人开发
froginwe111 小时前
Pandas DataFrame:深入理解数据分析的利器
开发语言
Miraitowa_cheems1 小时前
LeetCode算法日记 - Day 81: 最大子数组和
java·数据结构·算法·leetcode·决策树·职场和发展·深度优先
Jm_洋洋1 小时前
【Linux系统编程】程序替换:execve(execl、execlp、execle、execv、execvp、execvpe)
linux·运维·c语言·开发语言·程序人生
CodeCraft Studio1 小时前
国产化Word处理控件Spire.Doc教程:用Java实现TXT文本与Word互转的完整教程
java·c#·word·spire.doc·word文档转换·txt转word·word转txt