From 140fb022a12472254b40ca02878beb3e76e9a510 Mon Sep 17 00:00:00 2001 From: huangxm129 <40385667+huangxm129@users.noreply.github.com> Date: Sun, 1 Aug 2021 11:47:34 +0800 Subject: [PATCH] =?UTF-8?q?:art:=20#2229=20=E3=80=90=E4=BC=81=E4=B8=9A?= =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E3=80=91=E6=9F=A5=E8=AF=A2=E4=BC=81=E4=B8=9A?= =?UTF-8?q?=E6=88=90=E5=91=98=E4=BF=A1=E6=81=AF=E6=8E=A5=E5=8F=A3=E7=BB=93?= =?UTF-8?q?=E6=9E=9C=E5=AE=9E=E4=BD=93=E7=B1=BB=E5=A2=9E=E5=8A=A0=E8=A7=86?= =?UTF-8?q?=E9=A2=91=E5=8F=B7=E5=90=8D=E7=A7=B0=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../me/chanjar/weixin/cp/bean/WxCpUser.java | 20 ++++++++++++++++++- .../cp/util/json/WxCpUserGsonAdapter.java | 10 ++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpUser.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpUser.java index a23b49948..18ef125ab 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpUser.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpUser.java @@ -68,6 +68,10 @@ public class WxCpUser implements Serializable { private List externalAttrs = new ArrayList<>(); private String externalPosition; private String externalCorpName; + private WechatChannels wechatChannels; + + + public void addExternalAttr(ExternalAttribute externalAttr) { this.externalAttrs.add(externalAttr); @@ -113,7 +117,7 @@ public class WxCpUser implements Serializable { @AllArgsConstructor public static class ExternalAttribute implements Serializable { private static final long serialVersionUID = -5696099236344075582L; - + /** * 属性类型: 0-本文 1-网页 2-小程序. */ @@ -144,4 +148,18 @@ public class WxCpUser implements Serializable { */ private String pagePath; } + + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + public static class WechatChannels implements Serializable { + private static final long serialVersionUID = -5696099236344075582L; + + private String nickname; + + private Integer status; + + } } diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/util/json/WxCpUserGsonAdapter.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/util/json/WxCpUserGsonAdapter.java index 6b09c3dc1..6cecde0b4 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/util/json/WxCpUserGsonAdapter.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/util/json/WxCpUserGsonAdapter.java @@ -30,6 +30,7 @@ public class WxCpUserGsonAdapter implements JsonDeserializer, JsonSeri private static final String EXTERNAL_POSITION = "external_position"; private static final String DEPARTMENT = "department"; private static final String EXTERNAL_CORP_NAME = "external_corp_name"; + private static final String WECHAT_CHANNELS = "wechat_channels"; @Override public WxCpUser deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { @@ -95,6 +96,11 @@ public class WxCpUserGsonAdapter implements JsonDeserializer, JsonSeri if (GsonHelper.isNotNull(o.get(EXTERNAL_PROFILE))) { user.setExternalCorpName(GsonHelper.getString(o.getAsJsonObject().get(EXTERNAL_PROFILE).getAsJsonObject(), EXTERNAL_CORP_NAME)); + JsonElement jsonElement = o.get(EXTERNAL_PROFILE).getAsJsonObject().get(WECHAT_CHANNELS); + if(jsonElement !=null){ + JsonObject asJsonObject = jsonElement.getAsJsonObject(); + user.setWechatChannels(WechatChannels.builder().nickname(GsonHelper.getString(asJsonObject,"nickname")).status(GsonHelper.getInteger(asJsonObject,"status")).build()); + } this.buildExternalAttrs(o, user); } @@ -321,6 +327,10 @@ public class WxCpUserGsonAdapter implements JsonDeserializer, JsonSeri attrsJson.addProperty(EXTERNAL_CORP_NAME, user.getExternalCorpName()); } + if(user.getWechatChannels() != null){ + attrsJson.add(WECHAT_CHANNELS,GsonHelper.buildJsonObject("nickname", user.getWechatChannels().getNickname(), "status", user.getWechatChannels().getStatus())); + } + if (!user.getExternalAttrs().isEmpty()) { JsonArray attrsJsonArray = new JsonArray(); for (ExternalAttribute attr : user.getExternalAttrs()) {