lyh
13 小时以前 78aeb8a8c97a884a640d46755e4be706bde48b7d
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
package com.lxzn.ucenter.service.support;
 
import com.lxzn.framework.domain.ucenter.Menu;
import com.lxzn.framework.domain.ucenter.MenuButton;
import com.lxzn.framework.domain.ucenter.MenuButtonPermission;
import com.lxzn.framework.model.response.CommonJsonTree;
 
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
public class MenuButtonTreeWrapper {
    public static List<CommonJsonTree> loadTree(List<Menu> menuList, List<MenuButton> menuButtonList, Map<String, MenuButtonPermission> map) {
        List<CommonJsonTree> tree = new ArrayList<CommonJsonTree>();// TreeNode集合,存放所有树对象。
        List<CommonJsonTree> result = new ArrayList<CommonJsonTree>();// TreeNode集合,存放所有树对象。
        Map<String, CommonJsonTree> menuTreeMap = new HashMap<>();
        menuList.forEach(item -> {
            CommonJsonTree node = new CommonJsonTree();
            node.setId(item.getMenuId());
            node.setLabel(item.getMenuName());
            node.setDisabled(false);
            menuTreeMap.put(item.getMenuId(), node);
            tree.add(node);
        });
        menuButtonList.forEach(item -> {
            CommonJsonTree node = new CommonJsonTree();
            node.setId(item.getMenuButtonId());
            node.setLabel(item.getButtonAlias());
            node.setRField(item.getButtonId());
            node.setParentId(item.getMenuId());
            if(map != null && !map.isEmpty() &&map.containsKey(item.getMenuId() + "_" + item.getButtonId())) {
                node.setChecked(true);
            }
            if(menuTreeMap.containsKey(item.getMenuId())) {
                CommonJsonTree parent = menuTreeMap.get(item.getMenuId());
                parent.addChildren(node);
            }
        });
        for(CommonJsonTree commonJsonTree : tree) {
            if(commonJsonTree.hasChildren()) {
                result.add(commonJsonTree);
            }
        }
        return result;
    }
}