UserInfo.java 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. package com.izouma.walkchina.domain;
  2. import com.fasterxml.jackson.annotation.JsonIgnore;
  3. import com.fasterxml.jackson.annotation.JsonInclude;
  4. import lombok.AllArgsConstructor;
  5. import lombok.Builder;
  6. import lombok.Data;
  7. import lombok.NoArgsConstructor;
  8. import org.hibernate.annotations.Where;
  9. import org.springframework.data.annotation.CreatedDate;
  10. import org.springframework.data.annotation.LastModifiedDate;
  11. import org.springframework.security.core.GrantedAuthority;
  12. import org.springframework.security.core.authority.SimpleGrantedAuthority;
  13. import org.springframework.security.core.userdetails.UserDetails;
  14. import javax.persistence.*;
  15. import javax.validation.constraints.Email;
  16. import javax.validation.constraints.NotNull;
  17. import java.util.Collection;
  18. import java.util.Collections;
  19. import java.util.Date;
  20. @Data
  21. @Entity
  22. @JsonInclude(JsonInclude.Include.NON_NULL)
  23. @NoArgsConstructor
  24. @AllArgsConstructor
  25. @Builder
  26. @Where(clause = "active = 1")
  27. public class UserInfo implements UserDetails {
  28. private static final long serialVersionUID = 6392705780780532944L;
  29. @Id
  30. @GeneratedValue(strategy = GenerationType.IDENTITY)
  31. private Long id;
  32. @Column(unique = true)
  33. private String username;
  34. private String nickname;
  35. @JsonIgnore
  36. @NotNull
  37. private String password;
  38. private String openId;
  39. private String unionId;
  40. private String avatar;
  41. private String phone;
  42. @Email
  43. private String email;
  44. private Date birthday;
  45. private String country;
  46. private String province;
  47. private String city;
  48. @Column(columnDefinition = "integer default 0")
  49. private Integer sex;
  50. @CreatedDate
  51. private Date createdAt;
  52. @LastModifiedDate
  53. private Date modifiedAt;
  54. @Column(columnDefinition = "bit default 1", nullable = false)
  55. @Builder.Default
  56. private Boolean active = true;
  57. @Override
  58. @JsonIgnore
  59. public Collection<? extends GrantedAuthority> getAuthorities() {
  60. return Collections.singletonList(new SimpleGrantedAuthority("user"));
  61. }
  62. @Override
  63. @JsonIgnore
  64. public boolean isAccountNonExpired() {
  65. return true;
  66. }
  67. @Override
  68. @JsonIgnore
  69. public boolean isAccountNonLocked() {
  70. return true;
  71. }
  72. @Override
  73. @JsonIgnore
  74. public boolean isCredentialsNonExpired() {
  75. return true;
  76. }
  77. @Override
  78. @JsonIgnore
  79. public boolean isEnabled() {
  80. return active;
  81. }
  82. }