Skip to content

Commit 3ead031

Browse files
committed
支持企业号mpnews消息类型 #143
1 parent 76892bd commit 3ead031

File tree

7 files changed

+329
-53
lines changed

7 files changed

+329
-53
lines changed
Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
package me.chanjar.weixin.cp.bean.article;
2+
3+
/**
4+
* <pre>
5+
* Created by BinaryWang on 2017/3/27.
6+
* </pre>
7+
* @author Binary Wang
8+
*/
9+
public class MpnewsArticle {
10+
private String title;
11+
private String thumbMediaId;
12+
private String author;
13+
private String contentSourceUrl;
14+
private String content;
15+
private String digest;
16+
private String showCoverPic;
17+
18+
private MpnewsArticle(Builder builder) {
19+
setTitle(builder.title);
20+
setThumbMediaId(builder.thumbMediaId);
21+
setAuthor(builder.author);
22+
setContentSourceUrl(builder.contentSourceUrl);
23+
setContent(builder.content);
24+
setDigest(builder.digest);
25+
setShowCoverPic(builder.showCoverPic);
26+
}
27+
28+
public static Builder newBuilder() {
29+
return new Builder();
30+
}
31+
32+
public String getTitle() {
33+
return title;
34+
}
35+
36+
public void setTitle(String title) {
37+
this.title = title;
38+
}
39+
40+
public String getThumbMediaId() {
41+
return thumbMediaId;
42+
}
43+
44+
public void setThumbMediaId(String thumbMediaId) {
45+
this.thumbMediaId = thumbMediaId;
46+
}
47+
48+
public String getAuthor() {
49+
return author;
50+
}
51+
52+
public void setAuthor(String author) {
53+
this.author = author;
54+
}
55+
56+
public String getContentSourceUrl() {
57+
return contentSourceUrl;
58+
}
59+
60+
public void setContentSourceUrl(String contentSourceUrl) {
61+
this.contentSourceUrl = contentSourceUrl;
62+
}
63+
64+
public String getContent() {
65+
return content;
66+
}
67+
68+
public void setContent(String content) {
69+
this.content = content;
70+
}
71+
72+
public String getDigest() {
73+
return digest;
74+
}
75+
76+
public void setDigest(String digest) {
77+
this.digest = digest;
78+
}
79+
80+
public String getShowCoverPic() {
81+
return showCoverPic;
82+
}
83+
84+
public void setShowCoverPic(String showCoverPic) {
85+
this.showCoverPic = showCoverPic;
86+
}
87+
88+
public static final class Builder {
89+
private String title;
90+
private String thumbMediaId;
91+
private String author;
92+
private String contentSourceUrl;
93+
private String content;
94+
private String digest;
95+
private String showCoverPic;
96+
97+
private Builder() {
98+
}
99+
100+
public Builder title(String title) {
101+
this.title = title;
102+
return this;
103+
}
104+
105+
public Builder thumbMediaId(String thumbMediaId) {
106+
this.thumbMediaId = thumbMediaId;
107+
return this;
108+
}
109+
110+
public Builder author(String author) {
111+
this.author = author;
112+
return this;
113+
}
114+
115+
public Builder contentSourceUrl(String contentSourceUrl) {
116+
this.contentSourceUrl = contentSourceUrl;
117+
return this;
118+
}
119+
120+
public Builder content(String content) {
121+
this.content = content;
122+
return this;
123+
}
124+
125+
public Builder digest(String digest) {
126+
this.digest = digest;
127+
return this;
128+
}
129+
130+
public Builder showCoverPic(String showCoverPic) {
131+
this.showCoverPic = showCoverPic;
132+
return this;
133+
}
134+
135+
public MpnewsArticle build() {
136+
return new MpnewsArticle(this);
137+
}
138+
}
139+
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package me.chanjar.weixin.cp.bean.article;
2+
3+
/**
4+
* <pre>
5+
* Created by BinaryWang on 2017/3/27.
6+
* </pre>
7+
*
8+
* @author Binary Wang
9+
*/
10+
public class NewArticle {
11+
12+
private String title;
13+
private String description;
14+
private String url;
15+
private String picUrl;
16+
17+
public String getTitle() {
18+
return this.title;
19+
}
20+
21+
public void setTitle(String title) {
22+
this.title = title;
23+
}
24+
25+
public String getDescription() {
26+
return this.description;
27+
}
28+
29+
public void setDescription(String description) {
30+
this.description = description;
31+
}
32+
33+
public String getUrl() {
34+
return this.url;
35+
}
36+
37+
public void setUrl(String url) {
38+
this.url = url;
39+
}
40+
41+
public String getPicUrl() {
42+
return this.picUrl;
43+
}
44+
45+
public void setPicUrl(String picUrl) {
46+
this.picUrl = picUrl;
47+
}
48+
49+
}

weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpMessage.java

Lines changed: 23 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package me.chanjar.weixin.cp.bean;
22

3+
import me.chanjar.weixin.cp.bean.article.MpnewsArticle;
4+
import me.chanjar.weixin.cp.bean.article.NewArticle;
35
import me.chanjar.weixin.cp.bean.messagebuilder.*;
46
import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;
57

@@ -28,7 +30,16 @@ public class WxCpMessage implements Serializable {
2830
private String musicUrl;
2931
private String hqMusicUrl;
3032
private String safe;
31-
private List<WxArticle> articles = new ArrayList<>();
33+
private List<NewArticle> articles = new ArrayList<>();
34+
private List<MpnewsArticle> mpnewsArticles = new ArrayList<>();
35+
36+
public List<MpnewsArticle> getMpnewsArticles() {
37+
return mpnewsArticles;
38+
}
39+
40+
public void setMpnewsArticles(List<MpnewsArticle> mpnewsArticles) {
41+
this.mpnewsArticles = mpnewsArticles;
42+
}
3243

3344
/**
3445
* 获得文本消息builder
@@ -65,6 +76,13 @@ public static NewsBuilder NEWS() {
6576
return new NewsBuilder();
6677
}
6778

79+
/**
80+
* 获得mpnews图文消息builder
81+
*/
82+
public static MpnewsBuilder MPNEWS() {
83+
return new MpnewsBuilder();
84+
}
85+
6886
/**
6987
* 获得文件消息builder
7088
*/
@@ -117,9 +135,10 @@ public String getMsgType() {
117135
* {@link me.chanjar.weixin.common.api.WxConsts#CUSTOM_MSG_MUSIC}
118136
* {@link me.chanjar.weixin.common.api.WxConsts#CUSTOM_MSG_VIDEO}
119137
* {@link me.chanjar.weixin.common.api.WxConsts#CUSTOM_MSG_NEWS}
138+
* {@link me.chanjar.weixin.common.api.WxConsts#CUSTOM_MSG_MPNEWS}
120139
* </pre>
121140
*
122-
* @param msgType
141+
* @param msgType 消息类型
123142
*/
124143
public void setMsgType(String msgType) {
125144
this.msgType = msgType;
@@ -189,57 +208,16 @@ public void setHqMusicUrl(String hqMusicUrl) {
189208
this.hqMusicUrl = hqMusicUrl;
190209
}
191210

192-
public List<WxArticle> getArticles() {
211+
public List<NewArticle> getArticles() {
193212
return this.articles;
194213
}
195214

196-
public void setArticles(List<WxArticle> articles) {
215+
public void setArticles(List<NewArticle> articles) {
197216
this.articles = articles;
198217
}
199218

200219
public String toJson() {
201220
return WxCpGsonBuilder.INSTANCE.create().toJson(this);
202221
}
203222

204-
public static class WxArticle {
205-
206-
private String title;
207-
private String description;
208-
private String url;
209-
private String picUrl;
210-
211-
public String getTitle() {
212-
return this.title;
213-
}
214-
215-
public void setTitle(String title) {
216-
this.title = title;
217-
}
218-
219-
public String getDescription() {
220-
return this.description;
221-
}
222-
223-
public void setDescription(String description) {
224-
this.description = description;
225-
}
226-
227-
public String getUrl() {
228-
return this.url;
229-
}
230-
231-
public void setUrl(String url) {
232-
this.url = url;
233-
}
234-
235-
public String getPicUrl() {
236-
return this.picUrl;
237-
}
238-
239-
public void setPicUrl(String picUrl) {
240-
this.picUrl = picUrl;
241-
}
242-
243-
}
244-
245223
}
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package me.chanjar.weixin.cp.bean.messagebuilder;
2+
3+
import me.chanjar.weixin.common.api.WxConsts;
4+
import me.chanjar.weixin.cp.bean.WxCpMessage;
5+
import me.chanjar.weixin.cp.bean.article.MpnewsArticle;
6+
7+
import java.util.ArrayList;
8+
import java.util.List;
9+
10+
/**
11+
* mpnews类型的图文消息builder
12+
* <pre>
13+
* 用法:
14+
* WxCustomMessage m = WxCustomMessage.MPNEWS().addArticle(article).toUser(...).build();
15+
* </pre>
16+
*
17+
* @author Binary Wang
18+
*/
19+
public final class MpnewsBuilder extends BaseBuilder<MpnewsBuilder> {
20+
private List<MpnewsArticle> articles = new ArrayList<>();
21+
22+
private String mediaId;
23+
24+
public MpnewsBuilder() {
25+
this.msgType = WxConsts.CUSTOM_MSG_MPNEWS;
26+
}
27+
28+
public MpnewsBuilder mediaId(String mediaId) {
29+
this.mediaId = mediaId;
30+
return this;
31+
}
32+
33+
public MpnewsBuilder addArticle(MpnewsArticle article) {
34+
this.articles.add(article);
35+
return this;
36+
}
37+
38+
@Override
39+
public WxCpMessage build() {
40+
WxCpMessage m = super.build();
41+
m.setMpnewsArticles(this.articles);
42+
if (this.mediaId != null) {
43+
m.setMediaId(this.mediaId);
44+
}
45+
46+
return m;
47+
}
48+
}

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import me.chanjar.weixin.common.api.WxConsts;
44
import me.chanjar.weixin.cp.bean.WxCpMessage;
5+
import me.chanjar.weixin.cp.bean.article.NewArticle;
56

67
import java.util.ArrayList;
78
import java.util.List;
@@ -17,13 +18,13 @@
1718
*/
1819
public final class NewsBuilder extends BaseBuilder<NewsBuilder> {
1920

20-
private List<WxCpMessage.WxArticle> articles = new ArrayList<>();
21+
private List<NewArticle> articles = new ArrayList<>();
2122

2223
public NewsBuilder() {
2324
this.msgType = WxConsts.CUSTOM_MSG_NEWS;
2425
}
2526

26-
public NewsBuilder addArticle(WxCpMessage.WxArticle article) {
27+
public NewsBuilder addArticle(NewArticle article) {
2728
this.articles.add(article);
2829
return this;
2930
}

0 commit comments

Comments
 (0)