User.java 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. /*
  2. * Copyright 2019-2020 Zheng Jie
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. package me.zhengjie.modules.system.domain;
  17. import io.swagger.annotations.ApiModelProperty;
  18. import lombok.Getter;
  19. import lombok.Setter;
  20. import me.zhengjie.base.BaseEntity;
  21. import me.zhengjie.modules.dm.company.domain.DmCompany;
  22. import me.zhengjie.modules.dm.user.domain.DmUser;
  23. import javax.persistence.*;
  24. import javax.validation.constraints.Email;
  25. import javax.validation.constraints.NotBlank;
  26. import javax.validation.constraints.NotNull;
  27. import java.io.Serializable;
  28. import java.util.Date;
  29. import java.util.Objects;
  30. import java.util.Set;
  31. /**
  32. * @author Zheng Jie
  33. * @date 2018-11-22
  34. */
  35. @Entity
  36. @Getter
  37. @Setter
  38. @Table(name="sys_user")
  39. public class User extends BaseEntity implements Serializable {
  40. @Id
  41. @Column(name = "user_id")
  42. @NotNull(groups = Update.class)
  43. @ApiModelProperty(value = "ID", hidden = true)
  44. private String id;
  45. @ManyToMany
  46. @ApiModelProperty(value = "用户角色")
  47. @JoinTable(name = "sys_users_roles",
  48. joinColumns = {@JoinColumn(name = "user_id",referencedColumnName = "user_id")},
  49. inverseJoinColumns = {@JoinColumn(name = "role_id",referencedColumnName = "role_id")})
  50. private Set<Role> roles;
  51. @ManyToMany
  52. @ApiModelProperty(value = "用户岗位")
  53. @JoinTable(name = "sys_users_jobs",
  54. joinColumns = {@JoinColumn(name = "user_id",referencedColumnName = "user_id")},
  55. inverseJoinColumns = {@JoinColumn(name = "job_id",referencedColumnName = "job_id")})
  56. private Set<Job> jobs;
  57. @OneToOne
  58. @JoinColumn(name = "dept_id")
  59. @ApiModelProperty(value = "用户部门")
  60. private Dept dept;
  61. @OneToOne
  62. @JoinColumn(name = "dm_user_id")
  63. @ApiModelProperty(value = "DM用户")
  64. private DmUser dmUser;
  65. @ManyToOne
  66. @JoinColumn(name = "company_id")
  67. @ApiModelProperty(value = "DM单位")
  68. private DmCompany dmCompany;
  69. @NotBlank
  70. @Column(unique = true)
  71. @ApiModelProperty(value = "用户名称")
  72. private String username;
  73. // @NotBlank
  74. @ApiModelProperty(value = "用户昵称")
  75. private String nickName;
  76. @Email
  77. // @NotBlank
  78. @ApiModelProperty(value = "邮箱")
  79. private String email;
  80. @NotBlank
  81. @ApiModelProperty(value = "电话号码")
  82. private String phone;
  83. @ApiModelProperty(value = "用户性别")
  84. private String gender;
  85. @ApiModelProperty(value = "头像真实名称",hidden = true)
  86. private String avatarName;
  87. @ApiModelProperty(value = "头像存储的路径", hidden = true)
  88. private String avatarPath;
  89. @ApiModelProperty(value = "密码")
  90. private String password;
  91. @NotNull
  92. @ApiModelProperty(value = "是否启用")
  93. private Boolean enabled;
  94. @ApiModelProperty(value = "是否为admin账号", hidden = true)
  95. private Boolean isAdmin = false;
  96. @Column(name = "pwd_reset_time")
  97. @ApiModelProperty(value = "最后修改密码的时间", hidden = true)
  98. private Date pwdResetTime;
  99. @NotNull
  100. @ApiModelProperty(value = "初始密码", hidden = true)
  101. private String orgPassword;
  102. @NotNull
  103. @ApiModelProperty(value = "限制次数", hidden = true)
  104. private Integer errLimit = 3;
  105. @ApiModelProperty(value = "备注", hidden = true)
  106. private String remark;
  107. @Column(name = "extends")
  108. @ApiModelProperty(value = "扩展列", hidden = true)
  109. private String extendsCol;
  110. @Column(name = "user_code")
  111. @ApiModelProperty(value = "用户编号")
  112. private String userCode;
  113. @Column(name = "user_root_group_id")
  114. @ApiModelProperty(value = "根用户组id", hidden = true)
  115. private String userRootGroupId;
  116. @Column(name = "user_root_group_name")
  117. @ApiModelProperty(value = "根用户组名称", hidden = true)
  118. private String userRootGroupName;
  119. @Override
  120. public boolean equals(Object o) {
  121. if (this == o) {
  122. return true;
  123. }
  124. if (o == null || getClass() != o.getClass()) {
  125. return false;
  126. }
  127. User user = (User) o;
  128. return Objects.equals(id, user.id) &&
  129. Objects.equals(username, user.username);
  130. }
  131. @Override
  132. public int hashCode() {
  133. return Objects.hash(id, username);
  134. }
  135. }