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;
/**
*
* 权限菜单
*
*
* @author zhao
* @since 2022-05-16
*/
@ApiModel("权限菜单")
@Data
@TableName("sys_menu")
public class SysMenu extends BaseEntity {
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 children = new ArrayList<>();
public static void initTree(List 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);
}
}
}
}