Skip to content

Commit 131402f

Browse files
committed
binarywang#265 几个NewsBuilder支持直接设置Article或Item对象列表
1 parent ca52260 commit 131402f

File tree

7 files changed

+46
-22
lines changed

7 files changed

+46
-22
lines changed

weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/messagebuilder/MpnewsBuilder.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import me.chanjar.weixin.cp.bean.article.MpnewsArticle;
66

77
import java.util.ArrayList;
8+
import java.util.Collections;
89
import java.util.List;
910

1011
/**
@@ -30,8 +31,13 @@ public MpnewsBuilder mediaId(String mediaId) {
3031
return this;
3132
}
3233

33-
public MpnewsBuilder addArticle(MpnewsArticle article) {
34-
this.articles.add(article);
34+
public MpnewsBuilder addArticle(MpnewsArticle... articles) {
35+
Collections.addAll(this.articles, articles);
36+
return this;
37+
}
38+
39+
public MpnewsBuilder articles(List<MpnewsArticle> articles) {
40+
this.articles = articles;
3541
return this;
3642
}
3743

weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/messagebuilder/NewsBuilder.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import me.chanjar.weixin.cp.bean.article.NewArticle;
66

77
import java.util.ArrayList;
8+
import java.util.Collections;
89
import java.util.List;
910

1011
/**
@@ -24,8 +25,13 @@ public NewsBuilder() {
2425
this.msgType = WxConsts.CUSTOM_MSG_NEWS;
2526
}
2627

27-
public NewsBuilder addArticle(NewArticle article) {
28-
this.articles.add(article);
28+
public NewsBuilder addArticle(NewArticle... articles) {
29+
Collections.addAll(this.articles, articles);
30+
return this;
31+
}
32+
33+
public NewsBuilder articles(List<NewArticle> articles) {
34+
this.articles = articles;
2935
return this;
3036
}
3137

weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/outxmlbuilder/NewsBuilder.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import me.chanjar.weixin.cp.bean.WxCpXmlOutNewsMessage.Item;
55

66
import java.util.ArrayList;
7+
import java.util.Collections;
78
import java.util.List;
89

910
/**
@@ -12,11 +13,15 @@
1213
* @author Daniel Qian
1314
*/
1415
public final class NewsBuilder extends BaseBuilder<NewsBuilder, WxCpXmlOutNewsMessage> {
16+
private List<Item> articles = new ArrayList<>();
1517

16-
protected final List<Item> articles = new ArrayList<>();
18+
public NewsBuilder addArticle(Item... items) {
19+
Collections.addAll(this.articles, items);
20+
return this;
21+
}
1722

18-
public NewsBuilder addArticle(Item item) {
19-
this.articles.add(item);
23+
public NewsBuilder articles(List<Item> articles){
24+
this.articles = articles;
2025
return this;
2126
}
2227

weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpMessageTest.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
import me.chanjar.weixin.common.api.WxConsts;
44
import me.chanjar.weixin.cp.bean.article.MpnewsArticle;
55
import me.chanjar.weixin.cp.bean.article.NewArticle;
6-
import org.testng.annotations.Test;
6+
import org.testng.annotations.*;
77

8-
import static org.testng.Assert.assertEquals;
8+
import static org.testng.Assert.*;
99

1010
@Test
1111
public class WxCpMessageTest {
@@ -127,11 +127,9 @@ public void testMpnewsBuild_with_articles() {
127127
.thumbMediaId("thumb")
128128
.build();
129129

130-
WxCpMessage reply = WxCpMessage.MPNEWS().toUser("OPENID").addArticle(article1).addArticle(article2).build();
130+
WxCpMessage reply = WxCpMessage.MPNEWS().toUser("OPENID").addArticle(article1, article2).build();
131131

132-
assertEquals(reply.toJson(), "{\"touser\":\"OPENID\",\"msgtype\":\"mpnews\"," +
133-
"\"mpnews\":{\"articles\":[{\"title\":\"Happy Day\",\"thumb_media_id\":\"thumb\",\"author\":\"aaaaaa\",\"content_source_url\":\"nice url\",\"content\":\"hahaha\",\"digest\":\"digest\",\"show_cover_pic\":\"heihei\"}," +
134-
"{\"title\":\"Happy Day\",\"thumb_media_id\":\"thumb\",\"author\":\"aaaaaa\",\"content_source_url\":\"nice url\",\"content\":\"hahaha\",\"digest\":\"digest\",\"show_cover_pic\":\"heihei\"}]}}");
132+
assertEquals(reply.toJson(), "{\"touser\":\"OPENID\",\"msgtype\":\"mpnews\",\"safe\":\"0\",\"mpnews\":{\"articles\":[{\"title\":\"Happy Day\",\"thumb_media_id\":\"thumb\",\"author\":\"aaaaaa\",\"content_source_url\":\"nice url\",\"content\":\"hahaha\",\"digest\":\"digest\",\"show_cover_pic\":\"heihei\"},{\"title\":\"Happy Day\",\"thumb_media_id\":\"thumb\",\"author\":\"aaaaaa\",\"content_source_url\":\"nice url\",\"content\":\"hahaha\",\"digest\":\"digest\",\"show_cover_pic\":\"heihei\"}]}}");
135133
}
136134

137135
public void testMpnewsBuild_with_media_id() {

weixin-java-mp/src/main/java/me/chanjar/weixin/mp/builder/kefu/NewsBuilder.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import me.chanjar.weixin.mp.bean.kefu.WxMpKefuMessage;
55

66
import java.util.ArrayList;
7+
import java.util.Collections;
78
import java.util.List;
89

910
/**
@@ -16,15 +17,19 @@
1617
* @author chanjarster
1718
*/
1819
public final class NewsBuilder extends BaseBuilder<NewsBuilder> {
19-
2020
private List<WxMpKefuMessage.WxArticle> articles = new ArrayList<>();
2121

2222
public NewsBuilder() {
2323
this.msgType = WxConsts.CUSTOM_MSG_NEWS;
2424
}
2525

26-
public NewsBuilder addArticle(WxMpKefuMessage.WxArticle article) {
27-
this.articles.add(article);
26+
public NewsBuilder addArticle(WxMpKefuMessage.WxArticle... articles) {
27+
Collections.addAll(this.articles, articles);
28+
return this;
29+
}
30+
31+
public NewsBuilder articles(List<WxMpKefuMessage.WxArticle> articles) {
32+
this.articles = articles;
2833
return this;
2934
}
3035

weixin-java-mp/src/main/java/me/chanjar/weixin/mp/builder/outxml/NewsBuilder.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import me.chanjar.weixin.mp.bean.message.WxMpXmlOutNewsMessage;
44

55
import java.util.ArrayList;
6+
import java.util.Collections;
67
import java.util.List;
78

89
/**
@@ -11,11 +12,15 @@
1112
* @author chanjarster
1213
*/
1314
public final class NewsBuilder extends BaseBuilder<NewsBuilder, WxMpXmlOutNewsMessage> {
15+
private List<WxMpXmlOutNewsMessage.Item> articles = new ArrayList<>();
1416

15-
protected final List<WxMpXmlOutNewsMessage.Item> articles = new ArrayList<>();
17+
public NewsBuilder addArticle(WxMpXmlOutNewsMessage.Item... items) {
18+
Collections.addAll(this.articles, items);
19+
return this;
20+
}
1621

17-
public NewsBuilder addArticle(WxMpXmlOutNewsMessage.Item item) {
18-
this.articles.add(item);
22+
public NewsBuilder articles(List<WxMpXmlOutNewsMessage.Item> articles){
23+
this.articles = articles;
1924
return this;
2025
}
2126

weixin-java-mp/src/test/java/me/chanjar/weixin/mp/bean/message/WxMpXmlOutNewsMessageTest.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,15 +54,13 @@ public void testBuild() {
5454
WxMpXmlOutNewsMessage m = WxMpXmlOutMessage.NEWS()
5555
.fromUser("fromUser")
5656
.toUser("toUser")
57-
.addArticle(item)
58-
.addArticle(item)
57+
.addArticle(item,item)
5958
.build();
6059
String expected = "<xml>"
6160
+ "<ToUserName><![CDATA[toUser]]></ToUserName>"
6261
+ "<FromUserName><![CDATA[fromUser]]></FromUserName>"
6362
+ "<CreateTime>1122</CreateTime>"
6463
+ "<MsgType><![CDATA[news]]></MsgType>"
65-
+ " <ArticleCount>2</ArticleCount>"
6664
+ " <Articles>"
6765
+ " <item>"
6866
+ " <Title><![CDATA[title]]></Title>"
@@ -77,6 +75,7 @@ public void testBuild() {
7775
+ " <Url><![CDATA[url]]></Url>"
7876
+ " </item>"
7977
+ " </Articles>"
78+
+ " <ArticleCount>2</ArticleCount>"
8079
+ "</xml>";
8180
System.out.println(m.toXml());
8281
Assert.assertEquals(

0 commit comments

Comments
 (0)