/**
* 查询标签树
* @param type
* @return
*/
@Override
public List<TblLabelTree> listTree(Integer type) {
TblLabelDTO tblLabel=new TblLabelDTO ();
tblLabel.setType(type);
// 获取所有数据
List<TblLabel> tblLabels = selectTblLabel(tblLabel);
List<TblLabelTree> labelTree = CollUtil.newArrayList();
for (TblLabel label : tblLabels) {
TblLabelTree labelVo = new TblLabelTree();
BeanUtil.copyProperties(label,labelVo);
labelTree.add(labelVo);
}
// 排除一级 根据父节点id 分组 获取所有的子节点元素
Map<Long, List<TblLabelTree>> collect = labelTree.stream()
.filter(Objects::nonNull)
.filter(o -> o.getParentId()!=0)
.collect(Collectors.groupingBy(TblLabelTree::getParentId));
// 添加子节点元素
for (TblLabelTree data : labelTree) {
Long code = data.getId();
List<TblLabelTree> list = collect.get(code);
data.setChildren(list);
}
// 过滤 获取一级的所有元素
labelTree = labelTree.stream()
.filter(e -> e.getParentId()==0)
.collect(Collectors.toList());
// List<TblLabelTree> tblLabelTree = treeIfy(labelTree);
return labelTree;
}
Java封装树形结构
最新推荐文章于 2024-06-05 14:02:16 发布