package com.ruoyi.common.core.domain.entity;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.util.Date;
import java.util.List;
/**
* 用户对象 sys_user
*
* @author Lion Li
*/
@Data
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("sys_user")
@ApiModel("用户信æ¯ä¸šåŠ¡å¯¹è±¡")
public class SysUser extends BaseEntity {
/**
* 用户ID
*/
@ApiModelProperty(value = "用户ID")
@TableId(value = "user_id")
private Long userId;
/**
* 部门ID
*/
@ApiModelProperty(value = "部门ID")
private Long deptId;
/**
* 用户账å·
*/
@ApiModelProperty(value = "用户账å·")
@NotBlank(message = "用户账å·ä¸èƒ½ä¸ºç©º")
@Size(min = 0, max = 30, message = "用户账å·é•¿åº¦ä¸èƒ½è¶…过30个å—符")
private String userName;
/**
* 用户昵称
*/
@ApiModelProperty(value = "用户昵称")
@Size(min = 0, max = 30, message = "用户昵称长度ä¸èƒ½è¶…过30个å—符")
private String nickName;
/**
* 用户邮箱
*/
@ApiModelProperty(value = "用户邮箱")
@Email(message = "é‚®ç®±æ ¼å¼ä¸æ£ç¡®")
@Size(min = 0, max = 50, message = "邮箱长度ä¸èƒ½è¶…过50个å—符")
private String email;
/**
* 手机å·ç
*/
@ApiModelProperty(value = "手机å·ç ")
private String phonenumber;
/**
* 用户性别
*/
@ApiModelProperty(value = "用户性别")
private String sex;
/**
* 用户头åƒ
*/
@ApiModelProperty(value = "用户头åƒ")
private String avatar;
/**
* 密ç
*/
@ApiModelProperty(value = "密ç ")
@TableField(
insertStrategy = FieldStrategy.NOT_EMPTY,
updateStrategy = FieldStrategy.NOT_EMPTY,
whereStrategy = FieldStrategy.NOT_EMPTY
)
private String password;
@JsonIgnore
@JsonProperty
public String getPassword() {
return password;
}
/**
* å¸å·çжæ€ï¼ˆ0æ£å¸¸ 1åœç”¨ï¼‰
*/
@ApiModelProperty(value = "å¸å·çжæ€ï¼ˆ0æ£å¸¸ 1åœç”¨ï¼‰")
private String status;
/**
* åˆ é™¤æ ‡å¿—ï¼ˆ0代表å˜åœ¨ 2ä»£è¡¨åˆ é™¤ï¼‰
*/
@ApiModelProperty(value = "åˆ é™¤æ ‡å¿—ï¼ˆ0代表å˜åœ¨ 2ä»£è¡¨åˆ é™¤ï¼‰")
@TableLogic
private String delFlag;
/**
* 最åŽç™»å½•IP
*/
@ApiModelProperty(value = "最åŽç™»å½•IP")
private String loginIp;
/**
* 最åŽç™»å½•æ—¶é—´
*/
@ApiModelProperty(value = "最åŽç™»å½•æ—¶é—´")
private Date loginDate;
/**
* 备注
*/
@ApiModelProperty(value = "备注")
private String remark;
/**
* è¯ä»¶å·ç
*/
@ApiModelProperty(value = "è¯ä»¶å·ç ")
private String certificateNo;
/**
* 照片
*/
@ApiModelProperty(value = "照片")
private String photo;
/**
* å…¥èŒæ—¶é—´
*/
@ApiModelProperty(value = "å…¥èŒæ—¶é—´")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date entryTime;
/**
* 部门对象
*/
@ApiModelProperty(value = "部门对象")
@TableField(exist = false)
private SysDept dept;
/**
* 角色对象
*/
@ApiModelProperty(value = "角色对象")
@TableField(exist = false)
private List<SysRole> roles;
/**
* 角色组
*/
@ApiModelProperty(value = "角色组")
@TableField(exist = false)
private Long[] roleIds;
/**
* å²—ä½ç»„
*/
@ApiModelProperty(value = "å²—ä½ç»„")
@TableField(exist = false)
private Long[] postIds;
/**
* 角色ID
*/
@ApiModelProperty(value = "角色ID")
@TableField(exist = false)
private Long roleId;
public SysUser(Long userId) {
this.userId = userId;
}
@ApiModelProperty(value = "是å¦ç®¡ç†å‘˜")
public boolean isAdmin() {
return isAdmin(this.userId);
}
public static boolean isAdmin(Long userId) {
return userId != null && 1L == userId;
}
}