
club.zhcs.lina.auth.service.AuthUser Maven / Gradle / Ivy
package club.zhcs.lina.auth.service;
import java.util.List;
import org.nutz.json.JsonField;
import org.nutz.json.JsonIgnore;
import org.nutz.lang.Lang;
import org.nutz.lang.Strings;
import org.nutz.lang.util.NutMap;
import club.zhcs.lina.utils.enums.Codebook;
import club.zhcs.lina.utils.enums.ICodeBook;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.media.Schema.RequiredMode;
import lombok.AllArgsConstructor;
import lombok.Builder.Default;
import lombok.Data;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import lombok.experimental.SuperBuilder;
/**
*
* @author Kerbores([email protected])
*
*/
@Data
@SuperBuilder
@Accessors(chain = true)
@NoArgsConstructor
@AllArgsConstructor
public class AuthUser {
@Schema(description = "用户名", requiredMode = RequiredMode.REQUIRED)
String userName;
@Schema(description = "姓名", requiredMode = RequiredMode.REQUIRED)
String fullName;
@Schema(description = "邮箱", requiredMode = RequiredMode.AUTO)
String email;
@Schema(description = "电话", requiredMode = RequiredMode.AUTO)
String mobile;
@Schema(description = "用户头像", requiredMode = RequiredMode.AUTO)
private String avatar;
@Schema(description = "性别", requiredMode = RequiredMode.AUTO)
@Default
private Sex sex = Sex.FEMALE;
@Schema(description = "密码", requiredMode = RequiredMode.REQUIRED)
@JsonIgnore
String password;
@Schema(description = "jwt Token", requiredMode = RequiredMode.REQUIRED)
String token;
@Schema(description = "jwt refreshToken", requiredMode = RequiredMode.REQUIRED)
String refreshToken;
@Schema(description = "角色列表", requiredMode = RequiredMode.REQUIRED)
@Default
List roles = Lang.list();
@Schema(description = "权限列表", requiredMode = RequiredMode.REQUIRED)
@Default
List permissions = Lang.list();
@Default
@Schema(description = "扩展信息", requiredMode = RequiredMode.NOT_REQUIRED)
NutMap extInfo = NutMap.NEW();
@Getter
@AllArgsConstructor
public enum Sex implements ICodeBook {
/**
*
*/
MALE("MALE", "男"),
/**
*
*/
FEMALE("FEMALE", "女");
String code;
String description;
}
@JsonField
public Codebook getSexInfo() {
return getSex().build();
}
public void setSexInfo(Codebook sexInfo) {
setSex(Sex.valueOf(sexInfo.getName()));
}
/**
* 添加扩展信息
*
* @param key
* key
* @param value
* value
* @return 用户信息
*/
public AuthUser addExt(String key, Object value) {
getExtInfo().setv(key, value);
return this;
}
/**
* @return
*/
public static AuthUser anonymous() {
return builder().build();
}
public boolean isAnonymous() {
return Strings.isBlank(userName);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy