xiaoyong931011
2021-11-11 6e6a5bbc6ed0bc05da9ed8c0ab9b55bde79c5b03
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
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);
        }
 
    }
}