User.java 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  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 me.zhengjie.modules.system.service.dto.UserDto;
  24. import javax.persistence.*;
  25. import javax.validation.constraints.Email;
  26. import javax.validation.constraints.NotBlank;
  27. import javax.validation.constraints.NotNull;
  28. import java.io.Serializable;
  29. import java.util.Date;
  30. import java.util.Objects;
  31. import java.util.Set;
  32. /**
  33. * @author Zheng Jie
  34. * @date 2018-11-22
  35. */
  36. @Entity
  37. @Getter
  38. @Setter
  39. @Table(name="sys_user")
  40. public class User extends BaseEntity implements Serializable {
  41. @Id
  42. @Column(name = "user_id")
  43. @NotNull(groups = Update.class)
  44. @ApiModelProperty(value = "ID", hidden = true)
  45. private String id;
  46. @ManyToMany
  47. @ApiModelProperty(value = "用户角色")
  48. @JoinTable(name = "sys_users_roles",
  49. joinColumns = {@JoinColumn(name = "user_id",referencedColumnName = "user_id")},
  50. inverseJoinColumns = {@JoinColumn(name = "role_id",referencedColumnName = "role_id")})
  51. private Set<Role> roles;
  52. @ManyToMany
  53. @ApiModelProperty(value = "用户岗位")
  54. @JoinTable(name = "sys_users_jobs",
  55. joinColumns = {@JoinColumn(name = "user_id",referencedColumnName = "user_id")},
  56. inverseJoinColumns = {@JoinColumn(name = "job_id",referencedColumnName = "job_id")})
  57. private Set<Job> jobs;
  58. @OneToOne
  59. @JoinColumn(name = "dept_id")
  60. @ApiModelProperty(value = "用户部门")
  61. private Dept dept;
  62. @OneToOne
  63. @JoinColumn(name = "dm_user_id")
  64. @ApiModelProperty(value = "DM用户")
  65. private DmUser dmUser;
  66. @ManyToOne
  67. @JoinColumn(name = "company_id")
  68. @ApiModelProperty(value = "DM单位")
  69. private DmCompany dmCompany;
  70. //@NotBlank
  71. @Column(unique = true)
  72. @ApiModelProperty(value = "用户名称")
  73. private String username;
  74. // @NotBlank
  75. @ApiModelProperty(value = "用户昵称")
  76. private String nickName;
  77. // @Email
  78. // @NotBlank
  79. @ApiModelProperty(value = "邮箱")
  80. private String email;
  81. //@NotBlank
  82. @ApiModelProperty(value = "电话号码")
  83. private String phone;
  84. @ApiModelProperty(value = "用户性别")
  85. private String gender;
  86. @ApiModelProperty(value = "头像真实名称",hidden = true)
  87. private String avatarName;
  88. @ApiModelProperty(value = "头像存储的路径", hidden = true)
  89. private String avatarPath;
  90. @ApiModelProperty(value = "密码")
  91. private String password;
  92. @Column(name = "oss_password")
  93. @ApiModelProperty(value = "单点密码")
  94. private String ossPassword;
  95. //@NotNull
  96. @ApiModelProperty(value = "是否启用")
  97. private Boolean enabled;
  98. @ApiModelProperty(value = "是否为admin账号", hidden = true)
  99. private Boolean isAdmin = false;
  100. @Column(name = "pwd_reset_time")
  101. @ApiModelProperty(value = "最后修改密码的时间", hidden = true)
  102. private Date pwdResetTime;
  103. //@NotNull
  104. @ApiModelProperty(value = "初始密码", hidden = true)
  105. private String orgPassword;
  106. //@NotNull
  107. @ApiModelProperty(value = "限制次数", hidden = true)
  108. private Integer errLimit = 3;
  109. @ApiModelProperty(value = "备注", hidden = true)
  110. private String remark;
  111. @Column(name = "extends")
  112. @ApiModelProperty(value = "扩展列", hidden = true)
  113. private String extendsCol;
  114. @Column(name = "user_code")
  115. @ApiModelProperty(value = "用户编号")
  116. private String userCode;
  117. @Column(name = "user_root_group_id")
  118. @ApiModelProperty(value = "根用户组id", hidden = true)
  119. private String userRootGroupId;
  120. @Column(name = "user_root_group_name")
  121. @ApiModelProperty(value = "根用户组名称", hidden = true)
  122. private String userRootGroupName;
  123. @Override
  124. public boolean equals(Object o) {
  125. if (this == o) {
  126. return true;
  127. }
  128. if (o == null || getClass() != o.getClass()) {
  129. return false;
  130. }
  131. User user = (User) o;
  132. return Objects.equals(id, user.id) &&
  133. Objects.equals(username, user.username);
  134. }
  135. @Override
  136. public int hashCode() {
  137. return Objects.hash(id, username);
  138. }
  139. }