Skip to content

Commit 8f73c40

Browse files
committed
🎨 #2137 【企业微信】消息类里的Id修改为String以兼容字符串类型
1 parent 2c108c4 commit 8f73c40

File tree

2 files changed

+29
-4
lines changed

2 files changed

+29
-4
lines changed

weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/message/WxCpTpXmlMessage.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@
2525
@Slf4j
2626
@Data
2727
public class WxCpTpXmlMessage implements Serializable {
28-
2928
private static final long serialVersionUID = 6031833682211475786L;
29+
3030
/**
3131
* 使用dom4j解析的存放所有xml属性和值的map.
3232
*/
@@ -109,8 +109,8 @@ public class WxCpTpXmlMessage implements Serializable {
109109
protected String telephone;
110110

111111
@XStreamAlias("Id")
112-
@XStreamConverter(value = IntConverter.class)
113-
protected Integer id;
112+
@XStreamConverter(value = XStreamCDataConverter.class)
113+
protected String id;
114114

115115
@XStreamAlias("Name")
116116
@XStreamConverter(value = XStreamCDataConverter.class)
@@ -410,7 +410,7 @@ public static class Item implements Serializable {
410410
@XStreamAlias("NotifyNode")
411411
public static class NotifyNode implements Serializable {
412412
private static final long serialVersionUID = 6031833682211475786L;
413-
413+
414414
@XStreamAlias("ItemName")
415415
protected String itemName;
416416
@XStreamAlias("ItemUserId")

weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/message/WxCpTpXmlMessageTest.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,7 @@ public void textMessageTest() {
147147
" <MsgType><![CDATA[text]]></MsgType>\n" +
148148
" <Content><![CDATA[this is a test]]></Content>\n" +
149149
" <MsgId>1234567890123456</MsgId>\n" +
150+
" <Id><![CDATA[etEsNADQAAaiB0cWCSDFiJ2qCap-ww9A]]></Id>" +
150151
" <AgentID>1</AgentID>\n" +
151152
"</xml>";
152153

@@ -156,6 +157,7 @@ public void textMessageTest() {
156157
assertEquals(wxXmlMessage.getCreateTime(), Long.valueOf(1348831860));
157158
assertEquals(wxXmlMessage.getMsgType(), "text");
158159
assertEquals(wxXmlMessage.getMsgId(), "1234567890123456");
160+
assertEquals(wxXmlMessage.getId(), "etEsNADQAAaiB0cWCSDFiJ2qCap-ww9A");
159161
}
160162

161163
@Test
@@ -231,4 +233,27 @@ public void ApprovalInfoTest() {
231233
assertEquals(wxXmlMessage.getApprovalInfo().getNotifyNodes().get(0).getItemImage(), "http://www.qq.com/xxx.png");
232234
assertEquals(wxXmlMessage.getApprovalInfo().getNotifyNodes().get(0).getItemUserId(), Integer.valueOf(3));
233235
}
236+
237+
@Test
238+
public void testFromXml() {
239+
String xml = "<xml>\n" +
240+
" <ToUserName><![CDATA[toUser]]></ToUserName>\n" +
241+
" <FromUserName><![CDATA[fromUser]]></FromUserName> \n" +
242+
" <CreateTime>1348831860</CreateTime>\n" +
243+
" <MsgType><![CDATA[text]]></MsgType>\n" +
244+
" <Content><![CDATA[this is a test]]></Content>\n" +
245+
" <MsgId>1234567890123456</MsgId>\n" +
246+
" <Id>2</Id>\n" +
247+
" <AgentID>1</AgentID>\n" +
248+
"</xml>";
249+
250+
WxCpTpXmlMessage wxXmlMessage = WxCpTpXmlMessage.fromXml(xml);
251+
assertEquals(wxXmlMessage.getToUserName(), "toUser");
252+
assertEquals(wxXmlMessage.getFromUserName(), "fromUser");
253+
assertEquals(wxXmlMessage.getCreateTime(), Long.valueOf(1348831860));
254+
assertEquals(wxXmlMessage.getMsgType(), "text");
255+
assertEquals(wxXmlMessage.getMsgId(), "1234567890123456");
256+
assertEquals(wxXmlMessage.getId(), "2");
257+
258+
}
234259
}

0 commit comments

Comments
 (0)