Skip to content

Commit 0a753c6

Browse files
authored
Merge pull request rememberber#226 from rememberber/develop
Develop
2 parents f100cb7 + 0cd447e commit 0a753c6

26 files changed

Lines changed: 816 additions & 44 deletions

‎download.md‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
<details>
44
<summary>Windows</summary>
55

6+
[WePush-v4.1.0_190930-x64-Setup.exe](http://download.zhoubochina.com/exe/WePush-v4.1.0_190930-x64-Setup.exe)
67
[WePush-v4.0.0_190928-x64-Setup.exe](http://download.zhoubochina.com/exe/WePush-v4.0.0_190928-x64-Setup.exe)
78
[WePush-v3.9.0_190915-x64-Setup.exe](http://download.zhoubochina.com/exe/WePush-v3.9.0_190915-x64-Setup.exe)
89
[WePush-v3.8.0_190909-x64-Setup.exe](http://download.zhoubochina.com/exe/WePush-v3.8.0_190909-x64-Setup.exe)
@@ -112,6 +113,7 @@
112113
<details>
113114
<summary>Linux</summary>
114115

116+
[v4.1.0_190930](http://download.zhoubochina.com/linux/WePush-4.1.0.zip)
115117
[v4.0.0_190928](http://download.zhoubochina.com/linux/WePush-4.0.0.zip)
116118
[v3.9.0_190915](http://download.zhoubochina.com/linux/WePush-3.9.0.zip)
117119
[v3.8.0_190909](http://download.zhoubochina.com/linux/WePush-3.8.0.zip)

‎readme.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
+ 模板消息-小程序
1717
+ 微信客服消息
1818
+ 微信企业号/企业微信消息
19+
+ 小程序统一服务消息
1920
+ 钉钉
2021
+ 阿里云短信
2122
+ 阿里大于模板短信
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package com.fangxuele.tool.push.dao;
2+
3+
import com.fangxuele.tool.push.domain.TMsgWxUniform;
4+
import org.apache.ibatis.annotations.Param;
5+
6+
import java.util.List;
7+
8+
public interface TMsgWxUniformMapper {
9+
int deleteByPrimaryKey(Integer id);
10+
11+
int insert(TMsgWxUniform record);
12+
13+
int insertSelective(TMsgWxUniform record);
14+
15+
TMsgWxUniform selectByPrimaryKey(Integer id);
16+
17+
int updateByPrimaryKeySelective(TMsgWxUniform record);
18+
19+
int updateByPrimaryKey(TMsgWxUniform record);
20+
21+
List<TMsgWxUniform> selectByMsgType(int msgType);
22+
23+
int deleteByMsgTypeAndName(@Param("msgType") int msgType, @Param("msgName") String msgName);
24+
25+
List<TMsgWxUniform> selectByMsgTypeAndMsgName(@Param("msgType") int msgType, @Param("msgName") String msgName);
26+
27+
int updateByMsgTypeAndMsgName(TMsgWxUniform tMsgWxUniform);
28+
}
Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
package com.fangxuele.tool.push.domain;
2+
3+
import java.io.Serializable;
4+
5+
public class TMsgWxUniform implements Serializable {
6+
private Integer id;
7+
8+
private Integer msgType;
9+
10+
private String msgName;
11+
12+
private String mpTemplateId;
13+
14+
private String maTemplateId;
15+
16+
private String mpUrl;
17+
18+
private String maAppid;
19+
20+
private String maPagePath;
21+
22+
private String page;
23+
24+
private String emphasisKeyword;
25+
26+
private String createTime;
27+
28+
private String modifiedTime;
29+
30+
private static final long serialVersionUID = 1L;
31+
32+
public Integer getId() {
33+
return id;
34+
}
35+
36+
public void setId(Integer id) {
37+
this.id = id;
38+
}
39+
40+
public Integer getMsgType() {
41+
return msgType;
42+
}
43+
44+
public void setMsgType(Integer msgType) {
45+
this.msgType = msgType;
46+
}
47+
48+
public String getMsgName() {
49+
return msgName;
50+
}
51+
52+
public void setMsgName(String msgName) {
53+
this.msgName = msgName == null ? null : msgName.trim();
54+
}
55+
56+
public String getMpTemplateId() {
57+
return mpTemplateId;
58+
}
59+
60+
public void setMpTemplateId(String mpTemplateId) {
61+
this.mpTemplateId = mpTemplateId == null ? null : mpTemplateId.trim();
62+
}
63+
64+
public String getMaTemplateId() {
65+
return maTemplateId;
66+
}
67+
68+
public void setMaTemplateId(String maTemplateId) {
69+
this.maTemplateId = maTemplateId == null ? null : maTemplateId.trim();
70+
}
71+
72+
public String getMpUrl() {
73+
return mpUrl;
74+
}
75+
76+
public void setMpUrl(String mpUrl) {
77+
this.mpUrl = mpUrl == null ? null : mpUrl.trim();
78+
}
79+
80+
public String getMaAppid() {
81+
return maAppid;
82+
}
83+
84+
public void setMaAppid(String maAppid) {
85+
this.maAppid = maAppid == null ? null : maAppid.trim();
86+
}
87+
88+
public String getMaPagePath() {
89+
return maPagePath;
90+
}
91+
92+
public void setMaPagePath(String maPagePath) {
93+
this.maPagePath = maPagePath == null ? null : maPagePath.trim();
94+
}
95+
96+
public String getPage() {
97+
return page;
98+
}
99+
100+
public void setPage(String page) {
101+
this.page = page == null ? null : page.trim();
102+
}
103+
104+
public String getEmphasisKeyword() {
105+
return emphasisKeyword;
106+
}
107+
108+
public void setEmphasisKeyword(String emphasisKeyword) {
109+
this.emphasisKeyword = emphasisKeyword == null ? null : emphasisKeyword.trim();
110+
}
111+
112+
public String getCreateTime() {
113+
return createTime;
114+
}
115+
116+
public void setCreateTime(String createTime) {
117+
this.createTime = createTime == null ? null : createTime.trim();
118+
}
119+
120+
public String getModifiedTime() {
121+
return modifiedTime;
122+
}
123+
124+
public void setModifiedTime(String modifiedTime) {
125+
this.modifiedTime = modifiedTime == null ? null : modifiedTime.trim();
126+
}
127+
}

‎src/main/java/com/fangxuele/tool/push/logic/MessageTypeEnum.java‎

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@ public enum MessageTypeEnum {
2626
HTTP(13, "HTTP请求"),
2727
DING(14, "钉钉"),
2828
BD_YUN(15, "百度云短信"),
29-
QI_NIU_YUN(16, "七牛云短信");
29+
QI_NIU_YUN(16, "七牛云短信"),
30+
WX_UNIFORM_MESSAGE(17, "小程序-统一服务消息");
3031

3132
private int code;
3233

@@ -47,6 +48,7 @@ public enum MessageTypeEnum {
4748
public static final int DING_CODE = 14;
4849
public static final int BD_YUN_CODE = 15;
4950
public static final int QI_NIU_YUN_CODE = 16;
51+
public static final int WX_UNIFORM_MESSAGE_CODE = 17;
5052

5153
MessageTypeEnum(int code, String name) {
5254
this.code = code;
@@ -101,6 +103,9 @@ public static String getName(int code) {
101103
case 16:
102104
name = QI_NIU_YUN.name;
103105
break;
106+
case 17:
107+
name = WX_UNIFORM_MESSAGE.name;
108+
break;
104109
default:
105110
name = "";
106111
}

‎src/main/java/com/fangxuele/tool/push/logic/PushControl.java‎

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
import com.fangxuele.tool.push.dao.TPushHistoryMapper;
99
import com.fangxuele.tool.push.domain.TPushHistory;
1010
import com.fangxuele.tool.push.logic.msgmaker.MsgMakerFactory;
11+
import com.fangxuele.tool.push.logic.msgmaker.WxMaTemplateMsgMaker;
12+
import com.fangxuele.tool.push.logic.msgmaker.WxMpTemplateMsgMaker;
1113
import com.fangxuele.tool.push.logic.msgsender.IMsgSender;
1214
import com.fangxuele.tool.push.logic.msgsender.MailMsgSender;
1315
import com.fangxuele.tool.push.logic.msgsender.MsgSenderFactory;
@@ -149,7 +151,8 @@ public static boolean configCheck() {
149151
switch (msgType) {
150152
case MessageTypeEnum.MP_TEMPLATE_CODE:
151153
case MessageTypeEnum.KEFU_CODE:
152-
case MessageTypeEnum.KEFU_PRIORITY_CODE: {
154+
case MessageTypeEnum.KEFU_PRIORITY_CODE:
155+
case MessageTypeEnum.WX_UNIFORM_MESSAGE_CODE: {
153156
if (App.config.isMpUseOutSideAt()) {
154157
if (App.config.isMpManualAt() &&
155158
(StringUtils.isEmpty(App.config.getMpAt()) || StringUtils.isEmpty(App.config.getMpAtExpiresIn()))) {
@@ -430,7 +433,12 @@ private static void savePushResult(String msgName, String resultInfo, File file)
430433
* 准备消息构造器
431434
*/
432435
static void prepareMsgMaker() {
433-
MsgMakerFactory.getMsgMaker().prepare();
436+
if (App.config.getMsgType() == MessageTypeEnum.WX_UNIFORM_MESSAGE_CODE) {
437+
new WxMpTemplateMsgMaker().prepare();
438+
new WxMaTemplateMsgMaker().prepare();
439+
} else {
440+
MsgMakerFactory.getMsgMaker().prepare();
441+
}
434442
}
435443

436444
/**

‎src/main/java/com/fangxuele/tool/push/logic/msgsender/AliYunMsgSender.java‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ public SendResult send(String[] msgData) {
4040
try {
4141
//初始化acsClient,暂不支持region化
4242
SendSmsRequest sendSmsRequest = aliyunMsgMaker.makeMsg(msgData);
43+
sendSmsRequest.setPhoneNumbers(msgData[0]);
4344
if (PushControl.dryRun) {
4445
sendResult.setSuccess(true);
4546
return sendResult;

‎src/main/java/com/fangxuele/tool/push/logic/msgsender/MsgSenderFactory.java‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ public static IMsgSender getMsgSender() {
3333
case MessageTypeEnum.KEFU_PRIORITY_CODE:
3434
iMsgSender = new WxKefuPriorMsgSender();
3535
break;
36+
case MessageTypeEnum.WX_UNIFORM_MESSAGE_CODE:
37+
iMsgSender = new WxUniformMsgSender();
38+
break;
3639
case MessageTypeEnum.ALI_YUN_CODE:
3740
iMsgSender = new AliYunMsgSender();
3841
break;
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
package com.fangxuele.tool.push.logic.msgsender;
2+
3+
import cn.binarywang.wx.miniapp.bean.WxMaTemplateMessage;
4+
import cn.binarywang.wx.miniapp.bean.WxMaUniformMessage;
5+
import cn.binarywang.wx.miniapp.bean.WxMaUniformMessage.MiniProgram;
6+
import com.fangxuele.tool.push.App;
7+
import com.fangxuele.tool.push.logic.PushControl;
8+
import com.fangxuele.tool.push.logic.msgmaker.WxMaTemplateMsgMaker;
9+
import com.fangxuele.tool.push.logic.msgmaker.WxMpTemplateMsgMaker;
10+
import lombok.extern.slf4j.Slf4j;
11+
import me.chanjar.weixin.mp.bean.template.WxMpTemplateMessage;
12+
13+
/**
14+
* <pre>
15+
* 微信统一服务消息发送器
16+
* </pre>
17+
*
18+
* @author <a href="https://github.com/rememberber">RememBerBer</a>
19+
* @since 2019/9/29.
20+
*/
21+
@Slf4j
22+
public class WxUniformMsgSender implements IMsgSender {
23+
24+
private WxMpTemplateMsgMaker wxMpTemplateMsgMaker;
25+
26+
private WxMaTemplateMsgMaker wxMaTemplateMsgMaker;
27+
28+
public WxUniformMsgSender() {
29+
wxMpTemplateMsgMaker = new WxMpTemplateMsgMaker();
30+
wxMaTemplateMsgMaker = new WxMaTemplateMsgMaker();
31+
}
32+
33+
@Override
34+
public SendResult send(String[] msgData) {
35+
SendResult sendResult = new SendResult();
36+
37+
try {
38+
String openId = msgData[0];
39+
WxMaTemplateMessage wxMaTemplateMessage = wxMaTemplateMsgMaker.makeMsg(msgData);
40+
WxMpTemplateMessage wxMpTemplateMessage = wxMpTemplateMsgMaker.makeMsg(msgData);
41+
42+
WxMaUniformMessage wxMaUniformMessage = new WxMaUniformMessage();
43+
wxMaUniformMessage.setMpTemplateMsg(true);
44+
wxMaUniformMessage.setToUser(openId);
45+
wxMaUniformMessage.setAppid(App.config.getMiniAppAppId());
46+
wxMaUniformMessage.setTemplateId(wxMpTemplateMessage.getTemplateId());
47+
wxMaUniformMessage.setUrl(wxMpTemplateMessage.getUrl());
48+
wxMaUniformMessage.setPage(wxMaTemplateMessage.getPage());
49+
wxMaUniformMessage.setFormId(msgData[1]);
50+
MiniProgram miniProgram = new MiniProgram();
51+
miniProgram.setAppid(App.config.getMiniAppAppId());
52+
miniProgram.setPagePath(wxMaTemplateMessage.getPage());
53+
54+
wxMaUniformMessage.setMiniProgram(miniProgram);
55+
wxMaUniformMessage.setData(wxMaTemplateMessage.getData());
56+
wxMaUniformMessage.setEmphasisKeyword(wxMaTemplateMessage.getEmphasisKeyword());
57+
58+
if (PushControl.dryRun) {
59+
sendResult.setSuccess(true);
60+
return sendResult;
61+
} else {
62+
WxMaTemplateMsgSender.getWxMaService().getMsgService().sendUniformMsg(wxMaUniformMessage);
63+
}
64+
} catch (Exception e) {
65+
sendResult.setSuccess(false);
66+
sendResult.setInfo(e.getMessage());
67+
log.error(e.toString());
68+
return sendResult;
69+
}
70+
71+
sendResult.setSuccess(true);
72+
return sendResult;
73+
}
74+
75+
@Override
76+
public SendResult asyncSend(String[] msgData) {
77+
return null;
78+
}
79+
}

‎src/main/java/com/fangxuele/tool/push/ui/UiConsts.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public class UiConsts {
1616
* 软件名称,版本
1717
*/
1818
public final static String APP_NAME = "WePush";
19-
public final static String APP_VERSION = "v_4.0.0_190928";
19+
public final static String APP_VERSION = "v_4.1.0_190930";
2020

2121
/**
2222
* Logo-1024*1024

0 commit comments

Comments
 (0)