mirror of
https://gitee.com/blossom-editor/blossom.git
synced 2025-12-06 16:58:26 +08:00
pref: 树状文件夹构造优化
This commit is contained in:
parent
3873322b83
commit
2ec331df72
@ -1,7 +1,6 @@
|
|||||||
package com.blossom.backend.server.utils;
|
package com.blossom.backend.server.utils;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.blossom.backend.server.article.draft.pojo.ArticleEntity;
|
import com.blossom.backend.server.article.draft.pojo.ArticleEntity;
|
||||||
import com.blossom.backend.server.doc.DocTypeEnum;
|
import com.blossom.backend.server.doc.DocTypeEnum;
|
||||||
@ -10,11 +9,7 @@ import com.blossom.backend.server.folder.pojo.FolderEntity;
|
|||||||
import com.blossom.common.base.enums.YesNo;
|
import com.blossom.common.base.enums.YesNo;
|
||||||
import com.blossom.common.base.util.SortUtil;
|
import com.blossom.common.base.util.SortUtil;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Comparator;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -37,14 +32,17 @@ public class DocUtil {
|
|||||||
* @return 树状菜单对象
|
* @return 树状菜单对象
|
||||||
*/
|
*/
|
||||||
public static List<DocTreeRes> treeWrap(List<DocTreeRes> list, boolean priorityType) {
|
public static List<DocTreeRes> treeWrap(List<DocTreeRes> list, boolean priorityType) {
|
||||||
// 将原始列表进行分组, 并排序每个分组的列表
|
// 将原始列表进行分组, 并排序每个分组的列表
|
||||||
Map<Long, List<DocTreeRes>> pidMapping = list.stream().collect(
|
Map<Long, List<DocTreeRes>> pidMapping = list.stream().collect(
|
||||||
Collectors.groupingBy(DocTreeRes::getP, HashMap::new,
|
Collectors.groupingBy(DocTreeRes::getP, HashMap::new,
|
||||||
Collectors.collectingAndThen(Collectors.toList(),
|
Collectors.collectingAndThen(Collectors.toList(),
|
||||||
item -> item.stream().sorted(Comparator.comparingInt(DocTreeRes::getS)).collect(Collectors.toList()))));
|
item -> item.stream().sorted(Comparator.comparingInt(DocTreeRes::getS)).collect(Collectors.toList()))));
|
||||||
// 免递归方式赋值子菜单
|
// 免递归方式赋值子菜单
|
||||||
list.parallelStream().forEach(item -> {
|
list.parallelStream().forEach(item -> {
|
||||||
if (!CollectionUtil.isEmpty(pidMapping.get(item.getI()))){
|
if(item.getTy().equals(DocTypeEnum.A.getType())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!CollUtil.isEmpty(pidMapping.get(item.getI()))){
|
||||||
item.setChildren(pidMapping.get(item.getI()));
|
item.setChildren(pidMapping.get(item.getI()));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user