| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- package com.izouma.zhumj.domain;
- import com.alibaba.excel.annotation.ExcelIgnore;
- import com.fasterxml.jackson.annotation.JsonIgnore;
- import com.fasterxml.jackson.annotation.JsonProperty;
- import com.izouma.zhumj.annotations.Searchable;
- import com.izouma.zhumj.config.Constants;
- import com.izouma.zhumj.security.Authority;
- import io.swagger.annotations.ApiModel;
- import io.swagger.annotations.ApiModelProperty;
- import lombok.AllArgsConstructor;
- import lombok.Builder;
- import lombok.Data;
- import lombok.NoArgsConstructor;
- import org.hibernate.annotations.Where;
- import javax.persistence.*;
- import javax.validation.constraints.Pattern;
- import javax.validation.constraints.Size;
- import java.io.Serializable;
- import java.time.LocalDateTime;
- import java.util.HashSet;
- import java.util.Set;
- @Data
- @Entity
- @AllArgsConstructor
- @NoArgsConstructor
- @Builder
- @Where(clause = "enabled = 1")
- @ApiModel(value = "用户", description = "用户")
- public class User extends BaseEntity implements Serializable {
- private Long companyId;
- @Pattern(regexp = Constants.Regex.USERNAME)
- @Size(min = 1, max = 50)
- @Column(nullable = false, unique = true)
- @Searchable
- private String username;
- @Searchable
- private String nickname;
- private String avatar;
- @JsonIgnore
- private String password;
- @Column(nullable = false)
- private Boolean enabled = true;
- @ManyToMany(fetch = FetchType.EAGER, cascade = {CascadeType.DETACH})
- @JoinTable(
- name = "user_authority",
- joinColumns = {@JoinColumn(name = "user_id", referencedColumnName = "id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))},
- inverseJoinColumns = {@JoinColumn(name = "authority_name", referencedColumnName = "name", foreignKey = @ForeignKey(name = "none", value = ConstraintMode.NO_CONSTRAINT))})
- @ExcelIgnore
- private Set<Authority> authorities = new HashSet<>();
- private String openId;
- private String sex;
- private String language;
- private String city;
- private String province;
- private String country;
- // @Pattern(regexp = Constants.Regex.CHINESE)
- @Searchable
- private String realName;
- @Column(length = 20)
- @Pattern(regexp = Constants.Regex.ID_NO)
- @Searchable
- private String idNo;
- @ApiModelProperty(value = "钉钉userid", name = "dingUserid")
- private String dingUserid;
- @ManyToMany(fetch = FetchType.LAZY, cascade = {CascadeType.DETACH})
- @JoinTable(
- name = "user_department",
- joinColumns = {@JoinColumn(name = "user_id", referencedColumnName = "id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))},
- inverseJoinColumns = {@JoinColumn(name = "department_id", referencedColumnName = "id", foreignKey = @ForeignKey(name = "none", value = ConstraintMode.NO_CONSTRAINT))})
- @ExcelIgnore
- @ApiModelProperty(value = "部门", name = "departments")
- private Set<Department> departments = new HashSet<>();
- @Searchable
- private String phone;
- private String position;
- private String email;
- @ManyToMany(fetch = FetchType.LAZY, cascade = {CascadeType.DETACH})
- @JoinTable(
- name = "user_store",
- joinColumns = {@JoinColumn(name = "user_id", referencedColumnName = "id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))},
- inverseJoinColumns = {@JoinColumn(name = "store_id", referencedColumnName = "id", foreignKey = @ForeignKey(name = "none", value = ConstraintMode.NO_CONSTRAINT))})
- @OrderBy("id")
- @ExcelIgnore
- @ApiModelProperty(value = "店铺", name = "stores")
- private Set<StoreInfo> stores = new HashSet<>();
- @ApiModelProperty(value = "银行卡号", name = "bankNo")
- private String bankNo;
- @ApiModelProperty(value = "用户名", name = "trueName")
- private String trueName;
- @ApiModelProperty(value = "收款方开户行", name = "bankCode")
- private String bankCode;
- @ApiModelProperty(value = "临时用户", name = "temporal")
- private boolean temporal;
- private LocalDateTime expireAt;
- @ApiModelProperty(value = "客户ID", name = "customerId")
- private Long customerId;
- private boolean banned;
- private boolean inBlackList = false;
- @JsonIgnore
- public String getPassword() {
- return password;
- }
- @JsonProperty
- public void setPassword(final String password) {
- this.password = password;
- }
- }
|