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

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;
    }
相关推荐
threelab1 小时前
Three.js 物理模拟着色器 | 三维可视化 / AI 提示词
开发语言·前端·javascript·人工智能·3d·着色器
武器大师721 小时前
lv_binding_js 代码解读
开发语言·javascript·ecmascript
不知名的老吴1 小时前
线程的生命周期之线程“插队“
java·开发语言·python
ANnianStriver1 小时前
PetLumina-02-后端开发与前后端联调
java·ai·sa-token
杨了个杨89822 小时前
Keepalived + Nginx + HAProxy 高可用架构部署实战案例
java·nginx·架构
kaikaile19952 小时前
数字全息图处理系统(C# 实现)
开发语言·c#
秋93 小时前
Go语言(Golang)开发工程师全景解析:岗位职责·语言优势与使用场景·各城市薪资·发展前景·高考志愿填报(2026版)
开发语言·golang·高考
huangdong_4 小时前
1688商品图片采集技术解析:登录态处理与SKU图自动分类
开发语言
马士兵教育4 小时前
Java还有前景吗?Java+AI大模型学习路线及项目?
java·人工智能·python·学习·机器学习
chase_my_dream4 小时前
C++ + SLAM 高频面试问题整理
开发语言·c++·面试