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

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;
    }
相关推荐
面汤放盐7 分钟前
互联网“黑话”生存实用指南(100)
java·后端
@小匠42 分钟前
iText与OpenPDF使用差异及中文处理完全指南
java·pdf
小鹭同学_44 分钟前
JavaWeb05
java
sali-tec1 小时前
C# 基于halcon的视觉工作流-章32-线线测量
开发语言·人工智能·算法·计算机视觉·c#
Gu Gu Study1 小时前
Spring运行程序RabbitMQ并没有自动创建队列的问题解决
java·spring cloud·rabbitmq
vortex51 小时前
Tomcat 日志文件名的命名规范
java·tomcat
little_xianzhong1 小时前
Java 日期字符串万能解析工具类(支持多种日期格式智能转换)
java·开发语言
刘 大 望1 小时前
传输层:UDP/TCP协议
java·网络·网络协议·tcp/ip·udp·信息与通信
小胖墩有点瘦1 小时前
【基于协同过滤的校园二手交易平台】
java·vue·毕业设计·springboot·计算机毕业设计·协同过滤·校园二手交易平台
我真的是大笨蛋1 小时前
G1 垃圾收集器深入解析
java·jvm·笔记·缓存