| 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<CoreFunction> 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<CoreFunction> list){ | 
|          | 
|         long id = parent.getId(); | 
|         List<CoreFunction> 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); | 
|         } | 
|   | 
|     } | 
| } |