From c253b555c7905c5136d47cd615ef545fa50cc6ad Mon Sep 17 00:00:00 2001 From: 935090232@qq.com <ak473600000> Date: Sun, 20 Feb 2022 21:24:16 +0800 Subject: [PATCH] Merge branch 'api_score_meger' --- zq-erp/src/main/java/com/matrix/system/wechart/templateMsg/Task/UniformMsgSentTask.java | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 111 insertions(+), 0 deletions(-) diff --git a/zq-erp/src/main/java/com/matrix/system/wechart/templateMsg/Task/UniformMsgSentTask.java b/zq-erp/src/main/java/com/matrix/system/wechart/templateMsg/Task/UniformMsgSentTask.java new file mode 100644 index 0000000..9680fbb --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/wechart/templateMsg/Task/UniformMsgSentTask.java @@ -0,0 +1,111 @@ +package com.matrix.system.wechart.templateMsg.Task; + + +import com.alibaba.fastjson.JSONObject; +import com.matrix.component.asyncmessage.MessageHandler; +import com.matrix.component.tools.HttpClientUtil; +import com.matrix.core.tools.LogUtil; +import com.matrix.core.tools.rr.GlueFactory; +import com.matrix.system.common.bean.BusParameterSettings; +import com.matrix.system.common.constance.AppConstance; +import com.matrix.system.common.dao.BusParameterSettingsDao; +import com.matrix.system.shopXcx.api.WeChatGzhApiTools; +import com.matrix.system.shopXcx.bean.ShopWxtemplateMsg; +import com.matrix.system.shopXcx.dao.ShopWxtemplateMsgDao; +import com.matrix.system.shopXcx.mqTask.AsyncMessageRouting; +import com.matrix.system.wechart.templateMsg.UniformMsgPojo; +import org.apache.commons.collections.map.HashedMap; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.io.IOException; +import java.util.List; +import java.util.Map; + +/** + * 小程序统一消息模板消息发送提醒 + * @author jyy + */ +@Component +public class UniformMsgSentTask implements MessageHandler { + + @Autowired + private ShopWxtemplateMsgDao shopWxtemplateMsgDao; + + @Autowired + private BusParameterSettingsDao busParameterSettingsDao; + + @Override + public String getName() { + return "小程序统一消息模板消息发送提醒"; + } + + @Override + public String getRouteKey() { + return AsyncMessageRouting.SEND_UNIFORM_TEMPLATE_MSG; + } + + /** + * 发送模板消息需要传JSONO字符串作为格式 + * 例如:{"companyId":17} + * companyId 是必须属性 + * @throws IOException + */ + @Override + public void handle(Map<String,Object> param){ + try { + + + if(!param.containsKey("companyId")||(!param.containsKey("templateCode"))){ + LogUtil.error("小程序消息推送参数格式异常发送模板消息需要传JSONO字符串作为格式 例如:{\"companyId\":17,\"templateCode\":10000} companyId 、templateCode 是必须属性"); + return; + } + Long companyId = Long.parseLong( param.get("companyId").toString()); + Integer templateCode = Integer.parseInt( param.get("templateCode").toString()); + + //获取公司微信配置参数 + BusParameterSettings xcxAppId = busParameterSettingsDao.selectCompanyParamByCode(AppConstance.MINIPROGRAM_APPID, companyId); + BusParameterSettings xcxSecret = busParameterSettingsDao.selectCompanyParamByCode(AppConstance.MINIPROGRAM_SECRET, companyId); + BusParameterSettings gzhAppid = busParameterSettingsDao.selectCompanyParamByCode(AppConstance.GZH_APPID, companyId); + //获取消息模板 + ShopWxtemplateMsg template = shopWxtemplateMsgDao.selectByCode(templateCode,companyId); + //校验参数 + if(xcxAppId==null||xcxSecret==null||gzhAppid==null||template==null){ + LogUtil.error("小程序消息推送配置缺失xcxAppId="+xcxAppId+";xcxSecret="+xcxSecret+";gzhAppid="+gzhAppid+";template="+template); + return; + } + //获取模板动态构建类 + TemplateMessageBulder templateMessageBulder = (TemplateMessageBulder) GlueFactory.getInstance().loadInstance(template.getTemplateClass()); + //为模板动态类装备必要的参数 + Map<String, Object> bulderParam = new HashedMap(); + bulderParam.put("xcxAppId", xcxAppId.getParamValue()); + bulderParam.put("gzhAppid", gzhAppid.getParamValue()); + bulderParam.put("template_id", template.getUuid()); + bulderParam.put("messageJsonParam", param); + //调用模板计算出消息体 + Map msgResult = templateMessageBulder.buildMsg(bulderParam); + + if(msgResult.containsKey("error")){ + //错误消息处理 + LogUtil.error("模板消息发送内容:"+msgResult.get("error")); + return; + }else{ + //正常返回消息 + List msgList = (List) msgResult.get("msgList"); + //获取acceToken + String ACCESS_TOKEN = WeChatGzhApiTools.getAccessToken(xcxAppId.getParamValue(), xcxSecret.getParamValue()); + String url = "https://api.weixin.qq.com/cgi-bin/message/wxopen/template/uniform_send?access_token=ACCESS_TOKEN".replaceAll("ACCESS_TOKEN", ACCESS_TOKEN); + for (Object msg : msgList) { + UniformMsgPojo uniformMsgPojo = (UniformMsgPojo) msg; + LogUtil.debug("微信小程序模板消息推送:" + JSONObject.toJSON(uniformMsgPojo).toString()); + //推送消息到微信 + JSONObject result = HttpClientUtil.sendPostWithJson(url, JSONObject.toJSON(uniformMsgPojo).toString()); + //微信返回值 + LogUtil.debug("微信小程序模板消息推送结果:" + result.toString()); + } + } + } catch (Exception e) { + LogUtil.error("消费者执行异常", e); + } + } +} -- Gitblit v1.9.1