package com.oying.modules.system.domain; import com.alibaba.fastjson2.annotation.JSONField; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; import com.oying.base.BaseEntity; import javax.validation.constraints.NotNull; import java.io.Serializable; import java.util.List; import java.util.Objects; import java.util.Set; /** * @author Z * @date 2018-12-17 */ @Getter @Setter @TableName("sys_menu") public class Menu extends BaseEntity implements Serializable { @NotNull(groups = {Update.class}) @TableId(value="menu_id", type = IdType.AUTO) @ApiModelProperty(value = "ID", hidden = true) private Long id; @TableField(exist = false) @JSONField(serialize = false) @ApiModelProperty(value = "菜单角色") private Set roles; @TableField(exist = false) private List children; @ApiModelProperty(value = "菜单标题") private String title; @TableField(value = "name") @ApiModelProperty(value = "菜单组件名称") private String componentName; @ApiModelProperty(value = "排序") private Integer menuSort = 999; @ApiModelProperty(value = "组件路径") private String component; @ApiModelProperty(value = "路由地址") private String path; @ApiModelProperty(value = "菜单类型,目录、菜单、按钮") private Integer type; @ApiModelProperty(value = "权限标识") private String permission; @ApiModelProperty(value = "菜单图标") private String icon; @ApiModelProperty(value = "缓存") private Boolean cache; @ApiModelProperty(value = "是否隐藏") private Boolean hidden; @ApiModelProperty(value = "上级菜单") private Long pid; @ApiModelProperty(value = "子节点数目", hidden = true) private Integer subCount = 0; @ApiModelProperty(value = "外链菜单") private Boolean iFrame; @Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } Menu menu = (Menu) o; return Objects.equals(id, menu.id); } @Override public int hashCode() { return Objects.hash(id); } @ApiModelProperty(value = "是否有子节点") public Boolean getHasChildren() { return subCount > 0; } @ApiModelProperty(value = "是否为叶子") public Boolean getLeaf() { return subCount <= 0; } @ApiModelProperty(value = "标签名称") public String getLabel() { return title; } }