Browse Source

【书记在线】【微信通知推送工具以及demo】

feature/dangjian
wanggongfeng 5 years ago
parent
commit
1ad8325c8f
  1. 21
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/MessageServiceImpl.java

21
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/MessageServiceImpl.java

@ -3,6 +3,7 @@ package com.elink.esua.epdc.service.impl;
import cn.binarywang.wx.miniapp.bean.WxMaTemplateData;
import cn.binarywang.wx.miniapp.bean.WxMaUniformMessage;
import com.alibaba.fastjson.JSONObject;
import com.elink.esua.epdc.commons.tools.exception.RenException;
import com.elink.esua.epdc.commons.tools.redis.RedisKeys;
import com.elink.esua.epdc.commons.tools.redis.RedisUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
@ -235,6 +236,18 @@ public class MessageServiceImpl implements MessageService {
@Override
public Result sendMessage(SendMessageFormDTO formDto) {
// 模板ID
String value = "";
if(1 == formDto.getType()){
//通知
value = "您有新的通知,请登录小程序查看!";
}else if(2 == formDto.getType()){
//话题
value = "您有新的话题,请登录小程序查看!";
}else{
throw new RenException("消息推送类型错误!");
}
// 获取openID
Result<UserWorkAndAnalyOpenIdDTO> userIdsResult = adminFeignClient.userRelationWorkAndAnalyOpenId();
if(userIdsResult == null || userIdsResult.getData() == null){
@ -251,7 +264,7 @@ public class MessageServiceImpl implements MessageService {
String analysis_access_token = WxSendMessageUtils.getAccess_token(analysisAppId, analysisSecret);
// 拼接URL
String analysis_url = url + analysis_access_token;
Integer analysisResult = sendOpenIdListMessage(analyOpenIdList, analysisTemplate,analysis_url);
Integer analysisResult = sendOpenIdListMessage(analyOpenIdList, analysisTemplate,analysis_url,value);
log.info("本次小程序消息推送数据端共【" + analyOpenIdList.size() + "】接收者,发送成功【" + analysisResult + "】条。");
}
if(null != workOpenIdList && workOpenIdList.size() > 0){
@ -259,14 +272,14 @@ public class MessageServiceImpl implements MessageService {
String work_access_token = WxSendMessageUtils.getAccess_token(workAppId, workSecret);
// 拼接URL
String work_url = url + work_access_token;
Integer workResult = sendOpenIdListMessage(workOpenIdList,workTemplate,work_url);
Integer workResult = sendOpenIdListMessage(workOpenIdList,workTemplate,work_url,value);
log.info("本次小程序消息推送工作端共【" + workOpenIdList.size() + "】接收者,发送成功【" + workResult + "】条。");
}
return new Result().ok("消息推送成功!");
}
private Integer sendOpenIdListMessage(List<String> openIdList,String templateId,String url){
private Integer sendOpenIdListMessage(List<String> openIdList,String templateId,String url,String value){
AtomicInteger ai = new AtomicInteger(0);
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
List<Future<Integer>> list = new ArrayList<>();
@ -277,7 +290,7 @@ public class MessageServiceImpl implements MessageService {
// 配置模板内容
Map<String, TemplateData> m = new HashMap<>(5);
TemplateData keyword1 = new TemplateData();
keyword1.setValue("您有新的话题,请登录小程序查看!");
keyword1.setValue(value);
m.put("thing1", keyword1);
TemplateData keyword2 = new TemplateData();
String dateStr = sdf.format(new Date());

Loading…
Cancel
Save