xm
2024-06-14 722af26bc6fec32bb289b1df51a9016a4935610f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
package com.dl.common.core.domain.entity;
 
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.dl.common.annotation.Sensitive;
import com.dl.common.constant.UserConstants;
import com.dl.common.core.domain.BaseEntity;
import com.dl.common.enums.SensitiveStrategy;
import com.dl.common.xss.Xss;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
 
import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.util.Date;
import java.util.List;
import java.util.UUID;
 
/**
 * 用户对象 sys_user
 *
 * @author Lion Li
 */
 
@Data
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName("sys_user")
public class SysUser extends BaseEntity {
 
    /**
     * 用户ID
     */
//    @TableId(value = "user_id")
//    private Long userId;
 
    @TableId(value = "user_id", type = IdType.ASSIGN_UUID)
    private String userId;
 
    /**
     * 部门ID
     */
    private Long deptId;
 
    /**
     * 用户账号
     */
    @Xss(message = "用户账号不能包含脚本字符")
    @NotBlank(message = "用户账号不能为空")
    @Size(min = 0, max = 30, message = "用户账号长度不能超过{max}个字符")
    private String userName;
 
    /**
     * 用户昵称
     */
    @Xss(message = "用户昵称不能包含脚本字符")
    @Size(min = 0, max = 30, message = "用户昵称长度不能超过{max}个字符")
    private String nickName;
 
    /**
     * 用户类型(sys_user系统用户)
     */
    private String userType;
 
    /**
     * 用户邮箱
     */
    @Sensitive(strategy = SensitiveStrategy.EMAIL)
    @Email(message = "邮箱格式不正确")
    @Size(min = 0, max = 50, message = "邮箱长度不能超过{max}个字符")
    private String email;
 
    /**
     * 手机号码
     */
    @Sensitive(strategy = SensitiveStrategy.PHONE)
    private String phonenumber;
 
    /**
     * 用户性别
     */
    private String sex;
 
    /**
     * 用户头像
     */
    private String avatar;
 
    /**
     * 密码
     */
    @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停用)
     */
    private String status;
 
    /**
     * 删除标志(0代表存在 2代表删除)
     */
    @TableLogic
    private String delFlag;
 
    /**
     * 最后登录IP
     */
    private String loginIp;
 
    /**
     * 最后登录时间
     */
    private Date loginDate;
 
    /**
     * 备注
     */
    private String remark;
 
    /**
     * 部门对象
     */
    @TableField(exist = false)
    private SysDept dept;
 
    /**
     * 角色对象
     */
    @TableField(exist = false)
    private List<SysRole> roles;
 
    /**
     * 角色组
     */
    @TableField(exist = false)
    private String[] roleIds;
 
    /**
     * 岗位组
     */
    @TableField(exist = false)
    private Long[] postIds;
 
    /**
     * 数据权限 当前角色ID
     */
    @TableField(exist = false)
    private Long roleId;
 
    public SysUser(String userId) {
        this.userId = userId;
    }
 
    public boolean isAdmin() {
        return UserConstants.ADMIN_ID.equals(this.userId);
    }
 
}