1、业务描述
有一个树结构,存在一个唯一的code和一个父节点的pcode,要求前端传入任意层的code匹配这个code对应的所有子节点对应的数据。
2、解决思路
因为无法判定传入的code到底在那层,so 直接递归调用查询判断,如果有子节点就继续差,如果没有子节点,说明当前节点就是最后节点,直接写入收集集合中。文章来源:https://www.toymoban.com/news/detail-700761.html
3、业务实现 代码如下
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;
}
注释:基本代码都是该框架对应的信息,注重注释就行了,文章来源地址https://www.toymoban.com/news/detail-700761.html
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;
}
到了这里,关于树形结构的节点作为查询参数业务的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!