| | |
| | | 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.annotation.Excel; |
| | | import com.ruoyi.common.annotation.Excel.ColumnType; |
| | | import com.ruoyi.common.annotation.Excel.Type; |
| | | import com.ruoyi.common.annotation.Excels; |
| | | import com.ruoyi.common.annotation.Sensitive; |
| | | import com.ruoyi.common.constant.UserConstants; |
| | | import com.ruoyi.common.core.domain.BaseEntity; |
| | | import com.ruoyi.common.enums.SensitiveStrategy; |
| | | import com.ruoyi.common.xss.Xss; |
| | | import io.swagger.v3.oas.annotations.media.Schema; |
| | | 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.io.Serializable; |
| | | import java.util.Date; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * 用户对象 sys_user |
| | | * |
| | | * @author ruoyi |
| | | * @author Lion Li |
| | | */ |
| | | |
| | | @Data |
| | | @NoArgsConstructor |
| | | @Accessors(chain = true) |
| | | @EqualsAndHashCode(callSuper = true) |
| | | @TableName("sys_user") |
| | | public class SysUser implements Serializable |
| | | { |
| | | private static final long serialVersionUID = 1L; |
| | | @Schema(name = "用户信息业务对象") |
| | | public class SysUser extends BaseEntity { |
| | | |
| | | /** 用户ID */ |
| | | @Excel(name = "用户序号", cellType = ColumnType.NUMERIC, prompt = "用户编号") |
| | | @TableId(value = "user_id",type = IdType.AUTO) |
| | | /** |
| | | * 用户ID |
| | | */ |
| | | @Schema(name = "用户ID") |
| | | @TableId(value = "user_id") |
| | | private Long userId; |
| | | |
| | | /** 部门ID */ |
| | | @Excel(name = "部门编号", type = Type.IMPORT) |
| | | /** |
| | | * 部门ID |
| | | */ |
| | | @Schema(name = "部门ID") |
| | | private Long deptId; |
| | | |
| | | /** 用户账号 */ |
| | | /** |
| | | * 用户账号 |
| | | */ |
| | | @Schema(name = "用户账号") |
| | | @Xss(message = "用户账号不能包含脚本字符") |
| | | @NotBlank(message = "用户账号不能为空") |
| | | @Size(min = 0, max = 30, message = "用户账号长度不能超过30个字符") |
| | | @Excel(name = "登录名称") |
| | | private String userName; |
| | | |
| | | /** 用户昵称 */ |
| | | /** |
| | | * 用户昵称 |
| | | */ |
| | | @Schema(name = "用户昵称") |
| | | @Xss(message = "用户昵称不能包含脚本字符") |
| | | @Size(min = 0, max = 30, message = "用户昵称长度不能超过30个字符") |
| | | @Excel(name = "用户名称") |
| | | private String nickName; |
| | | |
| | | /** 用户邮箱 */ |
| | | /** |
| | | * 用户类型(sys_user系统用户) |
| | | */ |
| | | @Schema(name = "用户类型") |
| | | private String userType; |
| | | |
| | | /** |
| | | * 用户邮箱 |
| | | */ |
| | | @Sensitive(strategy = SensitiveStrategy.EMAIL) |
| | | @Schema(name = "用户邮箱") |
| | | @Email(message = "邮箱格式不正确") |
| | | @Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符") |
| | | @Excel(name = "用户邮箱") |
| | | private String email; |
| | | |
| | | /** 手机号码 */ |
| | | @Size(min = 0, max = 11, message = "手机号码长度不能超过11个字符") |
| | | @Excel(name = "手机号码") |
| | | /** |
| | | * 手机号码 |
| | | */ |
| | | @Sensitive(strategy = SensitiveStrategy.PHONE) |
| | | @Schema(name = "手机号码") |
| | | private String phonenumber; |
| | | |
| | | /** 用户性别 */ |
| | | @Excel(name = "用户性别", readConverterExp = "0=男,1=女,2=未知") |
| | | /** |
| | | * 用户性别 |
| | | */ |
| | | @Schema(name = "用户性别") |
| | | private String sex; |
| | | |
| | | /** 用户头像 */ |
| | | /** |
| | | * 用户头像 |
| | | */ |
| | | @Schema(name = "用户头像") |
| | | private String avatar; |
| | | |
| | | /** 密码 */ |
| | | /** |
| | | * 密码 |
| | | */ |
| | | @Schema(name = "密码") |
| | | @TableField( |
| | | insertStrategy = FieldStrategy.NOT_EMPTY, |
| | | updateStrategy = FieldStrategy.NOT_EMPTY, |
| | | whereStrategy = FieldStrategy.NOT_EMPTY |
| | | ) |
| | | private String password; |
| | | |
| | | @JsonIgnore |
| | | @JsonProperty |
| | | public String getPassword() { |
| | | return password; |
| | | } |
| | | |
| | | /** 盐加密 */ |
| | | private String salt; |
| | | |
| | | /** 帐号状态(0正常 1停用) */ |
| | | @Excel(name = "帐号状态", readConverterExp = "0=正常,1=停用") |
| | | /** |
| | | * 帐号状态(0正常 1停用) |
| | | */ |
| | | @Schema(name = "帐号状态(0正常 1停用)") |
| | | private String status; |
| | | |
| | | /** 删除标志(0代表存在 2代表删除) */ |
| | | /** |
| | | * 删除标志(0代表存在 2代表删除) |
| | | */ |
| | | @Schema(name = "删除标志(0代表存在 2代表删除)") |
| | | @TableLogic |
| | | private String delFlag; |
| | | |
| | | /** 最后登录IP */ |
| | | @Excel(name = "最后登录IP", type = Type.EXPORT) |
| | | /** |
| | | * 最后登录IP |
| | | */ |
| | | @Schema(name = "最后登录IP") |
| | | private String loginIp; |
| | | |
| | | /** 最后登录时间 */ |
| | | @Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Type.EXPORT) |
| | | /** |
| | | * 最后登录时间 |
| | | */ |
| | | @Schema(name = "最后登录时间") |
| | | private Date loginDate; |
| | | |
| | | /** 创建者 */ |
| | | @TableField(fill = FieldFill.INSERT) |
| | | private String createBy; |
| | | |
| | | /** 创建时间 */ |
| | | @TableField(fill = FieldFill.INSERT) |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| | | private Date createTime; |
| | | |
| | | /** 更新者 */ |
| | | @TableField(fill = FieldFill.INSERT_UPDATE) |
| | | private String updateBy; |
| | | |
| | | /** 更新时间 */ |
| | | @TableField(fill = FieldFill.INSERT_UPDATE) |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| | | private Date updateTime; |
| | | |
| | | /** 备注 */ |
| | | /** |
| | | * 备注 |
| | | */ |
| | | @Schema(name = "备注") |
| | | private String remark; |
| | | |
| | | /** |
| | | * 请求参数 |
| | | * 部门对象 |
| | | */ |
| | | @TableField(exist = false) |
| | | private Map<String, Object> params = new HashMap<>(); |
| | | |
| | | /** 部门对象 */ |
| | | @Excels({ |
| | | @Excel(name = "部门名称", targetAttr = "deptName", type = Type.EXPORT), |
| | | @Excel(name = "部门负责人", targetAttr = "leader", type = Type.EXPORT) |
| | | }) |
| | | @Schema(name = "部门对象") |
| | | @TableField(exist = false) |
| | | private SysDept dept; |
| | | |
| | | /** 角色对象 */ |
| | | /** |
| | | * 角色对象 |
| | | */ |
| | | @Schema(name = "角色对象") |
| | | @TableField(exist = false) |
| | | private List<SysRole> roles; |
| | | |
| | | /** 角色组 */ |
| | | /** |
| | | * 角色组 |
| | | */ |
| | | @Schema(name = "角色组") |
| | | @TableField(exist = false) |
| | | private Long[] roleIds; |
| | | |
| | | /** 岗位组 */ |
| | | /** |
| | | * 岗位组 |
| | | */ |
| | | @Schema(name = "岗位组") |
| | | @TableField(exist = false) |
| | | private Long[] postIds; |
| | | |
| | | /** 角色ID */ |
| | | @TableField(exist = false) |
| | | private Long roleId; |
| | | /** |
| | | * 数据权限 当前角色ID |
| | | */ |
| | | @Schema(name = "角色ID") |
| | | @TableField(exist = false) |
| | | private Long roleId; |
| | | |
| | | public SysUser(Long userId) |
| | | { |
| | | public SysUser(Long userId) { |
| | | this.userId = userId; |
| | | } |
| | | |
| | | public boolean isAdmin() |
| | | { |
| | | return isAdmin(this.userId); |
| | | } |
| | | |
| | | public static boolean isAdmin(Long userId) |
| | | { |
| | | return userId != null && 1L == userId; |
| | | @Schema(name = "是否管理员") |
| | | public boolean isAdmin() { |
| | | return UserConstants.ADMIN_ID.equals(this.userId); |
| | | } |
| | | |
| | | } |