6942914a7f98b3d96dcf68f1b3054ed446a957fd.svn-base
7.89 KB
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
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
/**
* Copyright © 2015-2018 ODM All rights reserved.
*/
package com.thinkgem.jeesite.modules.sys.entity;
import java.util.Date;
import java.util.List;
import javax.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Email;
import org.hibernate.validator.constraints.Length;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.google.common.collect.Lists;
import com.thinkgem.jeesite.common.config.Global;
import com.thinkgem.jeesite.common.persistence.DataEntity;
import com.thinkgem.jeesite.common.supcan.annotation.treelist.cols.SupCol;
import com.thinkgem.jeesite.common.utils.Collections3;
import com.thinkgem.jeesite.common.utils.excel.annotation.ExcelField;
import com.thinkgem.jeesite.common.utils.excel.fieldtype.RoleListType;
/**
* 用户Entity
* @author ThinkGem
* @version 2013-12-05
*/
public class User extends DataEntity<User> {
private static final long serialVersionUID = 1L;
private Office company; // 归属公司
private Office office; // 归属部门
private String loginName;// 登录名
private String password;// 密码
private String no; // 工号
private String name; // 姓名
private String email; // 邮箱
private String phone; // 电话
private String mobile; // 手机
private String windowNumber; // 柜台号
private String blyw; // 柜台号
private String userType;// 用户类型
private String loginIp; // 最后登陆IP
private Date loginDate; // 最后登陆日期
private String loginFlag; // 是否允许登陆
private String photo; // 头像
private String oldLoginName;// 原登录名
private String newPassword; // 新密码
private String oldLoginIp; // 上次登陆IP
private Date oldLoginDate; // 上次登陆日期
private Role role; // 根据角色查询用户条件
private String pcode;
private String ckbh; //窗口编号
public String getCkbh() {
return ckbh;
}
public void setCkbh(String ckbh) {
this.ckbh = ckbh;
}
public String getPcode() {
return pcode;
}
public void setPcode(String pcode) {
this.pcode = pcode;
}
private List<Role> roleList = Lists.newArrayList(); // 拥有角色列表
public User() {
super();
this.loginFlag = Global.YES;
}
public User(String id){
super(id);
}
public String getWindowNumber() {
return windowNumber;
}
public void setWindowNumber(String windowNumber) {
this.windowNumber = windowNumber;
}
public String getBlyw() {
return blyw;
}
public void setBlyw(String blyw) {
this.blyw = blyw;
}
public User(String id, String loginName){
super(id);
this.loginName = loginName;
}
public User(Role role){
super();
this.role = role;
}
public String getPhoto() {
return photo;
}
public void setPhoto(String photo) {
this.photo = photo;
}
public String getLoginFlag() {
return loginFlag;
}
public void setLoginFlag(String loginFlag) {
this.loginFlag = loginFlag;
}
@SupCol(isUnique="true", isHide="true")
@ExcelField(title="ID", type=1, align=2, sort=1)
public String getId() {
return id;
}
@JsonIgnore
@NotNull(message="归属公司不能为空")
@ExcelField(title="归属公司", align=2, sort=20)
public Office getCompany() {
return company;
}
public void setCompany(Office company) {
this.company = company;
}
@JsonIgnore
@NotNull(message="归属部门不能为空")
@ExcelField(title="归属部门", align=2, sort=25)
public Office getOffice() {
return office;
}
public void setOffice(Office office) {
this.office = office;
}
@Length(min=1, max=100, message="登录名长度必须介于 1 和 100 之间")
@ExcelField(title="登录名", align=2, sort=30)
public String getLoginName() {
return loginName;
}
public void setLoginName(String loginName) {
this.loginName = loginName;
}
@JsonIgnore
@Length(min=1, max=100, message="密码长度必须介于 1 和 100 之间")
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Length(min=1, max=100, message="姓名长度必须介于 1 和 100 之间")
@ExcelField(title="姓名", align=2, sort=40)
public String getName() {
return name;
}
@Length(min=1, max=100, message="工号长度必须介于 1 和 100 之间")
@ExcelField(title="工号", align=2, sort=45)
public String getNo() {
return no;
}
public void setNo(String no) {
this.no = no;
}
public void setName(String name) {
this.name = name;
}
@Email(message="邮箱格式不正确")
@Length(min=0, max=200, message="邮箱长度必须介于 1 和 200 之间")
@ExcelField(title="邮箱", align=1, sort=50)
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Length(min=0, max=200, message="电话长度必须介于 1 和 200 之间")
@ExcelField(title="电话", align=2, sort=60)
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
@Length(min=0, max=200, message="手机长度必须介于 1 和 200 之间")
@ExcelField(title="手机", align=2, sort=70)
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
@ExcelField(title="备注", align=1, sort=900)
public String getRemarks() {
return remarks;
}
@Length(min=0, max=100, message="用户类型长度必须介于 1 和 100 之间")
@ExcelField(title="用户类型", align=2, sort=80, dictType="sys_user_type")
public String getUserType() {
return userType;
}
public void setUserType(String userType) {
this.userType = userType;
}
@ExcelField(title="创建时间", type=0, align=1, sort=90)
public Date getCreateDate() {
return createDate;
}
@ExcelField(title="最后登录IP", type=1, align=1, sort=100)
public String getLoginIp() {
return loginIp;
}
public void setLoginIp(String loginIp) {
this.loginIp = loginIp;
}
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ExcelField(title="最后登录日期", type=1, align=1, sort=110)
public Date getLoginDate() {
return loginDate;
}
public void setLoginDate(Date loginDate) {
this.loginDate = loginDate;
}
public String getOldLoginName() {
return oldLoginName;
}
public void setOldLoginName(String oldLoginName) {
this.oldLoginName = oldLoginName;
}
public String getNewPassword() {
return newPassword;
}
public void setNewPassword(String newPassword) {
this.newPassword = newPassword;
}
public String getOldLoginIp() {
if (oldLoginIp == null){
return loginIp;
}
return oldLoginIp;
}
public void setOldLoginIp(String oldLoginIp) {
this.oldLoginIp = oldLoginIp;
}
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
public Date getOldLoginDate() {
if (oldLoginDate == null){
return loginDate;
}
return oldLoginDate;
}
public void setOldLoginDate(Date oldLoginDate) {
this.oldLoginDate = oldLoginDate;
}
public Role getRole() {
return role;
}
public void setRole(Role role) {
this.role = role;
}
@JsonIgnore
@ExcelField(title="拥有角色", align=1, sort=800, fieldType=RoleListType.class)
public List<Role> getRoleList() {
return roleList;
}
public void setRoleList(List<Role> roleList) {
this.roleList = roleList;
}
@JsonIgnore
public List<String> getRoleIdList() {
List<String> roleIdList = Lists.newArrayList();
for (Role role : roleList) {
roleIdList.add(role.getId());
}
return roleIdList;
}
public void setRoleIdList(List<String> roleIdList) {
roleList = Lists.newArrayList();
for (String roleId : roleIdList) {
Role role = new Role();
role.setId(roleId);
roleList.add(role);
}
}
/**
* 用户拥有的角色名称字符串, 多个角色名称用','分隔.
*/
public String getRoleNames() {
return Collections3.extractToString(roleList, "name", ",");
}
public boolean isAdmin(){
return isAdmin(this.id);
}
public static boolean isAdmin(String id){
return id != null && "1".equals(id);
}
@Override
public String toString() {
return id;
}
}