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.NotBlank; import javax.validation.constraints.NotNull; import java.io.Serializable; import java.util.List; import java.util.Objects; import java.util.Set; /** * @author Z * @date 2019-03-25 */ @Getter @Setter @TableName("sys_dept") public class Dept extends BaseEntity implements Serializable { @NotNull(groups = Update.class) @TableId(value="dept_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) @ApiModelProperty(value = "子机构") private List children; @ApiModelProperty(value = "排序") private Integer deptSort; @NotBlank @ApiModelProperty(value = "机构名称") private String name; @NotNull @ApiModelProperty(value = "是否启用") private Boolean enabled; @ApiModelProperty(value = "上级机构") private Long pid; @ApiModelProperty(value = "子节点数目", hidden = true) private Integer subCount = 0; @Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } Dept dept = (Dept) o; return Objects.equals(id, dept.id) && Objects.equals(name, dept.name); } @Override public int hashCode() { return Objects.hash(id, name); } @ApiModelProperty(value = "是否有子节点") public Boolean getHasChildren() { return subCount > 0; } @ApiModelProperty(value = "是否为叶子") public Boolean getLeaf() { return subCount <= 0; } @ApiModelProperty(value = "标签名称") public String getLabel() { return name; } }