diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpXmlMessage.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpXmlMessage.java index 90d67b07..5a6a0529 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpXmlMessage.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpXmlMessage.java @@ -8,6 +8,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; +import com.thoughtworks.xstream.annotations.XStreamImplicit; import org.apache.commons.io.IOUtils; import com.thoughtworks.xstream.annotations.XStreamAlias; @@ -247,6 +248,13 @@ public class WxCpXmlMessage implements Serializable { @XStreamConverter(value = XStreamCDataConverter.class) private String telephone; + /** + * 地址. + */ + @XStreamAlias("Address") + @XStreamConverter(value = XStreamCDataConverter.class) + private String address; + /** * 扩展属性. */ @@ -327,17 +335,20 @@ public class WxCpXmlMessage implements Serializable { */ @XStreamAlias("TotalCount") private Integer totalCount; + /** * 过滤. * (过滤是指特定地区、性别的过滤、用户设置拒收的过滤,用户接收已超4条的过滤)后,准备发送的粉丝数,原则上,filterCount = sentCount + errorCount */ @XStreamAlias("FilterCount") private Integer filterCount; + /** * 发送成功的粉丝数. */ @XStreamAlias("SentCount") private Integer sentCount; + /** * 发送失败的粉丝数. */ @@ -411,9 +422,11 @@ public class WxCpXmlMessage implements Serializable { @Data public static class ExtAttr { - @XStreamAlias("Item") + + @XStreamImplicit(itemFieldName = "Item") protected final List items = new ArrayList<>(); + @XStreamAlias("Item") @Data public static class Item { @XStreamAlias("Name") diff --git a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpXmlMessageTest.java b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpXmlMessageTest.java index 68c57c3d..aaf40324 100644 --- a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpXmlMessageTest.java +++ b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpXmlMessageTest.java @@ -117,4 +117,36 @@ public class WxCpXmlMessageTest { assertEquals(wxMessage.getSendPicsInfo().getPicList().get(0).getPicMd5Sum(), "aef52ae501537e552725c5d7f99c1741"); assertEquals(wxMessage.getSendPicsInfo().getPicList().get(1).getPicMd5Sum(), "c4564632a4fab91378c39bea6aad6f9e"); } + + public void testExtAttr() { + + String xml = "" + + " " + + " " + + " 1557241961" + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + "
" + + "
"; + WxCpXmlMessage wxMessage = WxCpXmlMessage.fromXml(xml); + assertEquals(wxMessage.getToUserName(), "w56c9fe3d50ad1ea2"); + assertEquals(wxMessage.getFromUserName(), "sys"); + assertEquals(wxMessage.getCreateTime(), new Long(1557241961)); + assertEquals(wxMessage.getMsgType(), WxConsts.XmlMsgType.EVENT); + assertEquals(wxMessage.getEvent(), "change_contact"); + assertEquals(wxMessage.getChangeType(), "update_user"); + assertEquals(wxMessage.getUserId(), "zhangsan"); + assertNotNull(wxMessage.getExtAttrs()); + assertNotNull(wxMessage.getExtAttrs().getItems()); + assertEquals(wxMessage.getExtAttrs().getItems().size(), 3); + assertEquals(wxMessage.getExtAttrs().getItems().get(0).getName(), "爱好"); + + } }