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

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;
    }
相关推荐
名字还没想好☜19 小时前
Python f-string 进阶:数字格式化、对齐填充、调试 = 号与嵌套表达式
开发语言·数据库·python·字符串格式化·f-string
·薯条大王19 小时前
经济实惠玩云服务器|一台云服务器多人共用,子账号配置教程
java·linux·运维·服务器·汇编·c++·python
一壶浊酒..1 天前
Scrape Webpack练习
开发语言·javascript·webpack
ZJH__GO1 天前
网络编程v4pro--实现聊天室文件传输功能
java·服务器·网络·计算机网络
程序员黑豆1 天前
Windows 系统 Java 环境变量配置全攻略:解决“不是内部或外部命令”
java·前端·ai编程
命运之光1 天前
【C语言完整代码】就诊信息管理系统
java·c语言·开发语言
凤山老林1 天前
Spring Boot @Async 线上实战:从默认配置到生产级线程池治理
java·spring boot·后端
命运之光1 天前
【C语言完整代码】图书管理系统:图书馆场景下的增删改查实战
c语言·开发语言
猿长大人1 天前
C# | Serilog 新手入门
开发语言·c#·.net·log
marvelyu1 天前
每天10分钟学会OceanBase系列(Day 20):跨机房容灾实战——构建多数据中心高可用架构
java·大数据·数据库