Skip to content

Commit fcbdc86

Browse files
committed
重构代码,将用户管理、分组管理以及二维码相关的接口分别移到单独类中管理
1 parent 175bf9b commit fcbdc86

21 files changed

+877
-698
lines changed
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
package me.chanjar.weixin.mp.api;
2+
3+
import me.chanjar.weixin.common.exception.WxErrorException;
4+
import me.chanjar.weixin.mp.bean.WxMpGroup;
5+
6+
import java.util.List;
7+
8+
/**
9+
* 用户分组相关操作接口
10+
* @author Binary Wang
11+
*
12+
*/
13+
public interface WxMpGroupService {
14+
15+
16+
/**
17+
* <pre>
18+
* 分组管理接口 - 创建分组
19+
* 最多支持创建500个分组
20+
* 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=分组管理接口
21+
* </pre>
22+
*
23+
* @param name 分组名字(30个字符以内)
24+
*/
25+
public WxMpGroup groupCreate(String name) throws WxErrorException;
26+
27+
/**
28+
* <pre>
29+
* 分组管理接口 - 查询所有分组
30+
* 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=分组管理接口
31+
* </pre>
32+
*/
33+
public List<WxMpGroup> groupGet() throws WxErrorException;
34+
35+
/**
36+
* <pre>
37+
* 分组管理接口 - 查询用户所在分组
38+
* 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=分组管理接口
39+
* </pre>
40+
*
41+
* @param openid 微信用户的openid
42+
*/
43+
public long userGetGroup(String openid) throws WxErrorException;
44+
45+
/**
46+
* <pre>
47+
* 分组管理接口 - 修改分组名
48+
* 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=分组管理接口
49+
*
50+
* 如果id为0(未分组),1(黑名单),2(星标组),或者不存在的id,微信会返回系统繁忙的错误
51+
* </pre>
52+
*
53+
* @param group 要更新的group,group的id,name必须设置
54+
*/
55+
public void groupUpdate(WxMpGroup group) throws WxErrorException;
56+
57+
/**
58+
* <pre>
59+
* 分组管理接口 - 移动用户分组
60+
* 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=分组管理接口
61+
*
62+
* 如果to_groupid为0(未分组),1(黑名单),2(星标组),或者不存在的id,微信会返回系统繁忙的错误
63+
* </pre>
64+
*
65+
* @param openid 用户openid
66+
* @param to_groupid 移动到的分组id
67+
*/
68+
public void userUpdateGroup(String openid, long to_groupid) throws WxErrorException;
69+
}

weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpKefuService.java

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,24 @@
11
package me.chanjar.weixin.mp.api;
22

3-
import java.io.File;
4-
import java.util.Date;
5-
63
import me.chanjar.weixin.common.exception.WxErrorException;
74
import me.chanjar.weixin.mp.bean.kefu.request.WxMpKfAccountRequest;
85
import me.chanjar.weixin.mp.bean.kefu.result.*;
96

