有一个树结构,存在一个唯一的code和一个父节点的pcode,要求前端传入任意层的code匹配这个code对应的所有子节点对应的数据。
因为无法判定传入的code到底在那层,so 直接递归调用查询判断,如果有子节点就继续差,如果没有子节点,说明当前节点就是最后节点,直接写入收集集合中。
- public List
getCodeInfo(String code, List info) { - CdRegional cdRegional = new CdRegional();
- cdRegional.setParentCode(code);
- //通过封装传入的节点到对应的方法去查询对应的节点信息
- List
list1 = cdRegionalService.findList(cdRegional); - //没有子节点就说明自己是最后一个信息
- if (list1.isEmpty()) {
- //写入集合
- info.add(code);
- } else {
- //将查询到的所有节点遍历查询子节点
- list1.forEach(item -> {
- List
codeInfo = getCodeInfo(item.getRegionalCode(), info); - });
- }
- return info;
- }
注释:基本代码都是该框架对应的信息,注重注释就行了,
- public List
getInfoBy(WholelParam wholelParam) { - //将子节点信息都写入新集合codeInfo
- //新建一个集合用于接收最后的数据
- List
code = new ArrayList<>(); - //传入节点信息和用于收集的集合
- List
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
list = cdWholeleasemanagementDao.getInfoBy(wholelParam.getHuxing(), - wholelParam.getGengduox(),
- rentRange, codeInfo, wholelParam.getMin_rent(), wholelParam.getMax_rent(),
- wholelParam.getMetros(),
- page
- );
-
- return list;
- }