USERS.java 5.4 KB
package com.tianbo.warehouse.model;

import com.alibaba.fastjson.annotation.JSONField;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.tianbo.warehouse.validate.CheckUserExist;
import org.hibernate.validator.constraints.Length;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;

import javax.validation.constraints.*;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.List;

public class USERS implements UserDetails {

    private static final long serialVersionUID = 1L;

    @DecimalMin("1")
    private Integer userId;

    @NotBlank(message="用户名不能为空")
    @Length(min = 5, max = 11, message = "username 长度必须在 {min} - {max} 之间")
    @CheckUserExist(message = "用户已存在")
    private String username;

    @NotNull
    @NotBlank(message="密码不能为空")
    @Length(min = 6, max = 22, message = "密码 长度必须在 {min} - {max} 之间")
    private String password;

    private Date birthday;

    private String sex;

    private String address;

    private Boolean state;

    @Length(min = 11, max = 11, message = "mobilephone 长度必须为11位")
    private String mobilephone;

    private Date creattime;

    private Date updatetime;

    private String userface;

    private String realname;
    @Pattern(regexp="[a-za-z0-9._%+-]+@[a-za-z0-9.-]+\\.[a-za-z]{2,4}", message="邮件格式错误")
    private String email;

    private Integer age;

    @JSONField(serialzeFeatures= {SerializerFeature.WriteMapNullValue,SerializerFeature.WriteNullStringAsEmpty})
    private List<ROLE> roles;

    @JSONField(serialzeFeatures= {SerializerFeature.WriteMapNullValue,SerializerFeature.WriteNullStringAsEmpty})
    private List<PERMISSION> permissions;

    public Integer getUserId() {
        return userId;
    }

    public void setUserId(Integer userId) {
        this.userId = userId;
    }

    @Override
    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username == null ? null : username.trim();
    }

    @Override
    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password == null ? null : password.trim();
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex == null ? null : sex.trim();
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address == null ? null : address.trim();
    }

    public Boolean getState() {
        return state;
    }

    public void setState(Boolean state) {
        this.state = state;
    }

    public String getMobilephone() {
        return mobilephone;
    }

    public void setMobilephone(String mobilephone) {
        this.mobilephone = mobilephone == null ? null : mobilephone.trim();
    }

    public Date getCreattime() {
        return creattime;
    }

    public void setCreattime(Date creattime) {
        this.creattime = creattime;
    }

    public Date getUpdatetime() {
        return updatetime;
    }

    public void setUpdatetime(Date updatetime) {
        this.updatetime = updatetime;
    }

    public String getUserface() {
        return userface;
    }

    public void setUserface(String userface) {
        this.userface = userface == null ? null : userface.trim();
    }

    public String getRealname() {
        return realname;
    }

    public void setRealname(String realname) {
        this.realname = realname;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public List<ROLE> getRoles() {
        return roles;
    }

    public void setRoles(List<ROLE> roles) {
        this.roles = roles;
    }

    public List<PERMISSION> getPermissions() {
        return permissions;
    }

    public void setPermissions(List<PERMISSION> permissions) {
        this.permissions = permissions;
    }

    /**
     *
     * @return 账户未过期
     */
    @Override
    public boolean isAccountNonExpired(){
        return true;
    }

    /**
     *
     * @return 账户未锁定
     */
    @Override
    public boolean isAccountNonLocked(){
        return true;
    }

    /**
     *
     * @return 密码未过期
     */
    @Override
    public boolean isCredentialsNonExpired(){
        return true;
    }

    /**
     *
     * @return 账户可用
     */
    @Override
    public boolean isEnabled(){
        return true;
    }

    /**
     *
     * @return user的权限列表
     */
    @Override
    public Collection<? extends GrantedAuthority> getAuthorities(){
        List<GrantedAuthority> auths = new ArrayList<>();
        if(roles!=null && !roles.isEmpty()){
            for (ROLE role : roles) {
                if (null != role){
                    auths.add(new SimpleGrantedAuthority(role.getAuthority()));
                }
            }
        }
        return auths;
    }
}