From acfc4016c6a010acb71ee7c1896851910634715b Mon Sep 17 00:00:00 2001 From: Binary Wang Date: Mon, 19 Dec 2016 10:16:07 +0800 Subject: [PATCH 1/7] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e3c099c6..3905934a 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ Weixin Java Tools 微信公众号/企业号开发Java SDK ## 版本说明 1. 本项目定为每两个月发布一次正式版,版本号格式为X.X.0(如2.1.0,2.2.0等),月底发布新版本,遇到重大问题需修复会及时提交新版本,欢迎大家随时提交Pull Request; -1. BUG修复和新特性一般会先发布成小版本作为临时版本(如2.0.1,2.0.2等,即尾号不为0,以区别于正式版); +1. BUG修复和新特性一般会先发布成小版本作为临时测试版本(如2.0.1-beta,2.0.2-beta等,即尾号不为0,并添加beta字样,以区别于正式版); 1. 目前最新版本号为 [![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.github.binarywang/weixin-java-parent/badge.svg)](https://maven-badges.herokuapp.com/maven-central/com.github.binarywang/weixin-java-parent) ,也可以通过访问链接 [【公众号】](http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22com.github.binarywang%22%20AND%20a%3A%22weixin-java-mp%22) 、[【企业号】](http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22com.github.binarywang%22%20AND%20a%3A%22weixin-java-cp%22) 分别查看所有最新的版本。 From da5fe8bd9c014fa78c2b15af49662588bd9e40a9 Mon Sep 17 00:00:00 2001 From: Binary Wang Date: Mon, 19 Dec 2016 10:17:50 +0800 Subject: [PATCH 2/7] ignore sonar files --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index fbf348ae..4ee3979b 100644 --- a/.gitignore +++ b/.gitignore @@ -48,3 +48,5 @@ Icon Network Trash Folder Temporary Items .apdisk +/.sonar/ +sonar-project.properties From d18921b36d3002204449d321c9a8e542e7373e84 Mon Sep 17 00:00:00 2001 From: Binary Wang Date: Mon, 19 Dec 2016 10:24:01 +0800 Subject: [PATCH 3/7] release 2.4.4-beta --- pom.xml | 2 +- weixin-java-common/pom.xml | 2 +- weixin-java-cp/pom.xml | 2 +- weixin-java-mp/pom.xml | 2 +- .../java/me/chanjar/weixin/mp/api/impl/WxMpServiceImpl.java | 3 +-- weixin-java-osgi/pom.xml | 2 +- 6 files changed, 6 insertions(+), 7 deletions(-) diff --git a/pom.xml b/pom.xml index ef459ec1..1e6f77db 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ 4.0.0 com.github.binarywang weixin-java-parent - 2.5.0-SNAPSHOT + 2.4.4-beta pom WeiXin Java Tools - Parent 微信公众号、企业号上级POM diff --git a/weixin-java-common/pom.xml b/weixin-java-common/pom.xml index 11d31bdd..25265a91 100644 --- a/weixin-java-common/pom.xml +++ b/weixin-java-common/pom.xml @@ -6,7 +6,7 @@ com.github.binarywang weixin-java-parent - 2.5.0-SNAPSHOT + 2.4.4-beta weixin-java-common diff --git a/weixin-java-cp/pom.xml b/weixin-java-cp/pom.xml index 2398a12c..2e8a5515 100644 --- a/weixin-java-cp/pom.xml +++ b/weixin-java-cp/pom.xml @@ -6,7 +6,7 @@ com.github.binarywang weixin-java-parent - 2.5.0-SNAPSHOT + 2.4.4-beta weixin-java-cp diff --git a/weixin-java-mp/pom.xml b/weixin-java-mp/pom.xml index 7f3a8b39..5c817853 100644 --- a/weixin-java-mp/pom.xml +++ b/weixin-java-mp/pom.xml @@ -6,7 +6,7 @@ com.github.binarywang weixin-java-parent - 2.5.0-SNAPSHOT + 2.4.4-beta weixin-java-mp WeiXin Java Tools - MP diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpServiceImpl.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpServiceImpl.java index 62b363a2..ccb0bd2e 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpServiceImpl.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpServiceImpl.java @@ -422,8 +422,7 @@ public class WxMpServiceImpl implements WxMpService { } if (error.getErrorCode() != 0) { - this.log.error("\n[URL]: {}\n[PARAMS]: {}\n[RESPONSE]: {}", uri, data, - error); + this.log.error("\n[URL]: {}\n[PARAMS]: {}\n[RESPONSE]: {}", uri, data, error); throw new WxErrorException(error); } return null; diff --git a/weixin-java-osgi/pom.xml b/weixin-java-osgi/pom.xml index ec9d1b7d..0c7c1f6d 100644 --- a/weixin-java-osgi/pom.xml +++ b/weixin-java-osgi/pom.xml @@ -6,7 +6,7 @@ com.github.binarywang weixin-java-parent - 2.5.0-SNAPSHOT + 2.4.4-beta weixin-java-osgi From 515ef7cd3a8e965c89201b21127c4186c0c313ee Mon Sep 17 00:00:00 2001 From: Binary Wang Date: Mon, 19 Dec 2016 14:11:16 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=B4=A1=E7=8C=AE?= =?UTF-8?q?=E8=80=85=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pom.xml b/pom.xml index 1e6f77db..5d10472b 100644 --- a/pom.xml +++ b/pom.xml @@ -69,6 +69,11 @@ dongfuqiang1988@163.com https://github.com/johnnytung + + Jonk + aimilin@yeah.net + https://github.com/aimilin6688 + From f221ea3487b451c2619b92e985045c62549ae1ca Mon Sep 17 00:00:00 2001 From: Binary Wang Date: Tue, 20 Dec 2016 16:48:07 +0800 Subject: [PATCH 5/7] =?UTF-8?q?=E5=85=AC=E4=BC=97=E5=B9=B3=E5=8F=B0?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=BE=A4=E5=8F=91=E6=8E=A5=E5=8F=A3=E5=AF=B9?= =?UTF-8?q?=E5=8E=9F=E5=88=9B=E6=A0=A1=E9=AA=8C=E9=80=BB=E8=BE=91=E7=9A=84?= =?UTF-8?q?=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mp/bean/WxMpMassOpenIdsMessage.java | 22 ++++++++--- .../weixin/mp/bean/WxMpMassTagMessage.java | 39 +++++++++++++------ .../mp/bean/result/WxMpMassSendResult.java | 13 +++---- .../WxMpMassOpenIdsMessageGsonAdapter.java | 5 ++- .../util/json/WxMpMassSendResultAdapter.java | 4 +- .../json/WxMpMassTagMessageGsonAdapter.java | 24 ++++++------ 6 files changed, 65 insertions(+), 42 deletions(-) diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpMassOpenIdsMessage.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpMassOpenIdsMessage.java index 982cb78f..e0b33f0d 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpMassOpenIdsMessage.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpMassOpenIdsMessage.java @@ -1,28 +1,29 @@ package me.chanjar.weixin.mp.bean; +import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; + import java.io.Serializable; import java.util.ArrayList; import java.util.List; -import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; - /** * openid列表群发的消息 - * + * * @author chanjarster */ public class WxMpMassOpenIdsMessage implements Serializable { private static final long serialVersionUID = -8022910911104788999L; - + private List toUsers = new ArrayList<>(); private String msgType; private String content; private String mediaId; + private boolean sendIgnoreReprint = false; public WxMpMassOpenIdsMessage() { super(); } - + public String getMsgType() { return this.msgType; } @@ -86,4 +87,15 @@ public class WxMpMassOpenIdsMessage implements Serializable { this.toUsers = toUsers; } + public boolean isSendIgnoreReprint() { + return sendIgnoreReprint; + } + + /** + * + * @param sendIgnoreReprint 文章被判定为转载时,是否继续进行群发操作。 + */ + public void setSendIgnoreReprint(boolean sendIgnoreReprint) { + this.sendIgnoreReprint = sendIgnoreReprint; + } } diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpMassTagMessage.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpMassTagMessage.java index 300b4f90..083e5605 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpMassTagMessage.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpMassTagMessage.java @@ -1,28 +1,29 @@ package me.chanjar.weixin.mp.bean; -import java.io.Serializable; - import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; +import java.io.Serializable; + /** * 按标签群发的消息 - * + * * @author chanjarster */ public class WxMpMassTagMessage implements Serializable { - + private static final long serialVersionUID = -6625914040986749286L; private Long tagId; - private String msgtype; + private String msgType; private String content; private String mediaId; + private boolean sendIgnoreReprint = false; public WxMpMassTagMessage() { super(); } - - public String getMsgtype() { - return this.msgtype; + + public String getMsgType() { + return this.msgType; } /** @@ -35,10 +36,11 @@ public class WxMpMassTagMessage implements Serializable { * {@link me.chanjar.weixin.common.api.WxConsts#MASS_MSG_VOICE} * 如果msgtype和media_id不匹配的话,会返回系统繁忙的错误 * - * @param msgtype + * + * @param msgType 消息类型 */ - public void setMsgtype(String msgtype) { - this.msgtype = msgtype; + public void setMsgType(String msgType) { + this.msgType = msgType; } public String getContent() { @@ -67,10 +69,23 @@ public class WxMpMassTagMessage implements Serializable { /** * 如果不设置则就意味着发给所有用户 - * @param tagId + * + * @param tagId 标签id */ public void setTagId(Long tagId) { this.tagId = tagId; } + public boolean isSendIgnoreReprint() { + return sendIgnoreReprint; + } + + /** + * + * @param sendIgnoreReprint 文章被判定为转载时,是否继续进行群发操作。 + */ + public void setSendIgnoreReprint(boolean sendIgnoreReprint) { + this.sendIgnoreReprint = sendIgnoreReprint; + } + } diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/result/WxMpMassSendResult.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/result/WxMpMassSendResult.java index 0e9a158d..ffb8f026 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/result/WxMpMassSendResult.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/result/WxMpMassSendResult.java @@ -1,5 +1,6 @@ package me.chanjar.weixin.mp.bean.result; +import me.chanjar.weixin.common.util.ToStringUtils; import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; import java.io.Serializable; @@ -7,19 +8,15 @@ import java.io.Serializable; /** *
  * 群发消息一发送就返回的结果
