private List组装格式findTree(Long pid, List jgList) { List treeNodes = new ArrayList<>(); for (JgCategory category : jgList) { //如果夫级null 就从夫级开始遍历 if (pid == null && 0L == category.getParentId()) { this.treeNod(jgCategoryList, treeNodes, category); continue; } if (pid != null) { if (pid.equals(category.getParentId())) { this.treeNod(jgCategoryList, treeNodes, category); } } } return treeNodes; } private void treeNod(List jgList, List treeNodes, JgCategory category) { JgCategoryTreeResponse node = new JgCategoryTreeResponse(); node.setSearchCode(category.getSearchCode()); node.setCode(category.getCode()); node.setName(category.getName()); treeNodes.add(node); node.setChildList(findTree(category.getId(), jgCategoryList)); }
@Data
public class JgTreeResponse {
@ApiModelProperty("节点ID")
private Long id;
@ApiModelProperty("名称")
private String name;
@ApiModelProperty("编码")
private String code;
@ApiModelProperty("搜索码")
private String searchCode;
@ApiModelProperty("父节点ID")
private Long parentId;
@ApiModelProperty("子级集合")
private List childList;
}
返给前端就可以
public Result> selectTree(long userId) { //查询全部并返回一个list super.select(new Jg()); //调用递归方法 List
tree = this.findTree(null, jgCategoryList); return Result.success(tree); }
总结
简单干活,如果不懂你就多看看,debug看看树的运行调用逻辑



