@GetMapping("/admin/dept/tree/list") @ResponseBody @NoWrap public Object treeList(Integer id) { QueryWrapper<Dept> qw = new QueryWrapper<Dept>(); qw.eq("disable", 1); qw.eq("id", id); List<Dept> list = deptList(id); Dept dept = service.getById(id); list.add(dept); return TreeUtils.listToTree(list, "id", "parentId", "name", "name", null, dept.getParentId()+""); } private List<Dept> deptList(Integer id){ QueryWrapper<Dept> qw = new QueryWrapper<Dept>(); qw.eq("disable", 1); qw.eq("parentId", id); List<Dept> list = service.list(qw); if(list.size()>0){ for (ListIterator<Dept> deptListIterator = list.listIterator();deptListIterator.hasNext();){ Dept next = deptListIterator.next(); List<Dept> deptList = deptList(next.getId()); for (Dept dept : deptList) { deptListIterator.add(dept); } } } return list; }
1.用deptListIterator,他会跟着更新原来的list,而不是直接给替换掉。