- * 
+ *
  * 真正的群发消息是否发送成功要看
  * http://mp.weixin.qq.com/wiki/index.php?title=高级群发接口#.E4.BA.8B.E4.BB.B6.E6.8E.A8.E9.80.81.E7.BE.A4.E5.8F.91.E7.BB.93.E6.9E.9C
- * 
+ *
  * 
* @author chanjarster * */ public class WxMpMassSendResult implements Serializable { - - /** - * - */ private static final long serialVersionUID = -4816336807575562818L; private String errorCode; private String errorMsg; @@ -64,7 +61,7 @@ public class WxMpMassSendResult implements Serializable { @Override public String toString() { - return "WxMassSendResult [errcode=" + this.errorCode + ", errmsg=" + this.errorMsg + ", msg_id=" + this.msgId + "]"; + return ToStringUtils.toSimpleString(this); } - + } diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpMassOpenIdsMessageGsonAdapter.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpMassOpenIdsMessageGsonAdapter.java index cfb1f374..64dfbb12 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpMassOpenIdsMessageGsonAdapter.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpMassOpenIdsMessageGsonAdapter.java @@ -19,13 +19,13 @@ public class WxMpMassOpenIdsMessageGsonAdapter implements JsonSerializer { @@ -40,5 +38,5 @@ public class WxMpMassSendResultAdapter implements JsonDeserializer { @Override public JsonElement serialize(WxMpMassTagMessage message, Type typeOfSrc, JsonSerializationContext context) { JsonObject messageJson = new JsonObject(); - + JsonObject filter = new JsonObject(); - if(null == message.getTagId()) { + if (null == message.getTagId()) { filter.addProperty("is_to_all", true); } else { filter.addProperty("is_to_all", false); filter.addProperty("tag_id", message.getTagId()); } messageJson.add("filter", filter); - - if (WxConsts.MASS_MSG_NEWS.equals(message.getMsgtype())) { + + if (WxConsts.MASS_MSG_NEWS.equals(message.getMsgType())) { JsonObject sub = new JsonObject(); sub.addProperty("media_id", message.getMediaId()); messageJson.add(WxConsts.MASS_MSG_NEWS, sub); } - if (WxConsts.MASS_MSG_TEXT.equals(message.getMsgtype())) { + if (WxConsts.MASS_MSG_TEXT.equals(message.getMsgType())) { JsonObject sub = new JsonObject(); sub.addProperty("content", message.getContent()); messageJson.add(WxConsts.MASS_MSG_TEXT, sub); } - if (WxConsts.MASS_MSG_VOICE.equals(message.getMsgtype())) { + if (WxConsts.MASS_MSG_VOICE.equals(message.getMsgType())) { JsonObject sub = new JsonObject(); sub.addProperty("media_id", message.getMediaId()); messageJson.add(WxConsts.MASS_MSG_VOICE, sub); } - if (WxConsts.MASS_MSG_IMAGE.equals(message.getMsgtype())) { + if (WxConsts.MASS_MSG_IMAGE.equals(message.getMsgType())) { JsonObject sub = new JsonObject(); sub.addProperty("media_id", message.getMediaId()); messageJson.add(WxConsts.MASS_MSG_IMAGE, sub); } - if (WxConsts.MASS_MSG_VIDEO.equals(message.getMsgtype())) { + if (WxConsts.MASS_MSG_VIDEO.equals(message.getMsgType())) { JsonObject sub = new JsonObject(); sub.addProperty("media_id", message.getMediaId()); messageJson.add(WxConsts.MASS_MSG_VIDEO, sub); } - messageJson.addProperty("msgtype", message.getMsgtype()); + messageJson.addProperty("msgtype", message.getMsgType()); + messageJson.addProperty("send_ignore_reprint", message.isSendIgnoreReprint() ? 0 : 1); return messageJson; } From dc33436d5128c4a116da0d424abb0dc227e72c46 Mon Sep 17 00:00:00 2001 From: Binary Wang Date: Tue, 20 Dec 2016 16:48:26 +0800 Subject: [PATCH 6/7] reformat some code --- .../mp/util/json/WxMpCardGsonAdapter.java | 13 +++------ .../util/json/WxMpCardResultGsonAdapter.java | 15 ++++------ .../weixin/mp/util/json/WxMpGsonBuilder.java | 29 +++---------------- .../mp/util/json/WxMpIndustryGsonAdapter.java | 26 ++++++++--------- .../util/json/WxMpKefuMessageGsonAdapter.java | 2 +- .../json/WxMpMassUploadResultAdapter.java | 4 +-- .../mp/util/json/WxMpMassVideoAdapter.java | 2 -- .../WxMpMaterialNewsArticleGsonAdapter.java | 4 +-- .../json/WxMpOAuth2AccessTokenAdapter.java | 13 +++------ .../json/WxMpSemanticQueryResultAdapter.java | 4 +-- .../json/WxMpTemplateMessageGsonAdapter.java | 1 - .../json/WxMpUserCumulateGsonAdapter.java | 22 +++++--------- .../mp/util/json/WxMpUserGsonAdapter.java | 13 +++------ .../util/json/WxMpUserSummaryGsonAdapter.java | 20 +++++-------- .../mp/util/json/WxQrCodeTicketAdapter.java | 4 +-- 15 files changed, 54 insertions(+), 118 deletions(-) diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpCardGsonAdapter.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpCardGsonAdapter.java index 33148577..022a59f1 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpCardGsonAdapter.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpCardGsonAdapter.java @@ -1,16 +1,11 @@ package me.chanjar.weixin.mp.util.json; -import java.lang.reflect.Type; - -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonParseException; - +import com.google.gson.*; import me.chanjar.weixin.common.util.json.GsonHelper; import me.chanjar.weixin.mp.bean.WxMpCard; +import java.lang.reflect.Type; + /** * Created by YuJian on 15/11/11. * @@ -21,7 +16,7 @@ public class WxMpCardGsonAdapter implements JsonDeserializer { @Override public WxMpCard deserialize(JsonElement jsonElement, Type type, JsonDeserializationContext - jsonDeserializationContext) throws JsonParseException { + jsonDeserializationContext) throws JsonParseException { WxMpCard card = new WxMpCard(); JsonObject jsonObject = jsonElement.getAsJsonObject(); diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpCardResultGsonAdapter.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpCardResultGsonAdapter.java index f595cf7c..9d786649 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpCardResultGsonAdapter.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpCardResultGsonAdapter.java @@ -1,18 +1,13 @@ package me.chanjar.weixin.mp.util.json; -import java.lang.reflect.Type; - -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonParseException; +import com.google.gson.*; import com.google.gson.reflect.TypeToken; - import me.chanjar.weixin.common.util.json.GsonHelper; import me.chanjar.weixin.mp.bean.WxMpCard; import me.chanjar.weixin.mp.bean.result.WxMpCardResult; +import java.lang.reflect.Type; + /** * Created by YuJian on 15/11/11. * @@ -32,8 +27,8 @@ public class WxMpCardResultGsonAdapter implements JsonDeserializer() { - }.getType()); + new TypeToken() { + }.getType()); cardResult.setCard(card); diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpGsonBuilder.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpGsonBuilder.java index 37a39706..286778ad 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpGsonBuilder.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpGsonBuilder.java @@ -2,33 +2,12 @@ package me.chanjar.weixin.mp.util.json; import com.google.gson.Gson; import com.google.gson.GsonBuilder; - -import me.chanjar.weixin.mp.bean.WxMpCard; -import me.chanjar.weixin.mp.bean.kefu.WxMpKefuMessage; -import me.chanjar.weixin.mp.bean.WxMpMassNews; -import me.chanjar.weixin.mp.bean.WxMpMassOpenIdsMessage; -import me.chanjar.weixin.mp.bean.WxMpMassPreviewMessage; -import me.chanjar.weixin.mp.bean.WxMpMassTagMessage; -import me.chanjar.weixin.mp.bean.WxMpMassVideo; -import me.chanjar.weixin.mp.bean.material.WxMpMaterialArticleUpdate; -import me.chanjar.weixin.mp.bean.material.WxMpMaterialNews; +import me.chanjar.weixin.mp.bean.*; import me.chanjar.weixin.mp.bean.datacube.WxDataCubeUserCumulate; import me.chanjar.weixin.mp.bean.datacube.WxDataCubeUserSummary; -import me.chanjar.weixin.mp.bean.material.WxMediaImgUploadResult; -import me.chanjar.weixin.mp.bean.result.WxMpCardResult; -import me.chanjar.weixin.mp.bean.result.WxMpMassSendResult; -import me.chanjar.weixin.mp.bean.result.WxMpMassUploadResult; -import me.chanjar.weixin.mp.bean.material.WxMpMaterialCountResult; -import me.chanjar.weixin.mp.bean.material.WxMpMaterialFileBatchGetResult; -import me.chanjar.weixin.mp.bean.material.WxMpMaterialNewsBatchGetResult; -import me.chanjar.weixin.mp.bean.material.WxMpMaterialUploadResult; -import me.chanjar.weixin.mp.bean.material.WxMpMaterialVideoInfoResult; -import me.chanjar.weixin.mp.bean.result.WxMpOAuth2AccessToken; -import me.chanjar.weixin.mp.bean.result.WxMpQrCodeTicket; -import me.chanjar.weixin.mp.bean.result.WxMpSemanticQueryResult; -import me.chanjar.weixin.mp.bean.result.WxMpUser; -import me.chanjar.weixin.mp.bean.result.WxMpUserBlacklistGetResult; -import me.chanjar.weixin.mp.bean.result.WxMpUserList; +import me.chanjar.weixin.mp.bean.kefu.WxMpKefuMessage; +import me.chanjar.weixin.mp.bean.material.*; +import me.chanjar.weixin.mp.bean.result.*; import me.chanjar.weixin.mp.bean.template.WxMpTemplateIndustry; import me.chanjar.weixin.mp.bean.template.WxMpTemplateMessage; diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpIndustryGsonAdapter.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpIndustryGsonAdapter.java index 68106bb6..eb0972bc 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpIndustryGsonAdapter.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpIndustryGsonAdapter.java @@ -10,10 +10,17 @@ import java.lang.reflect.Type; * @author miller */ public class WxMpIndustryGsonAdapter - implements JsonSerializer, JsonDeserializer { + implements JsonSerializer, JsonDeserializer { + private static WxMpTemplateIndustry.Industry convertFromJson(JsonObject json) { + WxMpTemplateIndustry.Industry industry = new WxMpTemplateIndustry.Industry(); + industry.setFirstClass(GsonHelper.getString(json, "first_class")); + industry.setSecondClass(GsonHelper.getString(json, "second_class")); + return industry; + } + @Override public JsonElement serialize(WxMpTemplateIndustry wxMpIndustry, Type type, - JsonSerializationContext jsonSerializationContext) { + JsonSerializationContext jsonSerializationContext) { JsonObject json = new JsonObject(); json.addProperty("industry_id1", wxMpIndustry.getPrimaryIndustry().getId()); json.addProperty("industry_id2", wxMpIndustry.getSecondIndustry().getId()); @@ -22,22 +29,15 @@ public class WxMpIndustryGsonAdapter @Override public WxMpTemplateIndustry deserialize(JsonElement jsonElement, Type type, - JsonDeserializationContext jsonDeserializationContext) - throws JsonParseException { + JsonDeserializationContext jsonDeserializationContext) + throws JsonParseException { WxMpTemplateIndustry wxMpIndustry = new WxMpTemplateIndustry(); JsonObject primaryIndustry = jsonElement.getAsJsonObject() - .get("primary_industry").getAsJsonObject(); + .get("primary_industry").getAsJsonObject(); wxMpIndustry.setPrimaryIndustry(convertFromJson(primaryIndustry)); JsonObject secondaryIndustry = jsonElement.getAsJsonObject() - .get("secondary_industry").getAsJsonObject(); + .get("secondary_industry").getAsJsonObject(); wxMpIndustry.setSecondIndustry(convertFromJson(secondaryIndustry)); return wxMpIndustry; } - - private static WxMpTemplateIndustry.Industry convertFromJson(JsonObject json) { - WxMpTemplateIndustry.Industry industry = new WxMpTemplateIndustry.Industry(); - industry.setFirstClass(GsonHelper.getString(json, "first_class")); - industry.setSecondClass(GsonHelper.getString(json, "second_class")); - return industry; - } } diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpKefuMessageGsonAdapter.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpKefuMessageGsonAdapter.java index abab87a1..56297ce2 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpKefuMessageGsonAdapter.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpKefuMessageGsonAdapter.java @@ -87,7 +87,7 @@ public class WxMpKefuMessageGsonAdapter implements JsonSerializer { @@ -37,5 +35,5 @@ public class WxMpMassUploadResultAdapter implements JsonDeserializer { diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpMaterialNewsArticleGsonAdapter.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpMaterialNewsArticleGsonAdapter.java index b3791ec9..a74877f1 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpMaterialNewsArticleGsonAdapter.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpMaterialNewsArticleGsonAdapter.java @@ -21,7 +21,7 @@ public class WxMpMaterialNewsArticleGsonAdapter implements JsonSerializer { @Override public WxMpOAuth2AccessToken deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws - JsonParseException { + JsonParseException { WxMpOAuth2AccessToken accessToken = new WxMpOAuth2AccessToken(); JsonObject accessTokenJsonObject = json.getAsJsonObject(); diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpSemanticQueryResultAdapter.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpSemanticQueryResultAdapter.java index 2e354597..247182d2 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpSemanticQueryResultAdapter.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpSemanticQueryResultAdapter.java @@ -15,9 +15,7 @@ import me.chanjar.weixin.mp.bean.result.WxMpSemanticQueryResult; import java.lang.reflect.Type; /** - * * @author Daniel Qian - * */ public class WxMpSemanticQueryResultAdapter implements JsonDeserializer { @@ -46,5 +44,5 @@ public class WxMpSemanticQueryResultAdapter implements JsonDeserializer { private static final FastDateFormat DATE_FORMAT = FastDateFormat - .getInstance("yyyy-MM-dd"); + .getInstance("yyyy-MM-dd"); @Override public WxDataCubeUserCumulate deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { @@ -49,5 +41,5 @@ public class WxMpUserCumulateGsonAdapter implements JsonDeserializer { @Override @@ -43,7 +38,7 @@ public class WxMpUserGsonAdapter implements JsonDeserializer { wxMpUser.setGroupId(GsonHelper.getInteger(o, "groupid")); wxMpUser.setTagIds(GsonHelper.getIntArray(o, "tagid_list")); wxMpUser.setSexId(sexId); - if(new Integer(1).equals(sexId)) { + if (new Integer(1).equals(sexId)) { wxMpUser.setSex("男"); } else if (new Integer(2).equals(sexId)) { wxMpUser.setSex("女"); diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpUserSummaryGsonAdapter.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpUserSummaryGsonAdapter.java index 2e0791f8..b101e01f 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpUserSummaryGsonAdapter.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpUserSummaryGsonAdapter.java @@ -8,19 +8,13 @@ */ package me.chanjar.weixin.mp.util.json; -import java.lang.reflect.Type; -import java.text.ParseException; - -import org.apache.commons.lang3.time.FastDateFormat; - -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonParseException; - +import com.google.gson.*; import me.chanjar.weixin.common.util.json.GsonHelper; import me.chanjar.weixin.mp.bean.datacube.WxDataCubeUserSummary; +import org.apache.commons.lang3.time.FastDateFormat; + +import java.lang.reflect.Type; +import java.text.ParseException; /** * @author Daniel Qian @@ -28,11 +22,11 @@ import me.chanjar.weixin.mp.bean.datacube.WxDataCubeUserSummary; public class WxMpUserSummaryGsonAdapter implements JsonDeserializer { private static final FastDateFormat DATE_FORMAT = FastDateFormat - .getInstance("yyyy-MM-dd"); + .getInstance("yyyy-MM-dd"); @Override public WxDataCubeUserSummary deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) - throws JsonParseException { + throws JsonParseException { WxDataCubeUserSummary summary = new WxDataCubeUserSummary(); JsonObject summaryJsonObject = json.getAsJsonObject(); diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxQrCodeTicketAdapter.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxQrCodeTicketAdapter.java index c08614e5..bd1bbd90 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxQrCodeTicketAdapter.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxQrCodeTicketAdapter.java @@ -15,9 +15,7 @@ import me.chanjar.weixin.mp.bean.result.WxMpQrCodeTicket; import java.lang.reflect.Type; /** - * * @author Daniel Qian - * */ public class WxQrCodeTicketAdapter implements JsonDeserializer { @@ -37,5 +35,5 @@ public class WxQrCodeTicketAdapter implements JsonDeserializer } return ticket; } - + } From 9246243fae40c8e00c7172af8da574d4be520bf3 Mon Sep 17 00:00:00 2001 From: Binary Wang Date: Tue, 20 Dec 2016 16:53:32 +0800 Subject: [PATCH 7/7] fix test code --- .../weixin/mp/api/WxMpMassMessageAPITest.java | 74 +++++++++---------- 1 file changed, 36 insertions(+), 38 deletions(-) diff --git a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/WxMpMassMessageAPITest.java b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/WxMpMassMessageAPITest.java index bab9b7ab..99b7a52c 100644 --- a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/WxMpMassMessageAPITest.java +++ b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/WxMpMassMessageAPITest.java @@ -1,15 +1,6 @@ package me.chanjar.weixin.mp.api; -import java.io.IOException; -import java.io.InputStream; - -import org.testng.Assert; -import org.testng.annotations.DataProvider; -import org.testng.annotations.Guice; -import org.testng.annotations.Test; - import com.google.inject.Inject; - import me.chanjar.weixin.common.api.WxConsts; import me.chanjar.weixin.common.bean.result.WxMediaUploadResult; import me.chanjar.weixin.common.exception.WxErrorException; @@ -19,13 +10,20 @@ import me.chanjar.weixin.mp.bean.WxMpMassTagMessage; import me.chanjar.weixin.mp.bean.WxMpMassVideo; import me.chanjar.weixin.mp.bean.result.WxMpMassSendResult; import me.chanjar.weixin.mp.bean.result.WxMpMassUploadResult; +import org.testng.Assert; +import org.testng.annotations.DataProvider; +import org.testng.annotations.Guice; +import org.testng.annotations.Test; + +import java.io.IOException; +import java.io.InputStream; /** * 测试群发消息 - * @author chanjarster * + * @author chanjarster */ -@Test(groups = "massAPI", dependsOnGroups = { "baseAPI", "mediaAPI", "groupAPI"}) +@Test(groups = "massAPI", dependsOnGroups = {"baseAPI", "mediaAPI", "groupAPI"}) @Guice(modules = ApiTestModule.class) public class WxMpMassMessageAPITest { @@ -36,31 +34,31 @@ public class WxMpMassMessageAPITest { public void testTextMassOpenIdsMessageSend() throws WxErrorException { // 发送群发消息 WxXmlMpInMemoryConfigStorage configProvider = (WxXmlMpInMemoryConfigStorage) this.wxService - .getWxMpConfigStorage(); + .getWxMpConfigStorage(); WxMpMassOpenIdsMessage massMessage = new WxMpMassOpenIdsMessage(); massMessage.setMsgType(WxConsts.MASS_MSG_TEXT); massMessage.setContent("测试群发消息\n欢迎欢迎,热烈欢迎\n换行测试\n超链接:Hello World"); massMessage.getToUsers().add(configProvider.getOpenid()); WxMpMassSendResult massResult = this.wxService - .massOpenIdsMessageSend(massMessage); + .massOpenIdsMessageSend(massMessage); Assert.assertNotNull(massResult); Assert.assertNotNull(massResult.getMsgId()); } - @Test(dataProvider="massMessages") + @Test(dataProvider = "massMessages") public void testMediaMassOpenIdsMessageSend(String massMsgType, - String mediaId) throws WxErrorException { + String mediaId) throws WxErrorException { // 发送群发消息 WxXmlMpInMemoryConfigStorage configProvider = (WxXmlMpInMemoryConfigStorage) this.wxService - .getWxMpConfigStorage(); + .getWxMpConfigStorage(); WxMpMassOpenIdsMessage massMessage = new WxMpMassOpenIdsMessage(); massMessage.setMsgType(massMsgType); massMessage.setMediaId(mediaId); massMessage.getToUsers().add(configProvider.getOpenid()); WxMpMassSendResult massResult = this.wxService - .massOpenIdsMessageSend(massMessage); + .massOpenIdsMessageSend(massMessage); Assert.assertNotNull(massResult); Assert.assertNotNull(massResult.getMsgId()); } @@ -68,28 +66,28 @@ public class WxMpMassMessageAPITest { @Test public void testTextMassGroupMessageSend() throws WxErrorException { WxMpMassTagMessage massMessage = new WxMpMassTagMessage(); - massMessage.setMsgtype(WxConsts.MASS_MSG_TEXT); + massMessage.setMsgType(WxConsts.MASS_MSG_TEXT); massMessage.setContent("测试群发消息\n欢迎欢迎,热烈欢迎\n换行测试\n超链接:Hello World"); massMessage - .setTagId(this.wxService.getUserTagService().tagGet().get(0).getId()); + .setTagId(this.wxService.getUserTagService().tagGet().get(0).getId()); WxMpMassSendResult massResult = this.wxService - .massGroupMessageSend(massMessage); + .massGroupMessageSend(massMessage); Assert.assertNotNull(massResult); Assert.assertNotNull(massResult.getMsgId()); } - @Test(dataProvider="massMessages") + @Test(dataProvider = "massMessages") public void testMediaMassGroupMessageSend(String massMsgType, String mediaId) - throws WxErrorException { + throws WxErrorException { WxMpMassTagMessage massMessage = new WxMpMassTagMessage(); - massMessage.setMsgtype(massMsgType); + massMessage.setMsgType(massMsgType); massMessage.setMediaId(mediaId); massMessage - .setTagId(this.wxService.getUserTagService().tagGet().get(0).getId()); + .setTagId(this.wxService.getUserTagService().tagGet().get(0).getId()); WxMpMassSendResult massResult = this.wxService - .massGroupMessageSend(massMessage); + .massGroupMessageSend(massMessage); Assert.assertNotNull(massResult); Assert.assertNotNull(massResult.getMsgId()); } @@ -102,10 +100,10 @@ public class WxMpMassMessageAPITest { * 视频素材 */ try (InputStream inputStream = ClassLoader - .getSystemResourceAsStream("mm.mp4")) { + .getSystemResourceAsStream("mm.mp4")) { // 上传视频到媒体库 WxMediaUploadResult uploadMediaRes = this.wxService.getMaterialService() - .mediaUpload(WxConsts.MEDIA_VIDEO, WxConsts.FILE_MP4, inputStream); + .mediaUpload(WxConsts.MEDIA_VIDEO, WxConsts.FILE_MP4, inputStream); Assert.assertNotNull(uploadMediaRes); Assert.assertNotNull(uploadMediaRes.getMediaId()); @@ -117,41 +115,41 @@ public class WxMpMassMessageAPITest { WxMpMassUploadResult uploadResult = this.wxService.massVideoUpload(video); Assert.assertNotNull(uploadResult); Assert.assertNotNull(uploadResult.getMediaId()); - messages[0] = new Object[] { WxConsts.MASS_MSG_VIDEO, uploadResult.getMediaId() }; + messages[0] = new Object[]{WxConsts.MASS_MSG_VIDEO, uploadResult.getMediaId()}; } /** * 图片素材 */ try (InputStream inputStream = ClassLoader - .getSystemResourceAsStream("mm.jpeg")) { + .getSystemResourceAsStream("mm.jpeg")) { WxMediaUploadResult uploadMediaRes = this.wxService.getMaterialService() - .mediaUpload(WxConsts.MEDIA_IMAGE, WxConsts.FILE_JPG, inputStream); + .mediaUpload(WxConsts.MEDIA_IMAGE, WxConsts.FILE_JPG, inputStream); Assert.assertNotNull(uploadMediaRes); Assert.assertNotNull(uploadMediaRes.getMediaId()); - messages[1] = new Object[] { WxConsts.MASS_MSG_IMAGE, uploadMediaRes.getMediaId() }; + messages[1] = new Object[]{WxConsts.MASS_MSG_IMAGE, uploadMediaRes.getMediaId()}; } /** * 语音素材 */ try (InputStream inputStream = ClassLoader - .getSystemResourceAsStream("mm.mp3")) { + .getSystemResourceAsStream("mm.mp3")) { WxMediaUploadResult uploadMediaRes = this.wxService.getMaterialService() - .mediaUpload(WxConsts.MEDIA_VOICE, WxConsts.FILE_MP3, inputStream); + .mediaUpload(WxConsts.MEDIA_VOICE, WxConsts.FILE_MP3, inputStream); Assert.assertNotNull(uploadMediaRes); Assert.assertNotNull(uploadMediaRes.getMediaId()); - messages[2] = new Object[] { WxConsts.MASS_MSG_VOICE, uploadMediaRes.getMediaId() }; + messages[2] = new Object[]{WxConsts.MASS_MSG_VOICE, uploadMediaRes.getMediaId()}; } /** * 图文素材 */ try (InputStream inputStream = ClassLoader - .getSystemResourceAsStream("mm.jpeg")) { + .getSystemResourceAsStream("mm.jpeg")) { // 上传照片到媒体库 WxMediaUploadResult uploadMediaRes = this.wxService.getMaterialService() - .mediaUpload(WxConsts.MEDIA_IMAGE, WxConsts.FILE_JPG, inputStream); + .mediaUpload(WxConsts.MEDIA_IMAGE, WxConsts.FILE_JPG, inputStream); Assert.assertNotNull(uploadMediaRes); Assert.assertNotNull(uploadMediaRes.getMediaId()); @@ -174,10 +172,10 @@ public class WxMpMassMessageAPITest { news.addArticle(article2); WxMpMassUploadResult massUploadResult = this.wxService - .massNewsUpload(news); + .massNewsUpload(news); Assert.assertNotNull(massUploadResult); Assert.assertNotNull(uploadMediaRes.getMediaId()); - messages[3] = new Object[] { WxConsts.MASS_MSG_NEWS, massUploadResult.getMediaId() }; + messages[3] = new Object[]{WxConsts.MASS_MSG_NEWS, massUploadResult.getMediaId()}; } return messages;