BackUser.java 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package com.izouma.immall.domain;
  2. import com.alibaba.excel.annotation.ExcelIgnore;
  3. import com.fasterxml.jackson.annotation.JsonIgnore;
  4. import com.izouma.immall.annotations.Searchable;
  5. import com.izouma.immall.config.Constants;
  6. import com.izouma.immall.security.Authority;
  7. import io.swagger.annotations.ApiModel;
  8. import lombok.AllArgsConstructor;
  9. import lombok.Builder;
  10. import lombok.Data;
  11. import lombok.NoArgsConstructor;
  12. import org.hibernate.annotations.BatchSize;
  13. import org.hibernate.annotations.Where;
  14. import javax.persistence.*;
  15. import javax.validation.constraints.Pattern;
  16. import javax.validation.constraints.Size;
  17. import java.util.HashSet;
  18. import java.util.Set;
  19. @Data
  20. @Entity
  21. @AllArgsConstructor
  22. @NoArgsConstructor
  23. @Where(clause = "enabled = 1")
  24. @Builder
  25. @ApiModel(value = "后台用户", description = "后台用户")
  26. public class BackUser extends BaseEntity {
  27. @Pattern(regexp = Constants.Regex.USERNAME)
  28. @Size(min = 1, max = 50)
  29. @Column(nullable = false, unique = true)
  30. @Searchable
  31. private String username;
  32. @Searchable
  33. private String nickname;
  34. private String avatar;
  35. @JsonIgnore
  36. private String password;
  37. @Searchable
  38. private String phone;
  39. @Column(nullable = false)
  40. private Boolean enabled = true;
  41. @ManyToMany(fetch = FetchType.EAGER, cascade = {CascadeType.ALL})
  42. @JoinTable(
  43. name = "back_user_authority",
  44. joinColumns = {@JoinColumn(name = "back_user_id", referencedColumnName = "id")},
  45. inverseJoinColumns = {@JoinColumn(name = "authority_name", referencedColumnName = "name")})
  46. @BatchSize(size = 20)
  47. @ExcelIgnore
  48. private Set<Authority> authorities = new HashSet<>();
  49. }