86183
2022-09-09 0d999e33085c0a25c5525242748f6aa62a401159
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
package com.dsh.upms.entity;
 
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
 
import cn.mb.cloud.common.data.entity.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.dsh.utils.login.Tree;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
 
/**
 * <p>
 * 权限菜单
 * </p>
 *
 * @author zhao
 * @since 2022-05-16
 */
@ApiModel("权限菜单")
@Data
@TableName("sys_menu")
public class SysMenu extends BaseEntity<SysMenu> {
 
    private static final long serialVersionUID = 1L;
 
    /**
     * 菜单名称
     */
    @ApiModelProperty("菜单名称")
    private String name;
    /**
     * 菜单权限标识
     */
    @ApiModelProperty("菜单权限标识")
    private String permission;
    /**
     * 前端URL
     */
    @ApiModelProperty("前端URL")
    private String path;
    /**
     * 父菜单ID
     */
    @ApiModelProperty("父菜单ID")
    @TableField("parent_id")
    private Long parentId;
    /**
     * 图标
     */
    @ApiModelProperty("图标")
    private String icon;
    /**
     * VUE页面
     */
    @ApiModelProperty("VUE页面")
    private String component;
    /**
     * 排序值
     */
    @ApiModelProperty("排序值")
    private Integer sort;
    /**
     * 0-开启,1- 关闭
     */
    @ApiModelProperty("0-开启,1- 关闭")
    @TableField("keep_alive")
    private String keepAlive;
    /**
     * 菜单类型 (0菜单 1按钮)
     */
    @ApiModelProperty("菜单类型 (0菜单 1按钮)")
    private String type;
    /**
     * 是否启用
     */
    @ApiModelProperty("是否启用")
    private Boolean enable;
    /**
     * 租户ID
     */
    @ApiModelProperty("租户ID")
    @TableField("tenant_id")
    private Integer tenantId;
    /**
     * 创建人
     */
    @ApiModelProperty("创建人")
    @TableField("create_user")
    private String createUser;
    /**
     * 更新人
     */
    @ApiModelProperty("更新人")
    @TableField("update_user")
    private String updateUser;
    /**
     * 重定向地址
     */
    @ApiModelProperty("重定向地址")
    private String redirect;
    /**
     * 是否是叶子节点
     */
    @ApiModelProperty("是否是叶子节点")
    @TableField("if_leaf")
    private Integer ifLeaf;
 
    /**
     * 子级
     */
    @ApiModelProperty("子级")
    @TableField(exist = false)
    private List<SysMenu> children = new ArrayList<>();
 
    public static void initTree(List<SysMenu> list, Tree rootTree) {
        for (SysMenu item : list) {
            String parentId = item.getParentId() == null ? "-1L" : item.getParentId().toString();
            if (parentId.equals(rootTree.getKey())) {
                Tree tree = new Tree(item.getId().toString(), item.getName(), Tree.TREE_NODE_STATE_DEFAULT);
                tree.setChecked(false);
                tree.setPermission(item.getPermission());
                tree.setPath(item.getPath());
                tree.setType(item.getType());
                tree.setIcon(item.getIcon());
                tree.setLable(item.getName());
                tree.setName(item.getName()) ;
                tree.setParentId(item.getParentId());
                tree.setEnable(item.getEnable());
                rootTree.getChildren().add(tree);
                initTree(list, tree);
            }
        }
    }
}