package cn.lili.modules.connect.entity.enums;
|
|
import cn.lili.common.utils.StringUtils;
|
import lombok.AllArgsConstructor;
|
import lombok.Getter;
|
|
import java.util.Arrays;
|
|
/**
|
* 用户性别
|
*
|
* @author yadong.zhang (yadong.zhang0415(a)gmail.com)
|
* @since 1.8
|
*/
|
@Getter
|
@AllArgsConstructor
|
public enum AuthUserGender {
|
/**
|
* MALE/FAMALE为正常值,通过{@link AuthUserGender#getRealGender(String)}方法获取真实的性别
|
* UNKNOWN为容错值,部分平台不会返回用户性别,为了方便统一,使用UNKNOWN标记所有未知或不可测的用户性别信息
|
*/
|
MALE("1", "男"),
|
FEMALE("0", "女"),
|
UNKNOWN("-1", "未知");
|
|
private final String code;
|
private final String desc;
|
|
/**
|
* 获取用户的实际性别,常规网站
|
*
|
* @param originalGender 用户第三方标注的原始性别
|
* @return 用户性别
|
*/
|
public static AuthUserGender getRealGender(String originalGender) {
|
if (null == originalGender || UNKNOWN.getCode().equals(originalGender)) {
|
return UNKNOWN;
|
}
|
String[] males = {"m", "男", "1", "male"};
|
if (Arrays.asList(males).contains(originalGender.toLowerCase())) {
|
return MALE;
|
}
|
return FEMALE;
|
}
|
|
/**
|
* 获取微信平台用户的实际性别,0表示未定义,1表示男性,2表示女性
|
*
|
* @param originalGender 用户第三方标注的原始性别
|
* @return 用户性别
|
* @since 1.13.2
|
*/
|
public static AuthUserGender getWechatRealGender(String originalGender) {
|
String noGender="0";
|
if (StringUtils.isEmpty(originalGender) || noGender.equals(originalGender)) {
|
return AuthUserGender.UNKNOWN;
|
}
|
return getRealGender(originalGender);
|
}
|
}
|