diff --git a/docs/oauth/wechat_open.md b/docs/oauth/wechat_open.md index bd67ec7..e4a7af4 100644 --- a/docs/oauth/wechat_open.md +++ b/docs/oauth/wechat_open.md @@ -141,7 +141,7 @@ public class RestAuthController { "email": null, "remark": null, "gender": "MALE", - "source": "WECHAT", + "source": "WECHAT_OPEN", "token": { "accessToken": "28_Bzvt4UxxxxFElOxxxxgTqIJmSE5LxB2Az7stFqYVnFoIhL7RbevA0Urc", "expireIn": 7200, diff --git a/src/main/java/me/zhyd/oauth/enums/AuthUserGender.java b/src/main/java/me/zhyd/oauth/enums/AuthUserGender.java index af3bd1a..348d520 100644 --- a/src/main/java/me/zhyd/oauth/enums/AuthUserGender.java +++ b/src/main/java/me/zhyd/oauth/enums/AuthUserGender.java @@ -18,25 +18,21 @@ public enum AuthUserGender { * MALE/FAMALE为正常值,通过{@link AuthUserGender#getRealGender(String)}方法获取真实的性别 * UNKNOWN为容错值,部分平台不会返回用户性别,为了方便统一,使用UNKNOWN标记所有未知或不可测的用户性别信息 */ - MALE(1, "男"), - FEMALE(0, "女"), - UNKNOWN(-1, "未知"); + MALE("1", "男"), + FEMALE("0", "女"), + UNKNOWN("-1", "未知"); - private int code; + private String code; private String desc; public static AuthUserGender getRealGender(String code) { - if (code == null) { + if (null == code || UNKNOWN.getCode().equals(code)) { return UNKNOWN; } String[] males = {"m", "男", "1", "male"}; if (Arrays.asList(males).contains(code.toLowerCase())) { return MALE; } - String[] females = {"f", "女", "0", "female"}; - if (Arrays.asList(females).contains(code.toLowerCase())) { - return FEMALE; - } - return UNKNOWN; + return FEMALE; } } diff --git a/src/main/java/me/zhyd/oauth/request/AuthWeChatMpRequest.java b/src/main/java/me/zhyd/oauth/request/AuthWeChatMpRequest.java index ac67094..35a55e8 100644 --- a/src/main/java/me/zhyd/oauth/request/AuthWeChatMpRequest.java +++ b/src/main/java/me/zhyd/oauth/request/AuthWeChatMpRequest.java @@ -57,25 +57,13 @@ public class AuthWeChatMpRequest extends AuthDefaultRequest { authToken.setUnionId(object.getString("unionid")); } - AuthUserGender sex; - switch (object.getString("sex")) { - case "1": - sex = AuthUserGender.MALE; - break; - case "2": - sex = AuthUserGender.FEMALE; - break; - default: - sex = AuthUserGender.UNKNOWN; - } - return AuthUser.builder() .username(object.getString("nickname")) .nickname(object.getString("nickname")) .avatar(object.getString("headimgurl")) .location(location) .uuid(openId) - .gender(sex) + .gender(AuthUserGender.getRealGender(object.getString("sex"))) .token(authToken) .source(source.toString()) .build();