| package com.vincent.rsf.server.system.entity; | 
|   | 
| import com.baomidou.mybatisplus.annotation.*; | 
| import com.vincent.rsf.framework.common.Cools; | 
| import com.vincent.rsf.framework.common.SpringUtils; | 
| import com.vincent.rsf.server.system.service.TenantService; | 
| import com.vincent.rsf.server.system.service.UserService; | 
| import io.swagger.annotations.ApiModelProperty; | 
| import lombok.Data; | 
| import org.springframework.format.annotation.DateTimeFormat; | 
| import org.springframework.security.core.GrantedAuthority; | 
|   | 
| import java.io.Serializable; | 
| import java.text.SimpleDateFormat; | 
| import java.util.Date; | 
| import java.util.List; | 
|   | 
| @Data | 
| @TableName("sys_menu") | 
| public class Menu implements Serializable, GrantedAuthority { | 
|   | 
|     private static final long serialVersionUID = 1L; | 
|   | 
|     public static final int TYPE_MENU = 0;  // 菜单类型 | 
|     public static final int TYPE_BTN = 1;  // 按钮类型 | 
|   | 
|     /** | 
|      * ID | 
|      */ | 
|     @ApiModelProperty(value= "ID") | 
|     @TableId(value = "id", type = IdType.AUTO) | 
|     private Long id; | 
|   | 
|     /** | 
|      * 名称 | 
|      */ | 
|     @ApiModelProperty(value= "名称") | 
|     private String name; | 
|   | 
|     /** | 
|      * 上级菜单 | 
|      */ | 
|     @ApiModelProperty(value= "上级菜单") | 
|     private Long parentId; | 
|   | 
|     /** | 
|      * 上级菜单名 | 
|      */ | 
|     @ApiModelProperty(value= "上级菜单名") | 
|     private String parentName; | 
|   | 
|     /** | 
|      * 关联路径 | 
|      */ | 
|     @ApiModelProperty(value= "关联路径") | 
|     private String path; | 
|   | 
|     /** | 
|      * 关联路径名 | 
|      */ | 
|     @ApiModelProperty(value= "关联路径名") | 
|     private String pathName; | 
|   | 
|     /** | 
|      * 路由地址 | 
|      */ | 
|     @ApiModelProperty(value= "路由地址") | 
|     private String route; | 
|   | 
|     /** | 
|      * 页面组件 | 
|      */ | 
|     @ApiModelProperty(value= "页面组件") | 
|     private String component; | 
|   | 
|     /** | 
|      * 简述 | 
|      */ | 
|     @ApiModelProperty(value= "简述") | 
|     private String brief; | 
|   | 
|     /** | 
|      * 标识 | 
|      */ | 
|     @ApiModelProperty(value= "标识") | 
|     private String code; | 
|   | 
|     /** | 
|      * 类型 0: 菜单  1: 按钮   | 
|      */ | 
|     @ApiModelProperty(value= "类型 0: 菜单  1: 按钮  ") | 
|     private Integer type; | 
|   | 
|     /** | 
|      * 权限标识 | 
|      */ | 
|     @ApiModelProperty(value= "权限标识") | 
|     private String authority; | 
|   | 
|     /** | 
|      * 菜单图标 | 
|      */ | 
|     @ApiModelProperty(value= "菜单图标") | 
|     private String icon; | 
|   | 
|     /** | 
|      * 排序 | 
|      */ | 
|     @ApiModelProperty(value= "排序") | 
|     private Integer sort; | 
|   | 
|     /** | 
|      * 元信息 | 
|      */ | 
|     @ApiModelProperty(value= "元信息") | 
|     private String meta; | 
|   | 
|     /** | 
|      * 所属机构 | 
|      */ | 
|     @ApiModelProperty(value= "所属机构") | 
|     private Long tenantId; | 
|   | 
|     /** | 
|      * 状态 1: 正常  0: 禁用   | 
|      */ | 
|     @ApiModelProperty(value= "状态 1: 正常  0: 禁用  ") | 
|     private Integer status; | 
|   | 
|     /** | 
|      * 是否删除 1: 是  0: 否   | 
|      */ | 
|     @ApiModelProperty(value= "是否删除 1: 是  0: 否  ") | 
|     @TableLogic | 
|     private Integer deleted; | 
|   | 
|     /** | 
|      * 添加时间 | 
|      */ | 
|     @ApiModelProperty(value= "添加时间") | 
|     @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") | 
|     private Date createTime; | 
|   | 
|     /** | 
|      * 添加人员 | 
|      */ | 
|     @ApiModelProperty(value= "添加人员") | 
|     private Long createBy; | 
|   | 
|     /** | 
|      * 修改时间 | 
|      */ | 
|     @ApiModelProperty(value= "修改时间") | 
|     @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") | 
|     private Date updateTime; | 
|   | 
|     /** | 
|      * 修改人员 | 
|      */ | 
|     @ApiModelProperty(value= "修改人员") | 
|     private Long updateBy; | 
|   | 
|     /** | 
|      * 备注 | 
|      */ | 
|     @ApiModelProperty(value= "备注") | 
|     private String memo; | 
|   | 
|     @TableField(exist = false) | 
|     private List<Menu> children; | 
|   | 
|     public Menu() {} | 
|   | 
|   | 
|     public String getType$(){ | 
|         if (null == this.type){ return null; } | 
|         switch (this.type){ | 
|             case 0: | 
|                 return "菜单"; | 
|             case 1: | 
|                 return "按钮"; | 
|             default: | 
|                 return String.valueOf(this.type); | 
|         } | 
|     } | 
|   | 
|     public String getTenantId$(){ | 
|         TenantService service = SpringUtils.getBean(TenantService.class); | 
|         Tenant tenant = service.getById(this.tenantId); | 
|         if (!Cools.isEmpty(tenant)){ | 
|             return String.valueOf(tenant.getName()); | 
|         } | 
|         return null; | 
|     } | 
|   | 
|     public String getCreateTime$(){ | 
|         if (Cools.isEmpty(this.createTime)){ | 
|             return ""; | 
|         } | 
|         return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime); | 
|     } | 
|   | 
|     public String getCreateBy$(){ | 
|         UserService service = SpringUtils.getBean(UserService.class); | 
|         User user = service.getById(this.createBy); | 
|         if (!Cools.isEmpty(user)){ | 
|             return String.valueOf(user.getNickname()); | 
|         } | 
|         return null; | 
|     } | 
|   | 
|     public String getUpdateTime$(){ | 
|         if (Cools.isEmpty(this.updateTime)){ | 
|             return ""; | 
|         } | 
|         return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime); | 
|     } | 
|   | 
|     public String getUpdateBy$(){ | 
|         UserService service = SpringUtils.getBean(UserService.class); | 
|         User user = service.getById(this.updateBy); | 
|         if (!Cools.isEmpty(user)){ | 
|             return String.valueOf(user.getNickname()); | 
|         } | 
|         return null; | 
|     } | 
|   | 
|     public Boolean getStatusBool(){ | 
|         if (null == this.status){ return null; } | 
|         switch (this.status){ | 
|             case 1: | 
|                 return true; | 
|             case 0: | 
|                 return false; | 
|             default: | 
|                 return null; | 
|         } | 
|     } | 
|   | 
| } |