User.java 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. package com.izouma.nineth.domain;
  2. import com.alibaba.excel.annotation.ExcelIgnore;
  3. import com.fasterxml.jackson.annotation.JsonIgnore;
  4. import com.izouma.nineth.annotations.Searchable;
  5. import com.izouma.nineth.config.Constants;
  6. import com.izouma.nineth.enums.AuthStatus;
  7. import com.izouma.nineth.security.Authority;
  8. import io.swagger.annotations.ApiModel;
  9. import io.swagger.annotations.ApiModelProperty;
  10. import lombok.AllArgsConstructor;
  11. import lombok.Builder;
  12. import lombok.Data;
  13. import lombok.NoArgsConstructor;
  14. import org.hibernate.annotations.BatchSize;
  15. import javax.persistence.*;
  16. import javax.validation.constraints.Pattern;
  17. import javax.validation.constraints.Size;
  18. import java.io.Serializable;
  19. import java.util.HashSet;
  20. import java.util.Set;
  21. @Data
  22. @Entity
  23. @AllArgsConstructor
  24. @NoArgsConstructor
  25. @Builder
  26. @ApiModel(value = "用户", description = "用户")
  27. public class User extends BaseEntity implements Serializable {
  28. @Pattern(regexp = Constants.Regex.USERNAME)
  29. @Size(min = 1, max = 50)
  30. @Column(nullable = false, unique = true)
  31. @Searchable
  32. private String username;
  33. @Searchable
  34. private String nickname;
  35. private String avatar;
  36. @JsonIgnore
  37. private String password;
  38. private boolean del = false;
  39. @ManyToMany(fetch = FetchType.EAGER, cascade = {CascadeType.DETACH})
  40. @JoinTable(
  41. name = "user_authority",
  42. joinColumns = {@JoinColumn(name = "user_id", referencedColumnName = "id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))},
  43. inverseJoinColumns = {@JoinColumn(name = "authority_name", referencedColumnName = "name", foreignKey = @ForeignKey(name = "none", value = ConstraintMode.NO_CONSTRAINT))})
  44. @BatchSize(size = 20)
  45. @ExcelIgnore
  46. private Set<Authority> authorities = new HashSet<>();
  47. private String openId;
  48. private String sex;
  49. private String language;
  50. private String city;
  51. private String province;
  52. private String country;
  53. @Searchable
  54. private String phone;
  55. private String email;
  56. @ApiModelProperty("关注数量")
  57. private int follows;
  58. @ApiModelProperty("粉丝数量")
  59. private int followers;
  60. private int sales;
  61. private String intro;
  62. private String bg;
  63. private String realName;
  64. @ApiModelProperty("实名审核状态")
  65. @Enumerated(EnumType.STRING)
  66. private AuthStatus authStatus;
  67. @JsonIgnore
  68. private String nftAccount;
  69. @JsonIgnore
  70. private String kmsId;
  71. @JsonIgnore
  72. private String publicKey;
  73. @JsonIgnore
  74. private String tradeCode;
  75. }