package com.xzx.gc.role.util; import com.xzx.gc.entity.CoreFunction; import com.xzx.gc.role.rbac.tree.FunctionItem; import java.util.ArrayList; import java.util.List; /** * 创建一个功能树,用于前端选择 * @author xiandafu * */ public class FunctionBuildUtil { private FunctionBuildUtil(){ } public static FunctionItem buildOrgTree(List list){ CoreFunction root = new CoreFunction(); root.setId(0L); FunctionItem rootOrg = new FunctionItem(root); buildTreeNode(rootOrg,list); return rootOrg; } private static void buildTreeNode(FunctionItem parent,List list){ long id = parent.getId(); List dels = new ArrayList<>(); for(CoreFunction SysFunction:list){ if(SysFunction.getParentId()!=null && SysFunction.getParentId()==id){ FunctionItem item = new FunctionItem(SysFunction); item.setParent(parent); dels.add(SysFunction); } } list.removeAll(dels); if(list.isEmpty()){ return ; } for(FunctionItem child:parent.getChildren()){ buildTreeNode(child,list); } } }