package org.ruoyi.common.core.utils; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.lang.tree.Tree; import cn.hutool.core.lang.tree.TreeNodeConfig; import cn.hutool.core.lang.tree.TreeUtil; import cn.hutool.core.lang.tree.parser.NodeParser; import lombok.AccessLevel; import lombok.NoArgsConstructor; import org.ruoyi.common.core.utils.reflect.ReflectUtils; import java.util.List; /** * 扩展 hutool TreeUtil 封装系统树构建 * * @author Lion Li */ @NoArgsConstructor(access = AccessLevel.PRIVATE) public class TreeBuildUtils extends TreeUtil { /** * 根据前端定制差异化字段 */ public static final TreeNodeConfig DEFAULT_CONFIG = TreeNodeConfig.DEFAULT_CONFIG.setNameKey("label"); public static List> build(List list, NodeParser nodeParser) { if (CollUtil.isEmpty(list)) { return null; } K k = ReflectUtils.invokeGetter(list.get(0), "parentId"); return TreeUtil.build(list, k, DEFAULT_CONFIG, nodeParser); } }