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

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;
    }
相关推荐
3GPP仿真实验室7 分钟前
【Matlab源码】6G候选波形:OFDM-IM 增强仿真平台 DM、CI
开发语言·matlab·ci/cd
devmoon11 分钟前
在 Polkadot 上部署独立区块链Paseo 测试网实战部署指南
开发语言·安全·区块链·polkadot·erc-20·测试网·独立链
lili-felicity11 分钟前
CANN流水线并行推理与资源调度优化
开发语言·人工智能
爬山算法12 分钟前
Hibernate(87)如何在安全测试中使用Hibernate?
java·后端·hibernate
沐知全栈开发12 分钟前
CSS3 边框:全面解析与实战技巧
开发语言
island131422 分钟前
CANN GE(图引擎)深度解析:计算图优化管线、内存静态规划与异构 Stream 调度机制
c语言·开发语言·神经网络
云姜.24 分钟前
线程和进程的关系
java·linux·jvm
是码龙不是码农26 分钟前
支付防重复下单|5 种幂等性设计方案(从初级到架构级)
java·架构·幂等性
曹牧26 分钟前
Spring Boot:如何在Java Controller中处理POST请求?
java·开发语言
heartbeat..26 分钟前
JVM 性能调优流程实战:从开发规范到生产应急排查
java·运维·jvm·性能优化·设计规范