|
|
|
|
@ -1,235 +0,0 @@
|
|
|
|
|
package com.xcs.wx.domain.bo;
|
|
|
|
|
|
|
|
|
|
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
|
|
|
|
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
|
|
|
|
|
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
|
|
|
|
|
import lombok.Data;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* MsgBO类,作为一种业务对象(BO,Business Object),主要用于在Java对象和XML数据格式之间进行转换以及处理微信消息相关的数据结构,
|
|
|
|
|
* 通过一系列的Jackson注解来定义XML元素与Java类属性之间的映射关系,由作者xcs在2024年01月16日14时59分创建。
|
|
|
|
|
*
|
|
|
|
|
* @author xcs
|
|
|
|
|
* @date 2024年01月16日 14时59分
|
|
|
|
|
**/
|
|
|
|
|
@Data
|
|
|
|
|
// 使用Lombok的 @Data 注解,会自动为类生成常用的方法,如Getter、Setter、toString、equals和hashCode等方法,
|
|
|
|
|
// 方便在其他代码中对类中的属性进行访问、赋值以及进行对象的比较、打印等操作,减少了手动编写这些常规方法的代码量。
|
|
|
|
|
|
|
|
|
|
@JsonIgnoreProperties(ignoreUnknown = true)
|
|
|
|
|
// 这个注解用于告诉Jackson(一个常用的JSON处理库,在这里也用于处理XML与Java对象的转换)在进行XML序列化和反序列化时,
|
|
|
|
|
// 忽略那些在XML数据中存在但在Java对象中没有对应属性的字段,避免因未知字段而导致的反序列化错误,增强程序处理不同来源XML数据的兼容性和容错性。
|
|
|
|
|
|
|
|
|
|
@JacksonXmlRootElement(localName = "msg")
|
|
|
|
|
// 该注解用于指定在将Java对象转换为XML格式时,整个XML文档的根元素名称为 "msg",以此确定生成的XML结构的顶层元素名称,
|
|
|
|
|
// 便于符合特定的XML数据格式要求,从而与外部系统(可能是微信相关的服务端等)进行基于XML的数据交互。
|
|
|
|
|
|
|
|
|
|
public class MsgBO {
|
|
|
|
|
|
|
|
|
|
@JacksonXmlProperty(localName = "img")
|
|
|
|
|
public Img img;
|
|
|
|
|
// 使用 @JacksonXmlProperty 注解来指定该属性在XML格式中对应的元素名称为 "img",表示在XML序列化和反序列化时,
|
|
|
|
|
// 这个属性与名为 "img" 的XML元素相关联,Img是一个内部静态类,用于进一步封装与图片相关的详细信息。
|
|
|
|
|
|
|
|
|
|
@JacksonXmlProperty(localName = "emoji")
|
|
|
|
|
private Emoji emoji;
|
|
|
|
|
// 同样通过 @JacksonXmlProperty 注解,将该属性与XML中的 "emoji" 元素相对应,Emoji也是内部静态类,
|
|
|
|
|
// 用于承载与表情符号(Emoji)相关的各种详细属性信息,方便处理微信消息中涉及表情的相关数据。
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Img内部静态类,用于表示与 "img" XML元素对应的图片相关详细信息的数据结构,
|
|
|
|
|
* 包含了图片在微信消息中涉及的加密、尺寸、链接、校验等多方面的属性。
|
|
|
|
|
*/
|
|
|
|
|
@Data
|
|
|
|
|
@JsonIgnoreProperties(ignoreUnknown = true)
|
|
|
|
|
public static class Img {
|
|
|
|
|
@JacksonXmlProperty(isAttribute = true, localName = "aeskey")
|
|
|
|
|
public String aesKey;
|
|
|
|
|
// 使用 @JacksonXmlProperty 注解,并设置 isAttribute = true,表示这个属性对应的是XML元素的属性(而不是子元素),
|
|
|
|
|
// 其对应的XML元素 "img" 的属性名为 "aeskey",通常用于存储图片加密相关的密钥信息,比如用于解密图片数据的对称密钥等。
|
|
|
|
|
|
|
|
|
|
@JacksonXmlProperty(isAttribute = true, localName = "encryver")
|
|
|
|
|
public String encryVer;
|
|
|
|
|
// 同样对应 "img" 元素的属性 "encryver",可能表示图片加密的版本信息,用于区分不同加密算法或加密参数设置下的图片加密情况。
|
|
|
|
|
|
|
|
|
|
@JacksonXmlProperty(isAttribute = true, localName = "cdnthumbaeskey")
|
|
|
|
|
public String cdnThumbAesKey;
|
|
|
|
|
// 对应 "img" 元素的属性 "cdnthumbaeskey",一般是与图片缩略图(在内容分发网络CDN上的缩略图)加密相关的密钥,用于处理缩略图的解密操作等。
|
|
|
|
|
|
|
|
|
|
@JacksonXmlProperty(isAttribute = true, localName = "cdnthumburl")
|
|
|
|
|
public String cdnThumbUrl;
|
|
|
|
|
// 关联 "img" 元素的属性 "cdnthumburl",用于存储图片缩略图在CDN上的网络地址,方便在界面上展示图片的缩略图时获取相应资源。
|
|
|
|
|
|
|
|
|
|
@JacksonXmlProperty(isAttribute = true, localName = "cdnthumblength")
|
|
|
|
|
public int cdnThumbLength;
|
|
|
|
|
// 对应 "img" 元素的属性 "cdnthumblength",表示图片缩略图的数据长度,可用于验证数据完整性或者预估加载时间等操作。
|
|
|
|
|
|
|
|
|
|
@JacksonXmlProperty(isAttribute = true, localName = "cdnthumbheight")
|
|
|
|
|
public int cdnThumbHeight;
|
|
|
|
|
// 关联 "img" 元素的属性 "cdnthumbheight",用于存储图片缩略图的高度信息,以像素等单位表示,便于在展示等场景中进行布局和显示控制。
|
|
|
|
|
|
|
|
|
|
@JacksonXmlProperty(isAttribute = true, localName = "cdnthumbwidth")
|
|
|
|
|
public int cdnThumbWidth;
|
|
|
|
|
// 对应 "img" 元素的属性 "cdnthumbwidth",表示图片缩略图的宽度信息,同样以像素等单位计量,用于图片展示相关的尺寸适配等操作。
|
|
|
|
|
|
|
|
|
|
@JacksonXmlProperty(isAttribute = true,localName = "cdnmidheight")
|
|
|
|
|
public int cdnMidHeight;
|
|
|
|
|
// 对应 "img" 元素的属性 "cdnmidheight",可能表示图片中等尺寸版本(相对于缩略图和高清图而言)的高度信息,用于不同显示需求下的图片展示操作。
|
|
|
|
|
|
|
|
|
|
@JacksonXmlProperty(isAttribute = true, localName = "cdnmidwidth")
|
|
|
|
|
public int cdnMidWidth;
|
|
|
|
|
// 关联 "img" 元素的属性 "cdnmidwidth",存储图片中等尺寸版本的宽度信息,配合高度信息用于图片的展示和布局调整等。
|
|
|
|
|
|
|
|
|
|
@JacksonXmlProperty(isAttribute = true, localName = "cdnhdheight")
|
|
|
|
|
public int cdnHdHeight;
|
|
|
|
|
// 对应 "img" 元素的属性 "cdnhdheight",用于存储图片高清版本的高度信息,在需要高质量图片展示的场景下使用。
|
|
|
|
|
|
|
|
|
|
@JacksonXmlProperty(isAttribute = true, localName = "cdnhdwidth")
|
|
|
|
|
public int cdnHdWidth;
|
|
|
|
|
// 关联 "img" 元素的属性 "cdnhdwidth",表示图片高清版本的宽度信息,与高度信息共同确定高清图片的尺寸,便于正确展示高质量图片。
|
|
|
|
|
|
|
|
|
|
@JacksonXmlProperty(isAttribute = true, localName = "cdnmidimgurl")
|
|
|
|
|
public String cdnMidImgUrl;
|
|
|
|
|
// 对应 "img" 元素的属性 "cdnmidimgurl",用于存储图片中等尺寸版本的网络地址,方便根据不同的显示需求加载相应尺寸的图片资源。
|
|
|
|
|
|
|
|
|
|
@JacksonXmlProperty(isAttribute = true, localName = "length")
|
|
|
|
|
public int length;
|
|
|
|
|
// 关联 "img" 元素的属性 "length",表示图片原始数据的长度,用于数据完整性校验、资源管理等操作,比如判断图片大小是否符合预期等。
|
|
|
|
|
|
|
|
|
|
@JacksonXmlProperty(isAttribute = true, localName = "md5")
|
|
|
|
|
public String md5;
|
|
|
|
|
// 对应 "img" 元素的属性 "md5",存储图片的MD5校验和信息,用于验证图片数据在传输、存储过程中是否被篡改,确保数据的准确性和完整性。
|
|
|
|
|
|
|
|
|
|
@JacksonXmlProperty(isAttribute = true, localName = "hevc_mid_size")
|
|
|
|
|
public int hevcMidSize;
|
|
|
|
|
// 对应 "img" 元素的属性 "hevc_mid_size",可能与图片采用高效视频编码(HEVC)格式下的中等尺寸相关的一些大小参数有关,
|
|
|
|
|
// 比如文件大小、编码后的数据量等,具体取决于业务中对图片编码相关属性的定义和使用场景。
|
|
|
|
|
|
|
|
|
|
@JacksonXmlProperty(isAttribute = true, localName = "originsourcemd5")
|
|
|
|
|
public String originSourceMd5;
|
|
|
|
|
// 关联 "img" 元素的属性 "originsourcemd5",可能是图片原始数据源的MD5校验和,用于进一步追溯和验证图片来源数据的准确性等情况。
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Emoji内部静态类,用于表示与 "emoji" XML元素对应的表情符号(Emoji)相关详细信息的数据结构,
|
|
|
|
|
* 涵盖了表情符号从发送者、接收者、类型到各种展示、加密、关联链接等多方面的属性内容。
|
|
|
|
|
*/
|
|
|
|
|
@Data
|
|
|
|
|
@JsonIgnoreProperties(ignoreUnknown = true)
|
|
|
|
|
public static class Emoji {
|
|
|
|
|
|
|
|
|
|
@JacksonXmlProperty(isAttribute = true, localName = "fromusername")
|
|
|
|
|
private String fromUsername;
|
|
|
|
|
// 使用 @JacksonXmlProperty 注解并设置为属性映射,对应 "emoji" 元素的属性 "fromusername",用于存储发送表情符号的用户的用户名信息,
|
|
|
|
|
// 便于明确表情的发送来源,比如在聊天记录中追溯是哪位用户发送了该表情。
|
|
|
|
|
|
|
|
|
|
@JacksonXmlProperty(isAttribute = true, localName = "tousername")
|
|
|
|
|
private String toUsername;
|
|
|
|
|
// 对应 "emoji" 元素的属性 "tousername",用于存储表情符号接收者的用户名信息,确定表情发送的目标对象,
|
|
|
|
|
// 在多用户聊天场景等情况下有助于区分不同接收者收到的表情情况。
|
|
|
|
|
|
|
|
|
|
@JacksonXmlProperty(isAttribute = true, localName = "type")
|
|
|
|
|
private String type;
|
|
|
|
|
// 关联 "emoji" 元素的属性 "type",用于表示表情符号的类型,不同的类型可能对应不同的表情图案、动画效果或者业务含义等,
|
|
|
|
|
// 例如静态表情、动态表情等不同分类,具体由业务中对表情类型的定义来确定。
|
|
|
|
|
|
|
|
|
|
@JacksonXmlProperty(isAttribute = true, localName = "idbuffer")
|
|
|
|
|
private String idBuffer;
|
|
|
|
|
// 对应 "emoji" 元素的属性 "idbuffer",可能是表情符号在系统中的唯一标识缓冲区相关信息,用于在内部对表情进行区分和管理,
|
|
|
|
|
// 比如在表情资源查找、匹配等操作中发挥作用。
|
|
|
|
|
|
|
|
|
|
@JacksonXmlProperty(isAttribute = true, localName = "md5")
|
|
|
|
|
private String md5;
|
|
|
|
|
// 关联 "emoji" 元素的属性 "md5",存储表情符号相关数据的MD5校验和信息,用于验证表情数据的完整性,确保在传输、存储过程中没有被篡改。
|
|
|
|
|
|
|
|
|
|
@JacksonXmlProperty(isAttribute = true, localName = "len")
|
|
|
|
|
private String len;
|
|
|
|
|
// 对应 "emoji" 元素的属性 "len",可能表示表情符号相关数据的长度信息,例如字节长度等,可用于资源管理、数据校验等操作。
|
|
|
|
|
|
|
|
|
|
@JacksonXmlProperty(isAttribute = true, localName = "productid")
|
|
|
|
|
private String productId;
|
|
|
|
|
// 关联 "emoji" 元素的属性 "productid",可能是与表情符号所属产品、系列相关的唯一标识,比如某个特定主题表情包的产品ID等,
|
|
|
|
|
// 便于对表情进行分类、授权等管理操作。
|
|
|
|
|
|
|
|
|
|
@JacksonXmlProperty(isAttribute = true, localName = "androidmd5")
|
|
|
|
|
private String androidMd5;
|
|
|
|
|
// 对应 "emoji" 元素的属性 "androidmd5",可能是专门针对安卓平台上表情符号相关数据的MD5校验和,用于在安卓设备端验证数据完整性等操作,
|
|
|
|
|
// 考虑到不同平台可能对表情的存储、处理方式略有差异,单独设置这样的属性有助于针对性的管理。
|
|
|
|
|
|
|
|
|
|
@JacksonXmlProperty(isAttribute = true, localName = "androidlen")
|
|
|
|
|
private String androidLen;
|
|
|
|
|
// 关联 "emoji" 元素的属性 "androidlen",可能表示安卓平台上表情符号相关数据的长度信息,用于适配安卓设备的资源管理等需求。
|
|
|
|
|
|
|
|
|
|
@JacksonXmlProperty(isAttribute = true, localName = "s60v3md5")
|
|
|
|
|
private String s60v3Md5;
|
|
|
|
|
// 对应 "emoji" 元素的属性 "s60v3md5",可能是针对塞班S60v3系统平台上表情符号相关数据的MD5校验和,用于该平台下的数据完整性验证等操作,
|
|
|
|
|
// 体现了对不同历史平台的兼容和数据管理考虑。
|
|
|
|
|
|
|
|
|
|
@JacksonXmlProperty(isAttribute = true, localName = "s60v3len")
|
|
|
|
|
private String s60v3Len;
|
|
|
|
|
// 关联 "emoji" 元素的属性 "s60v3len",表示塞班S60v3系统平台上表情符号相关数据的长度信息,满足该平台下的资源管理等相关需求。
|
|
|
|
|
|
|
|
|
|
@JacksonXmlProperty(isAttribute = true, localName = "s60v5md5")
|
|
|
|
|
private String s60v5Md5;
|
|
|
|
|
// 对应 "emoji" 元素的属性 "s60v5md5",类似地,是针对塞班S60v5系统平台上表情符号相关数据的MD5校验和,用于对应平台的数据验证操作。
|
|
|
|
|
|
|
|
|
|
@JacksonXmlProperty(isAttribute = true, localName = "s60v5len")
|
|
|
|
|
private String s60v5Len;
|
|
|
|
|
// 关联 "emoji" 元素的属性 "s60v5len",表示塞班S60v5系统平台上表情符号相关数据的长度信息,以便在该平台上进行合适的资源处理。
|
|
|
|
|
|
|
|
|
|
@JacksonXmlProperty(isAttribute = true, localName = "cdnurl")
|
|
|
|
|
private String cdnUrl;
|
|
|
|
|
// 对应 "emoji" 元素的属性 "cdnurl",用于存储表情符号相关资源在内容分发网络(CDN)上的网络地址,方便快速加载表情图片等资源,
|
|
|
|
|
// 提高表情在不同客户端展示的效率和速度。
|
|
|
|
|
|
|
|
|
|
@JacksonXmlProperty(isAttribute = true, localName = "designerid")
|
|
|
|
|
private String designerId;
|
|
|
|
|
// 关联 "emoji" 元素的属性 "designerid",可能是表情符号的设计者的唯一标识,用于版权管理、来源追溯等操作,
|
|
|
|
|
// 比如查看某个表情是由哪位设计师创作的,便于相关权益管理和信息展示。
|
|
|
|
|
|
|
|
|
|
@JacksonXmlProperty(isAttribute = true, localName = "thumburl")
|
|
|
|
|
private String thumbUrl;
|
|
|
|
|
// 对应 "emoji" 元素的属性 "thumburl",用于存储表情符号缩略图的网络地址,在一些界面展示场景中,先展示缩略图再加载完整表情,
|
|
|
|
|
// 可以提高用户体验和界面响应速度。
|
|
|
|
|
|
|
|
|
|
@JacksonXmlProperty(isAttribute = true, localName = "encrypturl")
|
|
|
|
|
private String encryptUrl;
|
|
|
|
|
// 关联 "emoji" 元素的属性 "encrypturl",可能是表情符号相关资源加密后的网络地址,在需要安全传输和存储表情数据的场景下使用,
|
|
|
|
|
// 例如涉及隐私表情或者付费表情包等情况,确保数据的保密性。
|
|
|
|
|
|
|
|
|
|
@JacksonXmlProperty(isAttribute = true, localName = "aeskey")
|
|
|
|
|
private String aesKey;
|
|
|
|
|
// 对应 "emoji" 元素的属性 "aeskey",通常用于存储表情符号相关数据加密的密钥信息,比如采用对称加密算法时的加密密钥,
|
|
|
|
|
// 用于在合适的时候对加密的表情数据进行解密操作,保障数据的安全性和完整性。
|
|
|
|
|
|
|
|
|
|
@JacksonXmlProperty(isAttribute = true, localName = "externurl")
|
|
|
|
|
private String externUrl;
|
|
|
|
|
// 关联 "emoji" 元素的属性 "externurl",可能是表情符号关联的外部链接地址,例如点击表情后跳转到的相关网页、推广页面等,
|
|
|
|
|
// 拓展了表情符号在业务中的功能和交互性。
|
|
|
|
|
|
|
|
|
|
@JacksonXmlProperty(isAttribute = true, localName = "externmd5")
|
|
|
|
|
private String externMd5;
|
|
|
|
|
// 对应 "emoji" 元素的属性 "externmd5",存储与表情符号关联的外部资源(如通过外部链接指向的资源)的MD5校验和信息,
|
|
|
|
|
// 用于验证外部资源数据的完整性,防止外部链接指向的资源被篡改等情况。
|
|
|
|
|
|
|
|
|
|
@JacksonXmlProperty(isAttribute = true, localName = "width")
|
|
|
|
|
private String width;
|
|
|
|
|
// 关联 "emoji" 元素的属性 "width",用于存储表情符号相关图片资源的宽度信息,以像素等单位表示,便于在界面展示时进行布局和尺寸适配。
|
|
|
|
|
|
|
|
|
|
@JacksonXmlProperty(isAttribute = true, localName = "height")
|
|
|
|
|
private String height;
|
|
|
|
|
// 对应 "emoji" 元素的属性 "height",表示表情符号相关图片资源的高度信息,同样以像素等单位计量,与宽度信息一起用于正确展示表情图片。
|
|
|
|
|
|
|
|
|
|
@JacksonXmlProperty(isAttribute = true, localName = "tpurl")
|
|
|
|
|
private String tpUrl;
|
|
|
|
|
// 关联 "emoji" 元素的属性 "tpurl",可能是表情符号的某种特定用途的链接地址(具体含义取决于业务定义),例如用于查看表情详情、
|
|
|
|
|
// 进行表情相关操作的链接等,丰富了表情符号在业务逻辑中的交互操作可能性。
|
|
|
|
|
|
|
|
|
|
@JacksonXmlProperty(isAttribute = true, localName = "tpauthkey")
|
|
|
|
|
private String tpAuthKey;
|
|
|
|
|
// 对应 "emoji" 元素的属性 "tpauthkey",可能是用于访问上述特定链接(tpurl)的授权密钥,确保只有授权用户能够进行相关的操作,
|
|
|
|
|
// 保障表情相关交互操作的安全性和权限管理。
|
|
|
|
|
|
|
|
|
|
@JacksonXmlProperty(isAttribute = true, localName = "attachedtext")
|
|
|
|
|
private String attachedText;
|
|
|
|
|
// 关联 "emoji" 元素的属性 "attachedtext",用于存储与表情符号相关联的附加文本信息,例如表情的说明文字、提示语等,
|