TemplateMessageService.java
2.73 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
package cn.fw.hestia.rpc.passport;
import cn.fw.data.base.domain.common.Message;
import cn.fw.hestia.common.constant.MessageStr;
import cn.fw.hestia.common.utils.StringUtils;
import cn.fw.hestia.rpc.passport.dto.TMParam;
import cn.fw.passport.sdk.api.WxMpTemplateMessageApi;
import cn.fw.passport.sdk.api.param.WxMpTempMessageData;
import cn.fw.passport.sdk.api.param.WxMpTempMessageParam;
import com.alibaba.fastjson.JSONArray;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* passport系统-模板消息服务
* <p>
* create at 2019-05-15
*
* @author kurisu
*/
@Slf4j
@Service
public class TemplateMessageService {
private final WxMpTemplateMessageApi wxMpTemplateMessageApi;
public TemplateMessageService(final WxMpTemplateMessageApi wxMpTemplateMessageApi) {
this.wxMpTemplateMessageApi = wxMpTemplateMessageApi;
}
/**
* 发送消息通知
*
* @param messageParam
*/
public String sendTemplateMessage(TMParam messageParam) {
log.info("开始发送通知,入参:{}", messageParam);
try {
WxMpTempMessageParam param = new WxMpTempMessageParam();
param.setCusId(messageParam.getMemberId());
param.setTempCode(messageParam.getTemplateCode());
WxMpTempMessageData remark = new WxMpTempMessageData();
remark.setValue(messageParam.getRemark());
param.setRemark(remark);
param.setTitle(new WxMpTempMessageData(messageParam.getTitle()));
if (StringUtils.isValid(messageParam.getKeywords())) {
List<WxMpTempMessageData> keywords = JSONArray.parseArray(messageParam.getKeywords(), WxMpTempMessageData.class);
param.setKeyWordList(keywords);
}
String pagePath = getPagePath(messageParam.getPath(), messageParam.getSceneToken());
if (StringUtils.isValid(pagePath)) {
param.setPagePath(pagePath);
}
Message<?> msg = wxMpTemplateMessageApi.send(param);
if (!msg.isSuccess()) {
log.error("【passport系统】发送模板消息失败:{}", msg.getResult());
return msg.getResult();
}
return MessageStr.SUCCEED_STR;
} catch (Exception e) {
log.error("发送模板消息失败", e);
return "系统调用异常";
}
}
private String getPagePath(String path, Long sceneToken) {
if (StringUtils.isEmpty(path)) {
return null;
}
StringBuilder sb = new StringBuilder(path);
if (StringUtils.isValid(path)) {
sb.append("?sceneToken=").append(sceneToken);
}
return sb.toString();
}
}