package com.stylefeng.guns.modular.system.util;
|
|
|
import com.stylefeng.guns.core.node.ZTreeNode;
|
import com.stylefeng.guns.modular.system.dto.TreeBean;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.Objects;
|
import java.util.stream.Collectors;
|
|
/**
|
* 将List转为Tree
|
*
|
* @author sinder
|
* @date 2023/11/8 22:28
|
*/
|
public class ListToTreeUtil {
|
public static List<TreeBean> toTree(List<ZTreeNode> list, String root) {
|
if (list.isEmpty()) {
|
return new ArrayList<>();
|
}
|
// 构建数据
|
List<TreeBean> treeBeans = list.stream().map(item -> {
|
TreeBean treeBean = new TreeBean();
|
treeBean.setTreeId(String.valueOf(item.getId()));
|
treeBean.setTreePid(String.valueOf(item.getpId()));
|
treeBean.setChecked(item.getChecked());
|
treeBean.setOrgName(item.getName());
|
return treeBean;
|
}).collect(Collectors.toList());
|
|
// 构建Map数据
|
Map<String, List<TreeBean>> treeMap = treeBeans.stream().collect(Collectors.groupingBy(item -> {
|
if (item.getTreePid().isEmpty()) {
|
item.setTreePid(String.valueOf(0));
|
}
|
return item.getTreePid();
|
}));
|
|
// 将数据进行分组
|
return treeBeans.stream().peek(data -> {
|
List<TreeBean> children = treeMap.get(data.getTreeId());
|
if (children != null && !children.isEmpty()) {
|
data.setChildren(children);
|
}
|
}).filter(data -> data.getTreePid().equals("0")).collect(Collectors.toList());
|
}
|
}
|