From 05fd45b853a83d44b336fa69d50bc31d10fd6bc4 Mon Sep 17 00:00:00 2001 From: Scruel Tao Date: Wed, 8 Dec 2021 14:50:44 +0800 Subject: [PATCH] =?UTF-8?q?:new:=20=E8=A1=A5=E5=85=A8=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E8=BE=93=E5=87=BA=E7=AD=89=E7=9B=B8=E5=85=B3=E7=B1=BB=E7=9A=84?= =?UTF-8?q?=20jackson=20=E6=B3=A8=E8=A7=A3=EF=BC=88=E4=B8=BB=E8=A6=81?= =?UTF-8?q?=E6=98=AF=20@JacksonXmlCData=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mp/bean/message/ArticleUrlResult.java | 14 ++- .../weixin/mp/bean/message/HardWare.java | 11 ++- .../weixin/mp/bean/message/ScanCodeInfo.java | 10 ++- .../mp/bean/message/SendLocationInfo.java | 16 +++- .../weixin/mp/bean/message/SendPicsInfo.java | 13 ++- .../mp/bean/message/WxMpXmlMessage.java | 85 +++++++++++++------ .../bean/message/WxMpXmlOutDeviceMessage.java | 84 ++++++++++-------- .../bean/message/WxMpXmlOutImageMessage.java | 8 +- .../bean/message/WxMpXmlOutMusicMessage.java | 20 ++++- .../bean/message/WxMpXmlOutNewsMessage.java | 19 ++++- .../bean/message/WxMpXmlOutTextMessage.java | 8 +- .../WxMpXmlOutTransferKefuMessage.java | 12 ++- .../bean/message/WxMpXmlOutVideoMessage.java | 16 +++- .../bean/message/WxMpXmlOutVoiceMessage.java | 8 +- 14 files changed, 242 insertions(+), 82 deletions(-) diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/ArticleUrlResult.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/ArticleUrlResult.java index e635e7e50..601c18743 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/ArticleUrlResult.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/ArticleUrlResult.java @@ -1,5 +1,8 @@ package me.chanjar.weixin.mp.bean.message; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlCData; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamConverter; import lombok.Data; @@ -13,14 +16,17 @@ import java.util.List; * @author plw on 2021/9/7 10:39 AM. * @version 1.0 */ -@XStreamAlias("ArticleUrlResult") @Data +@XStreamAlias("ArticleUrlResult") +@JacksonXmlRootElement(localName = "ArticleUrlResult") public class ArticleUrlResult implements Serializable { @XStreamAlias("ResultList") + @JacksonXmlProperty(localName = "ResultList") private List resultList; @XStreamAlias("Count") + @JacksonXmlProperty(localName = "Count") private Long count; @Override @@ -28,15 +34,19 @@ public class ArticleUrlResult implements Serializable { return WxMpGsonBuilder.create().toJson(this); } - @XStreamAlias("item") @Data + @XStreamAlias("item") + @JacksonXmlRootElement(localName = "item") public static class Item implements Serializable { @XStreamAlias("ArticleIdx") + @JacksonXmlProperty(localName = "ArticleIdx") private String articleIdx; @XStreamAlias("ArticleUrl") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "ArticleUrl") + @JacksonXmlCData private String articleUrl; @Override diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/HardWare.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/HardWare.java index a75c98e02..2dbd70140 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/HardWare.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/HardWare.java @@ -2,6 +2,9 @@ package me.chanjar.weixin.mp.bean.message; import java.io.Serializable; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlCData; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamConverter; import lombok.Data; @@ -15,8 +18,9 @@ import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; * * @author Binary Wang */ -@XStreamAlias("HardWare") @Data +@XStreamAlias("HardWare") +@JacksonXmlRootElement(localName = "HardWare") public class HardWare implements Serializable { private static final long serialVersionUID = -1295785297354896461L; @@ -25,12 +29,17 @@ public class HardWare implements Serializable { */ @XStreamAlias("MessageView") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "MessageView") + @JacksonXmlCData private String messageView; + /** * 消息点击动作,目前支持ranklist(点击跳转排行榜) */ @XStreamAlias("MessageAction") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "MessageAction") + @JacksonXmlCData private String messageAction; @Override diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/ScanCodeInfo.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/ScanCodeInfo.java index f53b44c41..685290bf3 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/ScanCodeInfo.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/ScanCodeInfo.java @@ -2,6 +2,9 @@ package me.chanjar.weixin.mp.bean.message; import java.io.Serializable; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlCData; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamConverter; import lombok.Data; @@ -15,8 +18,9 @@ import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; * * @author Binary Wang */ -@XStreamAlias("ScanCodeInfo") @Data +@XStreamAlias("ScanCodeInfo") +@JacksonXmlRootElement(localName = "ScanCodeInfo") public class ScanCodeInfo implements Serializable { private static final long serialVersionUID = 4745181270645050122L; @@ -25,6 +29,8 @@ public class ScanCodeInfo implements Serializable { */ @XStreamAlias("ScanType") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "ScanType") + @JacksonXmlCData private String scanType; /** @@ -32,6 +38,8 @@ public class ScanCodeInfo implements Serializable { */ @XStreamAlias("ScanResult") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "ScanResult") + @JacksonXmlCData private String scanResult; @Override diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/SendLocationInfo.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/SendLocationInfo.java index 09f1776bb..6fb469554 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/SendLocationInfo.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/SendLocationInfo.java @@ -2,6 +2,9 @@ package me.chanjar.weixin.mp.bean.message; import java.io.Serializable; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlCData; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamConverter; import lombok.Data; @@ -15,29 +18,40 @@ import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; * * @author Binary Wang */ -@XStreamAlias("SendLocationInfo") @Data +@XStreamAlias("SendLocationInfo") +@JacksonXmlRootElement(localName = "SendLocationInfo") public class SendLocationInfo implements Serializable { private static final long serialVersionUID = 6633214140499161130L; @XStreamAlias("Location_X") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "Location_X") + @JacksonXmlCData private String locationX; @XStreamAlias("Location_Y") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "Location_Y") + @JacksonXmlCData private String locationY; @XStreamAlias("Scale") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "Scale") + @JacksonXmlCData private String scale; @XStreamAlias("Label") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "Label") + @JacksonXmlCData private String label; @XStreamAlias("Poiname") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "Poiname") + @JacksonXmlCData private String poiName; @Override diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/SendPicsInfo.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/SendPicsInfo.java index a01e66596..c5533328c 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/SendPicsInfo.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/SendPicsInfo.java @@ -4,6 +4,9 @@ import java.io.Serializable; import java.util.ArrayList; import java.util.List; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlCData; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamConverter; import lombok.Data; @@ -17,15 +20,18 @@ import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; * * @author Binary Wang */ -@XStreamAlias("SendPicsInfo") @Data +@XStreamAlias("SendPicsInfo") +@JacksonXmlRootElement(localName = "SendPicsInfo") public class SendPicsInfo implements Serializable { private static final long serialVersionUID = -4572837013294199227L; @XStreamAlias("PicList") + @JacksonXmlProperty(localName = "PicList") protected final List picList = new ArrayList<>(); @XStreamAlias("Count") + @JacksonXmlProperty(localName = "Count") private Long count; @Override @@ -33,13 +39,16 @@ public class SendPicsInfo implements Serializable { return WxMpGsonBuilder.create().toJson(this); } - @XStreamAlias("item") @Data + @XStreamAlias("item") + @JacksonXmlRootElement(localName = "item") public static class Item implements Serializable { private static final long serialVersionUID = 7706235740094081194L; @XStreamAlias("PicMd5Sum") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "PicMd5Sum") + @JacksonXmlCData private String picMd5Sum; @Override diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlMessage.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlMessage.java index f85ee5c6a..6a1d6c169 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlMessage.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlMessage.java @@ -1,5 +1,6 @@ package me.chanjar.weixin.mp.bean.message; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlCData; import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement; import com.thoughtworks.xstream.annotations.XStreamAlias; @@ -49,13 +50,15 @@ public class WxMpXmlMessage implements Serializable { /////////////////////// @XStreamAlias("ToUserName") - @JacksonXmlProperty(localName = "ToUserName") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "ToUserName") + @JacksonXmlCData private String toUser; @XStreamAlias("FromUserName") - @JacksonXmlProperty(localName = "FromUserName") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "FromUserName") + @JacksonXmlCData private String fromUser; @XStreamAlias("CreateTime") @@ -63,13 +66,15 @@ public class WxMpXmlMessage implements Serializable { private Long createTime; @XStreamAlias("MsgType") - @JacksonXmlProperty(localName = "MsgType") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "MsgType") + @JacksonXmlCData private String msgType; @XStreamAlias("Content") - @JacksonXmlProperty(localName = "Content") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "Content") + @JacksonXmlCData private String content; @XStreamAlias("MenuId") @@ -81,23 +86,27 @@ public class WxMpXmlMessage implements Serializable { private Long msgId; @XStreamAlias("PicUrl") - @JacksonXmlProperty(localName = "PicUrl") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "PicUrl") + @JacksonXmlCData private String picUrl; @XStreamAlias("MediaId") - @JacksonXmlProperty(localName = "MediaId") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "MediaId") + @JacksonXmlCData private String mediaId; @XStreamAlias("Format") - @JacksonXmlProperty(localName = "Format") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "Format") + @JacksonXmlCData private String format; @XStreamAlias("ThumbMediaId") - @JacksonXmlProperty(localName = "ThumbMediaId") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "ThumbMediaId") + @JacksonXmlCData private String thumbMediaId; @XStreamAlias("Location_X") @@ -113,38 +122,45 @@ public class WxMpXmlMessage implements Serializable { private Double scale; @XStreamAlias("Label") - @JacksonXmlProperty(localName = "Label") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "Label") + @JacksonXmlCData private String label; @XStreamAlias("Title") - @JacksonXmlProperty(localName = "Title") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "Title") + @JacksonXmlCData private String title; @XStreamAlias("Description") - @JacksonXmlProperty(localName = "Description") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "Description") + @JacksonXmlCData private String description; @XStreamAlias("Url") - @JacksonXmlProperty(localName = "Url") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "Url") + @JacksonXmlCData private String url; @XStreamAlias("Event") - @JacksonXmlProperty(localName = "Event") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "Event") + @JacksonXmlCData private String event; @XStreamAlias("EventKey") - @JacksonXmlProperty(localName = "EventKey") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "EventKey") + @JacksonXmlCData private String eventKey; @XStreamAlias("Ticket") - @JacksonXmlProperty(localName = "Ticket") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "Ticket") + @JacksonXmlCData private String ticket; @XStreamAlias("Latitude") @@ -165,8 +181,9 @@ public class WxMpXmlMessage implements Serializable { private String recognition; @XStreamAlias("UnionId") - @JacksonXmlProperty(localName = "UnionId") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "UnionId") + @JacksonXmlCData private String unionId; /////////////////////////////////////// @@ -176,8 +193,9 @@ public class WxMpXmlMessage implements Serializable { * 群发的结果. */ @XStreamAlias("Status") - @JacksonXmlProperty(localName = "Status") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "Status") + @JacksonXmlCData private String status; /** * group_id下粉丝数;或者openid_list中的粉丝数. @@ -232,13 +250,15 @@ public class WxMpXmlMessage implements Serializable { /////////////////////////////////////// @XStreamAlias("CardId") - @JacksonXmlProperty(localName = "CardId") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "CardId") + @JacksonXmlCData private String cardId; @XStreamAlias("FriendUserName") - @JacksonXmlProperty(localName = "FriendUserName") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "FriendUserName") + @JacksonXmlCData private String friendUserName; /** @@ -249,13 +269,15 @@ public class WxMpXmlMessage implements Serializable { private Integer isGiveByFriend; @XStreamAlias("UserCardCode") - @JacksonXmlProperty(localName = "UserCardCode") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "UserCardCode") + @JacksonXmlCData private String userCardCode; @XStreamAlias("OldUserCardCode") - @JacksonXmlProperty(localName = "OldUserCardCode") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "OldUserCardCode") + @JacksonXmlCData private String oldUserCardCode; @XStreamAlias("OuterId") @@ -570,8 +592,9 @@ public class WxMpXmlMessage implements Serializable { * 订单ID. */ @XStreamAlias("OrderId") - @JacksonXmlProperty(localName = "OrderId") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "OrderId") + @JacksonXmlCData private String orderId; /** @@ -585,16 +608,18 @@ public class WxMpXmlMessage implements Serializable { * 商品ID. */ @XStreamAlias("ProductId") - @JacksonXmlProperty(localName = "ProductId") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "ProductId") + @JacksonXmlCData private String productId; /** * 商品SKU信息. */ @XStreamAlias("SkuInfo") - @JacksonXmlProperty(localName = "SkuInfo") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "SkuInfo") + @JacksonXmlCData private String skuInfo; /////////////////////////////////////// @@ -605,8 +630,9 @@ public class WxMpXmlMessage implements Serializable { * 目前为"公众账号原始ID" */ @XStreamAlias("DeviceType") - @JacksonXmlProperty(localName = "DeviceType") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "DeviceType") + @JacksonXmlCData private String deviceType; /** @@ -614,8 +640,9 @@ public class WxMpXmlMessage implements Serializable { * 第三方提供 */ @XStreamAlias("DeviceID") - @JacksonXmlProperty(localName = "DeviceID") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "DeviceID") + @JacksonXmlCData private String deviceId; /** @@ -623,16 +650,18 @@ public class WxMpXmlMessage implements Serializable { * 因此响应中该字段第三方需要原封不变的带回 */ @XStreamAlias("SessionID") - @JacksonXmlProperty(localName = "SessionID") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "SessionID") + @JacksonXmlCData private String sessionId; /** * 微信用户账号的OpenID. */ @XStreamAlias("OpenID") - @JacksonXmlProperty(localName = "OpenID") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "OpenID") + @JacksonXmlCData private String openId; @XStreamAlias("HardWare") diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlOutDeviceMessage.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlOutDeviceMessage.java index b32935a10..d8b41bb24 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlOutDeviceMessage.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlOutDeviceMessage.java @@ -1,36 +1,48 @@ -package me.chanjar.weixin.mp.bean.message; - -import com.thoughtworks.xstream.annotations.XStreamAlias; -import com.thoughtworks.xstream.annotations.XStreamConverter; - -import lombok.Data; -import lombok.EqualsAndHashCode; -import me.chanjar.weixin.common.api.WxConsts; -import me.chanjar.weixin.common.util.xml.XStreamCDataConverter; - -@XStreamAlias("xml") -@Data -@EqualsAndHashCode(callSuper = true) -public class WxMpXmlOutDeviceMessage extends WxMpXmlOutMessage { - private static final long serialVersionUID = -3093843149649157587L; - - @XStreamAlias("DeviceType") - @XStreamConverter(value = XStreamCDataConverter.class) - private String deviceType; - - @XStreamAlias("DeviceID") - @XStreamConverter(value = XStreamCDataConverter.class) - private String deviceId; - - @XStreamAlias("Content") - @XStreamConverter(value = XStreamCDataConverter.class) - private String content; - - @XStreamAlias("SessionID") - @XStreamConverter(value = XStreamCDataConverter.class) - private String sessionId; - - public WxMpXmlOutDeviceMessage() { - this.msgType = WxConsts.XmlMsgType.DEVICE_TEXT; - } -} +package me.chanjar.weixin.mp.bean.message; + +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlCData; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement; +import com.thoughtworks.xstream.annotations.XStreamAlias; +import com.thoughtworks.xstream.annotations.XStreamConverter; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import me.chanjar.weixin.common.api.WxConsts; +import me.chanjar.weixin.common.util.xml.XStreamCDataConverter; + +@Data +@XStreamAlias("xml") +@JacksonXmlRootElement(localName = "xml") +@EqualsAndHashCode(callSuper = true) +public class WxMpXmlOutDeviceMessage extends WxMpXmlOutMessage { + private static final long serialVersionUID = -3093843149649157587L; + + @XStreamAlias("DeviceType") + @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "DeviceType") + @JacksonXmlCData + private String deviceType; + + @XStreamAlias("DeviceID") + @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "DeviceID") + @JacksonXmlCData + private String deviceId; + + @XStreamAlias("Content") + @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "Content") + @JacksonXmlCData + private String content; + + @XStreamAlias("SessionID") + @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "SessionID") + @JacksonXmlCData + private String sessionId; + + public WxMpXmlOutDeviceMessage() { + this.msgType = WxConsts.XmlMsgType.DEVICE_TEXT; + } +} diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlOutImageMessage.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlOutImageMessage.java index dbb0ab90f..d2328890e 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlOutImageMessage.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlOutImageMessage.java @@ -1,5 +1,8 @@ package me.chanjar.weixin.mp.bean.message; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlCData; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamConverter; import lombok.Data; @@ -7,14 +10,17 @@ import lombok.EqualsAndHashCode; import me.chanjar.weixin.common.api.WxConsts; import me.chanjar.weixin.common.util.xml.XStreamMediaIdConverter; -@XStreamAlias("xml") @Data +@XStreamAlias("xml") +@JacksonXmlRootElement(localName = "xml") @EqualsAndHashCode(callSuper = true) public class WxMpXmlOutImageMessage extends WxMpXmlOutMessage { private static final long serialVersionUID = -2684778597067990723L; @XStreamAlias("Image") @XStreamConverter(value = XStreamMediaIdConverter.class) + @JacksonXmlProperty(localName = "Image") + @JacksonXmlCData private String mediaId; public WxMpXmlOutImageMessage() { diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlOutMusicMessage.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlOutMusicMessage.java index 1124f4585..240b979fa 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlOutMusicMessage.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlOutMusicMessage.java @@ -1,5 +1,8 @@ package me.chanjar.weixin.mp.bean.message; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlCData; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamConverter; import lombok.Data; @@ -9,42 +12,55 @@ import me.chanjar.weixin.common.util.xml.XStreamCDataConverter; import java.io.Serializable; -@XStreamAlias("xml") @Data +@XStreamAlias("xml") +@JacksonXmlRootElement(localName = "xml") @EqualsAndHashCode(callSuper = true) public class WxMpXmlOutMusicMessage extends WxMpXmlOutMessage { private static final long serialVersionUID = -4159937804975448945L; @XStreamAlias("Music") + @JacksonXmlProperty(localName = "Music") protected final Music music = new Music(); public WxMpXmlOutMusicMessage() { this.msgType = WxConsts.XmlMsgType.MUSIC; } - @XStreamAlias("Music") @Data + @XStreamAlias("Music") + @JacksonXmlRootElement(localName = "Music") public static class Music implements Serializable { private static final long serialVersionUID = -5492592401691895334L; @XStreamAlias("Title") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "Title") + @JacksonXmlCData private String title; @XStreamAlias("Description") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "Description") + @JacksonXmlCData private String description; @XStreamAlias("ThumbMediaId") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "ThumbMediaId") + @JacksonXmlCData private String thumbMediaId; @XStreamAlias("MusicUrl") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "MusicUrl") + @JacksonXmlCData private String musicUrl; @XStreamAlias("HQMusicUrl") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "HQMusicUrl") + @JacksonXmlCData private String hqMusicUrl; } diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlOutNewsMessage.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlOutNewsMessage.java index 00f8d70c8..192b24a35 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlOutNewsMessage.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlOutNewsMessage.java @@ -4,6 +4,9 @@ import java.io.Serializable; import java.util.ArrayList; import java.util.List; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlCData; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamConverter; import lombok.Data; @@ -15,8 +18,9 @@ import me.chanjar.weixin.common.util.xml.XStreamCDataConverter; * 被动回复的图文消息xml. * @author chanjarster */ -@XStreamAlias("xml") @Data +@XStreamAlias("xml") +@JacksonXmlRootElement(localName = "xml") @EqualsAndHashCode(callSuper = true) public class WxMpXmlOutNewsMessage extends WxMpXmlOutMessage { private static final long serialVersionUID = -4604402850905714772L; @@ -26,12 +30,14 @@ public class WxMpXmlOutNewsMessage extends WxMpXmlOutMessage { * 注意,如果图文数超过限制,则将只发限制内的条数 */ @XStreamAlias("Articles") + @JacksonXmlProperty(localName = "Articles") protected final List articles = new ArrayList<>(); /** * 图文消息个数. * 当用户发送文本、图片、视频、图文、地理位置这五种消息时,开发者只能回复1条图文消息;其余场景最多可回复8条图文消息 */ @XStreamAlias("ArticleCount") + @JacksonXmlProperty(localName = "ArticleCount") protected int articleCount; public WxMpXmlOutNewsMessage() { @@ -43,8 +49,9 @@ public class WxMpXmlOutNewsMessage extends WxMpXmlOutMessage { this.articleCount = this.articles.size(); } - @XStreamAlias("item") @Data + @XStreamAlias("item") + @JacksonXmlRootElement(localName = "item") public static class Item implements Serializable { private static final long serialVersionUID = -4971456355028904754L; @@ -53,6 +60,8 @@ public class WxMpXmlOutNewsMessage extends WxMpXmlOutMessage { */ @XStreamAlias("Title") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "Title") + @JacksonXmlCData private String title; /** @@ -60,6 +69,8 @@ public class WxMpXmlOutNewsMessage extends WxMpXmlOutMessage { */ @XStreamAlias("Description") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "Description") + @JacksonXmlCData private String description; /** @@ -68,6 +79,8 @@ public class WxMpXmlOutNewsMessage extends WxMpXmlOutMessage { */ @XStreamAlias("PicUrl") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "PicUrl") + @JacksonXmlCData private String picUrl; /** @@ -75,6 +88,8 @@ public class WxMpXmlOutNewsMessage extends WxMpXmlOutMessage { */ @XStreamAlias("Url") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "Url") + @JacksonXmlCData private String url; } diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlOutTextMessage.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlOutTextMessage.java index cbaa05abc..b9c7747b0 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlOutTextMessage.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlOutTextMessage.java @@ -1,5 +1,8 @@ package me.chanjar.weixin.mp.bean.message; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlCData; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamConverter; import lombok.Data; @@ -7,14 +10,17 @@ import lombok.EqualsAndHashCode; import me.chanjar.weixin.common.api.WxConsts; import me.chanjar.weixin.common.util.xml.XStreamCDataConverter; -@XStreamAlias("xml") @Data +@XStreamAlias("xml") +@JacksonXmlRootElement(localName = "xml") @EqualsAndHashCode(callSuper = true) public class WxMpXmlOutTextMessage extends WxMpXmlOutMessage { private static final long serialVersionUID = -3972786455288763361L; @XStreamAlias("Content") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "Content") + @JacksonXmlCData private String content; public WxMpXmlOutTextMessage() { diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlOutTransferKefuMessage.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlOutTransferKefuMessage.java index 5b0857830..1d7073861 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlOutTransferKefuMessage.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlOutTransferKefuMessage.java @@ -1,5 +1,8 @@ package me.chanjar.weixin.mp.bean.message; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlCData; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamConverter; import lombok.Data; @@ -9,26 +12,31 @@ import me.chanjar.weixin.common.util.xml.XStreamCDataConverter; import java.io.Serializable; -@XStreamAlias("xml") @Data +@XStreamAlias("xml") +@JacksonXmlRootElement(localName = "xml") @EqualsAndHashCode(callSuper = true) public class WxMpXmlOutTransferKefuMessage extends WxMpXmlOutMessage { private static final long serialVersionUID = 1850903037285841322L; @XStreamAlias("TransInfo") + @JacksonXmlProperty(localName = "TransInfo") protected TransInfo transInfo; public WxMpXmlOutTransferKefuMessage() { this.msgType = WxConsts.KefuMsgType.TRANSFER_CUSTOMER_SERVICE; } - @XStreamAlias("TransInfo") @Data + @XStreamAlias("TransInfo") + @JacksonXmlRootElement(localName = "TransInfo") public static class TransInfo implements Serializable { private static final long serialVersionUID = -6317885617135706056L; @XStreamAlias("KfAccount") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "KfAccount") + @JacksonXmlCData private String kfAccount; } diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlOutVideoMessage.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlOutVideoMessage.java index 7f43a5680..101fa9605 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlOutVideoMessage.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlOutVideoMessage.java @@ -1,5 +1,8 @@ package me.chanjar.weixin.mp.bean.message; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlCData; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamConverter; import lombok.Data; @@ -9,34 +12,43 @@ import me.chanjar.weixin.common.util.xml.XStreamCDataConverter; import java.io.Serializable; -@XStreamAlias("xml") @Data +@XStreamAlias("xml") +@JacksonXmlRootElement(localName = "xml") @EqualsAndHashCode(callSuper = true) public class WxMpXmlOutVideoMessage extends WxMpXmlOutMessage { private static final long serialVersionUID = 1745902309380113978L; @XStreamAlias("Video") + @JacksonXmlProperty(localName = "Video") protected final Video video = new Video(); public WxMpXmlOutVideoMessage() { this.msgType = WxConsts.XmlMsgType.VIDEO; } - @XStreamAlias("Video") @Data + @XStreamAlias("Video") + @JacksonXmlRootElement(localName = "Video") public static class Video implements Serializable { private static final long serialVersionUID = -6445448977569651183L; @XStreamAlias("MediaId") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "MediaId") + @JacksonXmlCData private String mediaId; @XStreamAlias("Title") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "Title") + @JacksonXmlCData private String title; @XStreamAlias("Description") @XStreamConverter(value = XStreamCDataConverter.class) + @JacksonXmlProperty(localName = "Description") + @JacksonXmlCData private String description; } diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlOutVoiceMessage.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlOutVoiceMessage.java index bd91b861e..f8330efd7 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlOutVoiceMessage.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlOutVoiceMessage.java @@ -1,5 +1,8 @@ package me.chanjar.weixin.mp.bean.message; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlCData; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamConverter; import lombok.Data; @@ -7,14 +10,17 @@ import lombok.EqualsAndHashCode; import me.chanjar.weixin.common.api.WxConsts; import me.chanjar.weixin.common.util.xml.XStreamMediaIdConverter; -@XStreamAlias("xml") @Data +@XStreamAlias("xml") +@JacksonXmlRootElement(localName = "xml") @EqualsAndHashCode(callSuper = true) public class WxMpXmlOutVoiceMessage extends WxMpXmlOutMessage { private static final long serialVersionUID = 240367390249860551L; @XStreamAlias("Voice") @XStreamConverter(value = XStreamMediaIdConverter.class) + @JacksonXmlProperty(localName = "Voice") + @JacksonXmlCData private String mediaId; public WxMpXmlOutVoiceMessage() {