🍻 调整微信平台获取用户性别的代码逻辑,单独适配微信平台
This commit is contained in:
@@ -2,6 +2,7 @@ package me.zhyd.oauth.enums;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import me.zhyd.oauth.utils.StringUtils;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
@@ -25,14 +26,34 @@ public enum AuthUserGender {
|
||||
private String code;
|
||||
private String desc;
|
||||
|
||||
public static AuthUserGender getRealGender(String code) {
|
||||
if (null == code || UNKNOWN.getCode().equals(code)) {
|
||||
/**
|
||||
* 获取用户的实际性别,常规网站
|
||||
*
|
||||
* @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(code.toLowerCase())) {
|
||||
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) {
|
||||
if (StringUtils.isEmpty(originalGender) || "0".equals(originalGender)) {
|
||||
return AuthUserGender.UNKNOWN;
|
||||
}
|
||||
return getRealGender(originalGender);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ import me.zhyd.oauth.exception.AuthException;
|
||||
import me.zhyd.oauth.model.AuthCallback;
|
||||
import me.zhyd.oauth.model.AuthToken;
|
||||
import me.zhyd.oauth.model.AuthUser;
|
||||
import me.zhyd.oauth.utils.StringUtils;
|
||||
import me.zhyd.oauth.utils.UrlBuilder;
|
||||
|
||||
/**
|
||||
@@ -63,8 +64,6 @@ public class AuthWeChatEnterpriseRequest extends AuthDefaultRequest {
|
||||
HttpResponse userDetailResponse = getUserDetail(authToken.getAccessToken(), userId);
|
||||
JSONObject userDetail = this.checkResponse(userDetailResponse);
|
||||
|
||||
String gender = getRealGender(userDetail);
|
||||
|
||||
return AuthUser.builder()
|
||||
.username(userDetail.getString("name"))
|
||||
.nickname(userDetail.getString("alias"))
|
||||
@@ -72,7 +71,7 @@ public class AuthWeChatEnterpriseRequest extends AuthDefaultRequest {
|
||||
.location(userDetail.getString("address"))
|
||||
.email(userDetail.getString("email"))
|
||||
.uuid(userId)
|
||||
.gender(AuthUserGender.getRealGender(gender))
|
||||
.gender(AuthUserGender.getWechatRealGender(userDetail.getString("gender")))
|
||||
.token(authToken)
|
||||
.source(source.toString())
|
||||
.build();
|
||||
@@ -94,20 +93,6 @@ public class AuthWeChatEnterpriseRequest extends AuthDefaultRequest {
|
||||
return object;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户的实际性别,0表示未定义,1表示男性,2表示女性
|
||||
*
|
||||
* @param userDetail 用户详情
|
||||
* @return 用户性别
|
||||
*/
|
||||
private String getRealGender(JSONObject userDetail) {
|
||||
int gender = userDetail.getIntValue("gender");
|
||||
if (AuthUserGender.MALE.getCode() == gender) {
|
||||
return "1";
|
||||
}
|
||||
return 2 == gender ? "0" : null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state}
|
||||
*
|
||||
|
||||
@@ -63,7 +63,7 @@ public class AuthWeChatMpRequest extends AuthDefaultRequest {
|
||||
.avatar(object.getString("headimgurl"))
|
||||
.location(location)
|
||||
.uuid(openId)
|
||||
.gender(AuthUserGender.getRealGender(object.getString("sex")))
|
||||
.gender(AuthUserGender.getWechatRealGender(object.getString("sex")))
|
||||
.token(authToken)
|
||||
.source(source.toString())
|
||||
.build();
|
||||
|
||||
@@ -62,7 +62,7 @@ public class AuthWeChatOpenRequest extends AuthDefaultRequest {
|
||||
.avatar(object.getString("headimgurl"))
|
||||
.location(location)
|
||||
.uuid(openId)
|
||||
.gender(AuthUserGender.getRealGender(object.getString("sex")))
|
||||
.gender(AuthUserGender.getWechatRealGender(object.getString("sex")))
|
||||
.token(authToken)
|
||||
.source(source.toString())
|
||||
.build();
|
||||
|
||||
Reference in New Issue
Block a user