7+
import java.io.File;
8+
import java.util.Date;
9+
1010
/**
1111
* 客服接口 ,
1212
* 命名采用kefu拼音的原因是:
1313
* 其英文CustomerService如果再加上Service后缀显得有点啰嗦,
1414
* 如果不加又显得表意不完整
15-
* @author Binary Wang
1615
*
16+
* @author Binary Wang
1717
*/
1818
public interface WxMpKefuService {
1919

2020
//*******************客服管理接口***********************//
21+
2122
/**
2223
* <pre>
2324
* 获取客服基本信息
@@ -71,7 +72,7 @@ public interface WxMpKefuService {
7172
* </pre>
7273
*/
7374
boolean kfAccountUploadHeadImg(String kfAccount, File imgFile)
74-
throws WxErrorException;
75+
throws WxErrorException;
7576

7677
/**
7778
* <pre>
@@ -83,6 +84,7 @@ boolean kfAccountUploadHeadImg(String kfAccount, File imgFile)
8384
boolean kfAccountDel(String kfAccount) throws WxErrorException;
8485

8586
//*******************客服会话控制接口***********************//
87+
8688
/**
8789
* <pre>
8890
* 创建会话
@@ -134,6 +136,7 @@ boolean kfAccountUploadHeadImg(String kfAccount, File imgFile)
134136
WxMpKfSessionWaitCaseList kfSessionGetWaitCase() throws WxErrorException;
135137

136138
//*******************获取聊天记录的接口***********************//
139+
137140
/**
138141
* <pre>
139142
* 获取聊天记录(原始接口)
@@ -143,9 +146,9 @@ boolean kfAccountUploadHeadImg(String kfAccount, File imgFile)
143146
* </pre>
144147
*
145148
* @param startTime 起始时间
146-
* @param endTime 结束时间
147-
* @param msgId 消息id顺序从小到大,从1开始
148-
* @param number 每次获取条数,最多10000条
149+
* @param endTime 结束时间
150+
* @param msgId 消息id顺序从小到大,从1开始
151+
* @param number 每次获取条数,最多10000条
149152
* @return 聊天记录对象
150153
* @throws WxErrorException
151154
*/
@@ -160,7 +163,7 @@ boolean kfAccountUploadHeadImg(String kfAccount, File imgFile)
160163
* </pre>
161164
*
162165
* @param startTime 起始时间
163-
* @param endTime 结束时间
166+
* @param endTime 结束时间
164167
* @return 聊天记录对象
165168
* @throws WxErrorException
166169
*/

weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMaterialService.java

Lines changed: 30 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,11 @@ public interface WxMpMaterialService {
1919

2020
/**
2121
* 新增临时素材
22-
* @see #mediaUpload(String, String, InputStream)
22+
*
2323
* @param mediaType
2424
* @param file
2525
* @throws WxErrorException
26+
* @see #mediaUpload(String, String, InputStream)
2627
*/
2728
public WxMediaUploadResult mediaUpload(String mediaType, File file) throws WxErrorException;
2829

@@ -33,6 +34,7 @@ public interface WxMpMaterialService {
3334
* 根据微信文档,视频文件下载不了,会返回null
3435
* 详情请见: <a href="http://mp.weixin.qq.com/wiki/9/677a85e3f3849af35de54bb5516c2521.html">获取临时素材</a>
3536
* </pre>
37+
*
3638
* @param media_id
3739
* @return 保存到本地的临时文件
3840
* @throws WxErrorException
@@ -44,6 +46,7 @@ public interface WxMpMaterialService {
4446
* 上传图文消息内的图片获取URL
4547
* 详情请见:http://mp.weixin.qq.com/wiki/15/40b6865b893947b764e2de8e4a1fb55f.html#.E4.B8.8A.E4.BC.A0.E5.9B.BE.E6.96.87.E6.B6.88.E6.81.AF.E5.86.85.E7.9A.84.E5.9B.BE.E7.89.87.E8.8E.B7.E5.8F.96URL.E3.80.90.E8.AE.A2.E9.98.85.E5.8F.B7.E4.B8.8E.E6.9C.8D.E5.8A.A1.E5.8F.B7.E8.AE.A4.E8.AF.81.E5.90.8E.E5.9D.87.E5.8F.AF.E7.94.A8.E3.80.91
4648
* </pre>
49+
*
4750
* @param file
4851
* @return WxMediaImgUploadResult 返回图片url
4952
* @throws WxErrorException
@@ -63,9 +66,10 @@ public interface WxMpMaterialService {
6366
*
6467
* 详情请见: <a href="http://mp.weixin.qq.com/wiki/15/2d353966323806a202cd2deaafe8e557.html">新增临时素材</a>
6568
* </pre>
66-
* @param mediaType 媒体类型, 请看{@link me.chanjar.weixin.common.api.WxConsts}
67-
* @param fileType 文件类型,请看{@link me.chanjar.weixin.common.api.WxConsts}
68-
* @param inputStream 输入流
69+
*
70+
* @param mediaType 媒体类型, 请看{@link me.chanjar.weixin.common.api.WxConsts}
71+
* @param fileType 文件类型,请看{@link me.chanjar.weixin.common.api.WxConsts}
72+
* @param inputStream 输入流
6973
* @throws WxErrorException
7074
*/
7175
public WxMediaUploadResult mediaUpload(String mediaType, String fileType, InputStream inputStream) throws WxErrorException, IOException;
@@ -82,8 +86,9 @@ public interface WxMpMaterialService {
8286
*
8387
* 详情请见: http://mp.weixin.qq.com/wiki/14/7e6c03263063f4813141c3e17dd4350a.html
8488
* </pre>
85-
* @param mediaType 媒体类型, 请看{@link me.chanjar.weixin.common.api.WxConsts}
86-
* @param material 上传的素材, 请看{@link me.chanjar.weixin.mp.bean.WxMpMaterial}
89+
*
90+
* @param mediaType 媒体类型, 请看{@link me.chanjar.weixin.common.api.WxConsts}
91+
* @param material 上传的素材, 请看{@link me.chanjar.weixin.mp.bean.WxMpMaterial}
8792
*/
8893
public WxMpMaterialUploadResult materialFileUpload(String mediaType, WxMpMaterial material) throws WxErrorException;
8994

@@ -93,7 +98,8 @@ public interface WxMpMaterialService {
9398
*
9499
* 详情请见: http://mp.weixin.qq.com/wiki/14/7e6c03263063f4813141c3e17dd4350a.html
95100
* </pre>
96-
* @param news 上传的图文消息, 请看{@link me.chanjar.weixin.mp.bean.WxMpMaterialNews}
101+
*
102+
* @param news 上传的图文消息, 请看{@link me.chanjar.weixin.mp.bean.WxMpMaterialNews}
97103
*/
98104
public WxMpMaterialUploadResult materialNewsUpload(WxMpMaterialNews news) throws WxErrorException;
99105

@@ -103,7 +109,8 @@ public interface WxMpMaterialService {
103109
*
104110
* 详情请见: http://mp.weixin.qq.com/wiki/4/b3546879f07623cb30df9ca0e420a5d0.html
105111
* </pre>
106-
* @param media_id 永久素材的id
112+
*
113+
* @param media_id 永久素材的id
107114
*/
108115
public InputStream materialImageOrVoiceDownload(String media_id) throws WxErrorException;
109116

@@ -113,7 +120,8 @@ public interface WxMpMaterialService {
113120
*
114121
* 详情请见: http://mp.weixin.qq.com/wiki/4/b3546879f07623cb30df9ca0e420a5d0.html
115122
* </pre>
116-
* @param media_id 永久素材的id
123+
*
124+
* @param media_id 永久素材的id
117125
*/
118126
public WxMpMaterialVideoInfoResult materialVideoInfo(String media_id) throws WxErrorException;
119127

@@ -123,7 +131,8 @@ public interface WxMpMaterialService {
123131
*
124132
* 详情请见: http://mp.weixin.qq.com/wiki/4/b3546879f07623cb30df9ca0e420a5d0.html
125133
* </pre>
126-
* @param media_id 永久素材的id
134+
*
135+
* @param media_id 永久素材的id
127136
*/
128137
public WxMpMaterialNews materialNewsInfo(String media_id) throws WxErrorException;
129138

@@ -133,7 +142,8 @@ public interface WxMpMaterialService {
133142
*
134143
* 详情请见: http://mp.weixin.qq.com/wiki/4/19a59cba020d506e767360ca1be29450.html
135144
* </pre>
136-
* @param wxMpMaterialArticleUpdate 用来更新图文素材的bean, 请看{@link me.chanjar.weixin.mp.bean.WxMpMaterialArticleUpdate}
145+
*
146+
* @param wxMpMaterialArticleUpdate 用来更新图文素材的bean, 请看{@link me.chanjar.weixin.mp.bean.WxMpMaterialArticleUpdate}
137147
*/
138148
public boolean materialNewsUpdate(WxMpMaterialArticleUpdate wxMpMaterialArticleUpdate) throws WxErrorException;
139149

@@ -143,7 +153,8 @@ public interface WxMpMaterialService {
143153
*
144154
* 详情请见: http://mp.weixin.qq.com/wiki/5/e66f61c303db51a6c0f90f46b15af5f5.html
145155
* </pre>
146-
* @param media_id 永久素材的id
156+
*
157+
* @param media_id 永久素材的id
147158
*/
148159
public boolean materialDelete(String media_id) throws WxErrorException;
149160

@@ -162,8 +173,9 @@ public interface WxMpMaterialService {
162173
*
163174
* 详情请见: http://mp.weixin.qq.com/wiki/12/2108cd7aafff7f388f41f37efa710204.html
164175
* </pre>
165-
* @param offset 从全部素材的该偏移位置开始返回,0表示从第一个素材 返回
166-
* @param count 返回素材的数量,取值在1到20之间
176+
*
177+
* @param offset 从全部素材的该偏移位置开始返回,0表示从第一个素材 返回
178+
* @param count 返回素材的数量,取值在1到20之间
167179
*/
168180
public WxMpMaterialNewsBatchGetResult materialNewsBatchGet(int offset, int count) throws WxErrorException;
169181

@@ -173,9 +185,10 @@ public interface WxMpMaterialService {
173185
*
174186
* 详情请见: http://mp.weixin.qq.com/wiki/12/2108cd7aafff7f388f41f37efa710204.html
175187
* </pre>
176-
* @param type 媒体类型, 请看{@link me.chanjar.weixin.common.api.WxConsts}
177-
* @param offset 从全部素材的该偏移位置开始返回,0表示从第一个素材 返回
178-
* @param count 返回素材的数量,取值在1到20之间
188+
*
189+
* @param type 媒体类型, 请看{@link me.chanjar.weixin.common.api.WxConsts}
190+
* @param offset 从全部素材的该偏移位置开始返回,0表示从第一个素材 返回
191+
* @param count 返回素材的数量,取值在1到20之间
179192
*/
180193
public WxMpMaterialFileBatchGetResult materialFileBatchGet(String type, int offset, int count) throws WxErrorException;
181194

weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMenuService.java

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

33
import me.chanjar.weixin.common.bean.WxMenu;
44
import me.chanjar.weixin.common.exception.WxErrorException;
5-
import me.chanjar.weixin.mp.bean.kefu.request.WxMpKfAccountRequest;
6-
import me.chanjar.weixin.mp.bean.kefu.result.*;
7-
8-
import java.io.File;
9-
import java.util.Date;
105

116
/**
127
* 菜单相关操作接口
13-
* @author Binary Wang
148
*
9+
* @author Binary Wang
1510
*/
1611
public interface WxMpMenuService {
1712

@@ -38,6 +33,7 @@ public interface WxMpMenuService {
3833
* 删除个性化菜单接口
3934
* 详情请见: http://mp.weixin.qq.com/wiki/0/c48ccd12b69ae023159b4bfaa7c39c20.html
4035
* </pre>
36+
*
4137
* @param menuid
4238
*/
4339
public void menuDelete(String menuid) throws WxErrorException;
@@ -55,6 +51,7 @@ public interface WxMpMenuService {
5551
* 测试个性化菜单匹配结果
5652
* 详情请见: http://mp.weixin.qq.com/wiki/0/c48ccd12b69ae023159b4bfaa7c39c20.html
5753
* </pre>
54+
*
5855
* @param userid 可以是粉丝的OpenID,也可以是粉丝的微信号。
5956
*/
6057
public WxMenu menuTryMatch(String userid) throws WxErrorException;
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
package me.chanjar.weixin.mp.api;
2+
3+
import me.chanjar.weixin.common.exception.WxErrorException;
4+
import me.chanjar.weixin.mp.bean.result.WxMpQrCodeTicket;
5+
6+
import java.io.File;
7+
8+
/**
9+
* 二维码相关操作接口
10+
*
11+
* @author Binary Wang
12+
*/
13+
public interface WxMpQrcodeService {
14+
15+
/**
16+
* <pre>
17+
* 换取临时二维码ticket
18+
* 详情请见: <a href="http://mp.weixin.qq.com/wiki/18/167e7d94df85d8389df6c94a7a8f78ba.html">生成带参数的二维码</a>
19+
* </pre>
20+
*
21+
* @param scene_id 参数。
22+
* @param expire_seconds 过期秒数,默认60秒,最小60秒,最大1800秒
23+
*/
24+
public WxMpQrCodeTicket qrCodeCreateTmpTicket(int scene_id, Integer expire_seconds) throws WxErrorException;
25+
26+
/**
27+
* <pre>
28+
* 换取永久二维码ticket
29+
* 详情请见: <a href="http://mp.weixin.qq.com/wiki/18/167e7d94df85d8389df6c94a7a8f78ba.html">生成带参数的二维码</a>
30+
* </pre>
31+
*
32+
* @param scene_id 参数。永久二维码时最大值为100000(目前参数只支持1--100000)
33+
*/
34+
public WxMpQrCodeTicket qrCodeCreateLastTicket(int scene_id) throws WxErrorException;
35+
36+
/**
37+
* <pre>
38+
* 换取永久字符串二维码ticket
39+
* 详情请见: <a href="http://mp.weixin.qq.com/wiki/18/167e7d94df85d8389df6c94a7a8f78ba.html">生成带参数的二维码</a>
40+
* </pre>
41+
*
42+
* @param scene_str 参数。字符串类型长度现在为1到64
43+
*/
44+
public WxMpQrCodeTicket qrCodeCreateLastTicket(String scene_str) throws WxErrorException;
45+
46+
/**
47+
* <pre>
48+
* 换取二维码图片文件,jpg格式
49+
* 详情请见: <a href="http://mp.weixin.qq.com/wiki/18/167e7d94df85d8389df6c94a7a8f78ba.html">生成带参数的二维码</a>
50+
* </pre>
51+
*
52+
* @param ticket 二维码ticket
53+
*/
54+
public File qrCodePicture(WxMpQrCodeTicket ticket) throws WxErrorException;
55+
56+
/**
57+
* <pre>
58+
* 换取二维码图片url地址(可以选择是否生成压缩的网址)
59+
* 详情请见: <a href="http://mp.weixin.qq.com/wiki/18/167e7d94df85d8389df6c94a7a8f78ba.html">生成带参数的二维码</a>
60+
* </pre>
61+
*
62+
* @param ticket 二维码ticket
63+
* @param needShortUrl 是否需要压缩的二维码地址
64+
*/
65+
public String qrCodePictureUrl(String ticket, boolean needShortUrl) throws WxErrorException;
66+
67+
/**
68+
* <pre>
69+
* 换取二维码图片url地址
70+
* 详情请见: <a href="http://mp.weixin.qq.com/wiki/18/167e7d94df85d8389df6c94a7a8f78ba.html">生成带参数的二维码</a>
71+
* </pre>
72+
*
73+
* @param ticket 二维码ticket
74+
*/
75+
public String qrCodePictureUrl(String ticket) throws WxErrorException;
76+
77+
}

0 commit comments

Comments
 (0)