User.java 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336
  1. /**
  2. * Copyright &copy; 2015-2020 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
  3. */
  4. package com.jeeplus.modules.sys.entity;
  5. import java.util.Date;
  6. import java.util.List;
  7. import javax.validation.constraints.NotNull;
  8. import com.jeeplus.common.utils.SpringContextHolder;
  9. import com.jeeplus.common.utils.StringUtils;
  10. import org.hibernate.validator.constraints.Email;
  11. import org.hibernate.validator.constraints.Length;
  12. import com.fasterxml.jackson.annotation.JsonFormat;
  13. import com.fasterxml.jackson.annotation.JsonIgnore;
  14. import com.google.common.collect.Lists;
  15. import com.jeeplus.common.config.Global;
  16. import com.jeeplus.common.utils.Collections3;
  17. import com.jeeplus.common.utils.excel.annotation.ExcelField;
  18. import com.jeeplus.common.utils.excel.fieldtype.RoleListType;
  19. import com.jeeplus.core.persistence.DataEntity;
  20. /**
  21. * 用户Entity
  22. * @author jeeplus
  23. * @version 2016-12-05
  24. */
  25. public class User extends DataEntity<User> {
  26. private static final long serialVersionUID = 1L;
  27. private Office company; // 归属公司
  28. private Office office; // 归属部门
  29. private String loginName;// 登录名
  30. private String password;// 密码
  31. private String no; // 工号
  32. private String name; // 姓名
  33. private String email; // 邮箱
  34. private String phone; // 电话
  35. private String mobile; // 手机
  36. private String loginIp; // 最后登陆IP
  37. private Date loginDate; // 最后登陆日期
  38. private String loginFlag; // 是否允许登陆
  39. private String photo; // 头像
  40. private String qrCode; //二维码
  41. private String oldLoginName;// 原登录名
  42. private String newPassword; // 新密码
  43. private String sign;//签名
  44. private String oldLoginIp; // 上次登陆IP
  45. private Date oldLoginDate; // 上次登陆日期
  46. private Role role; // 根据角色查询用户条件
  47. private List<Role> roleList = Lists.newArrayList(); // 拥有角色列表
  48. public User() {
  49. super();
  50. this.loginFlag = Global.YES;
  51. }
  52. public User(String id){
  53. super(id);
  54. }
  55. public User(String id, String loginName){
  56. super(id);
  57. this.loginName = loginName;
  58. }
  59. public User(Role role){
  60. super();
  61. this.role = role;
  62. }
  63. public String getPhoto() {
  64. if("".equals(photo)){
  65. return SpringContextHolder.getStatic()+"/common/images/flat-avatar.png";
  66. }
  67. return photo;
  68. }
  69. public void setPhoto(String photo) {
  70. this.photo = photo;
  71. }
  72. public String getLoginFlag() {
  73. return loginFlag;
  74. }
  75. public void setLoginFlag(String loginFlag) {
  76. this.loginFlag = loginFlag;
  77. }
  78. public String getId() {
  79. return id;
  80. }
  81. @NotNull(message="归属公司不能为空")
  82. @ExcelField(title="归属公司", align=2, sort=20)
  83. public Office getCompany() {
  84. return company;
  85. }
  86. public void setCompany(Office company) {
  87. this.company = company;
  88. }
  89. @NotNull(message="归属部门不能为空")
  90. @ExcelField(title="归属部门", align=2, sort=25)
  91. public Office getOffice() {
  92. return office;
  93. }
  94. public void setOffice(Office office) {
  95. this.office = office;
  96. }
  97. @Length(min=1, max=100, message="登录名长度必须介于 1 和 100 之间")
  98. @ExcelField(title="登录名", align=2, sort=30)
  99. public String getLoginName() {
  100. return loginName;
  101. }
  102. public void setLoginName(String loginName) {
  103. this.loginName = loginName;
  104. }
  105. @JsonIgnore
  106. @Length(min=1, max=100, message="密码长度必须介于 1 和 100 之间")
  107. public String getPassword() {
  108. return password;
  109. }
  110. public void setPassword(String password) {
  111. this.password = password;
  112. }
  113. @Length(min=1, max=100, message="姓名长度必须介于 1 和 100 之间")
  114. @ExcelField(title="姓名", align=2, sort=40)
  115. public String getName() {
  116. return name;
  117. }
  118. @Length(min=1, max=100, message="工号长度必须介于 1 和 100 之间")
  119. @ExcelField(title="工号", align=2, sort=45)
  120. public String getNo() {
  121. return no;
  122. }
  123. public void setNo(String no) {
  124. this.no = no;
  125. }
  126. public void setName(String name) {
  127. this.name = name;
  128. }
  129. @Email(message="邮箱格式不正确")
  130. @Length(min=0, max=200, message="邮箱长度必须介于 1 和 200 之间")
  131. @ExcelField(title="邮箱", align=1, sort=50)
  132. public String getEmail() {
  133. return email;
  134. }
  135. public void setEmail(String email) {
  136. this.email = email;
  137. }
  138. @Length(min=0, max=200, message="电话长度必须介于 1 和 200 之间")
  139. @ExcelField(title="电话", align=2, sort=60)
  140. public String getPhone() {
  141. return phone;
  142. }
  143. public void setPhone(String phone) {
  144. this.phone = phone;
  145. }
  146. @Length(min=0, max=200, message="手机长度必须介于 1 和 200 之间")
  147. @ExcelField(title="手机", align=2, sort=70)
  148. public String getMobile() {
  149. return mobile;
  150. }
  151. public void setMobile(String mobile) {
  152. this.mobile = mobile;
  153. }
  154. @ExcelField(title="备注", align=1, sort=900)
  155. public String getRemarks() {
  156. return remarks;
  157. }
  158. @ExcelField(title="创建时间", type=0, align=1, sort=90)
  159. public Date getCreateDate() {
  160. return createDate;
  161. }
  162. @ExcelField(title="最后登录IP", type=0, align=1, sort=100)
  163. public String getLoginIp() {
  164. return loginIp;
  165. }
  166. public void setLoginIp(String loginIp) {
  167. this.loginIp = loginIp;
  168. }
  169. @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
  170. @ExcelField(title="最后登录日期", type=0, align=1, sort=110)
  171. public Date getLoginDate() {
  172. return loginDate;
  173. }
  174. public void setLoginDate(Date loginDate) {
  175. this.loginDate = loginDate;
  176. }
  177. public String getOldLoginName() {
  178. return oldLoginName;
  179. }
  180. public void setOldLoginName(String oldLoginName) {
  181. this.oldLoginName = oldLoginName;
  182. }
  183. public String getNewPassword() {
  184. return newPassword;
  185. }
  186. public void setNewPassword(String newPassword) {
  187. this.newPassword = newPassword;
  188. }
  189. public String getOldLoginIp() {
  190. if (oldLoginIp == null){
  191. return loginIp;
  192. }
  193. return oldLoginIp;
  194. }
  195. public void setOldLoginIp(String oldLoginIp) {
  196. this.oldLoginIp = oldLoginIp;
  197. }
  198. @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
  199. public Date getOldLoginDate() {
  200. if (oldLoginDate == null){
  201. return loginDate;
  202. }
  203. return oldLoginDate;
  204. }
  205. public void setOldLoginDate(Date oldLoginDate) {
  206. this.oldLoginDate = oldLoginDate;
  207. }
  208. public Role getRole() {
  209. return role;
  210. }
  211. public void setRole(Role role) {
  212. this.role = role;
  213. }
  214. @JsonIgnore
  215. @ExcelField(title="拥有角色", align=1, sort=800, fieldType=RoleListType.class)
  216. public List<Role> getRoleList() {
  217. return roleList;
  218. }
  219. public void setRoleList(List<Role> roleList) {
  220. this.roleList = roleList;
  221. }
  222. @JsonIgnore
  223. public List<String> getRoleIdList() {
  224. List<String> roleIdList = Lists.newArrayList();
  225. for (Role role : roleList) {
  226. roleIdList.add(role.getId());
  227. }
  228. return roleIdList;
  229. }
  230. public void setRoleIdList(List<String> roleIdList) {
  231. roleList = Lists.newArrayList();
  232. for (String roleId : roleIdList) {
  233. Role role = new Role();
  234. role.setId(roleId);
  235. roleList.add(role);
  236. }
  237. }
  238. /**
  239. * 用户拥有的角色名称字符串, 多个角色名称用','分隔.
  240. */
  241. public String getRoleNames() {
  242. return Collections3.extractToString(roleList, "name", ",");
  243. }
  244. public boolean isAdmin(){
  245. return isAdmin(this.id);
  246. }
  247. public static boolean isAdmin(String id){
  248. return id != null && "1".equals(id);
  249. }
  250. @Override
  251. public String toString() {
  252. return id;
  253. }
  254. public void setQrCode(String qrCode) {
  255. this.qrCode = qrCode;
  256. }
  257. public String getQrCode() {
  258. return qrCode;
  259. }
  260. /**
  261. * @param sign the sign to set
  262. */
  263. public void setSign(String sign) {
  264. this.sign = sign;
  265. }
  266. /**
  267. * @return the sign
  268. */
  269. public String getSign() {
  270. return sign;
  271. }
  272. }