From 7ac435d93858f6658248c2d4ea763ce1cfd0f012 Mon Sep 17 00:00:00 2001 From: 935090232@qq.com <ak473600000> Date: Sat, 16 Jan 2021 22:52:58 +0800 Subject: [PATCH] 消息提醒 --- /dev/null | 15 --- zq-erp/src/main/java/com/matrix/system/shopXcx/action/ShopWxtemplateMsgAction.java | 18 ---- zq-erp/src/main/java/com/matrix/system/wechart/templateMsg/Task/UniformMsgSentTask.java | 12 +- zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjServicesServiceImpl.java | 9 +- zq-erp/src/main/java/com/matrix/system/wechart/templateMsg/UniformMsgParam.java | 49 ++++++++++++ zq-erp/src/main/java/com/matrix/system/wechart/templateMsg/Task/messageBulderDemo/FwwcTemplateMessageBulder.java | 109 +++++++++++++++++++++++++++ zq-erp/src/main/java/com/matrix/system/wechart/templateMsg/GzhTemplateMessagePojo.java | 20 ++-- zq-erp/src/main/resources/config/application.properties | 2 8 files changed, 183 insertions(+), 51 deletions(-) diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjServicesServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjServicesServiceImpl.java index d1aeb5f..e8a589d 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjServicesServiceImpl.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjServicesServiceImpl.java @@ -19,6 +19,7 @@ import com.matrix.system.hive.pojo.MyBeauticianCount; import com.matrix.system.hive.service.*; import com.matrix.system.shopXcx.mqTask.MQTaskRouting; +import com.matrix.system.wechart.templateMsg.UniformMsgParam; import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -578,10 +579,10 @@ projServices.setConsumeTime(new Date()); int result=sysProjServicesDao.update(projServices); //发送微信公众号提醒 - JSONObject param=new JSONObject(); - param.put("companyId",projServices.getCompanyId()); - param.put("serviceId",projServices.getId()); - rabiitMqTemplate.sendMsg(MQTaskRouting.SEND_UNIFORM_TEMPLATE_MSG+evn,param.toJSONString()); + UniformMsgParam uniformMsgParam=new UniformMsgParam(projServices.getCompanyId(),UniformMsgParam.GZH_FWWC); + uniformMsgParam.put("serviceId",projServices.getId()); + rabiitMqTemplate.sendMsg(MQTaskRouting.SEND_UNIFORM_TEMPLATE_MSG+evn,uniformMsgParam.toJSONString()); + return result; } } diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/action/ShopWxtemplateMsgAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/action/ShopWxtemplateMsgAction.java index ec600ff..4252a42 100644 --- a/zq-erp/src/main/java/com/matrix/system/shopXcx/action/ShopWxtemplateMsgAction.java +++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/action/ShopWxtemplateMsgAction.java @@ -81,22 +81,8 @@ @RequestMapping(value = "/modifyShopWxtemplateMsg") public @ResponseBody AjaxResult modifyShopWxtemplateMsg(ShopWxtemplateMsg newShopWxtemplateMsg) { - ShopWxtemplateMsg oldShopWxtemplateMsg = WebUtil.getSessionAttribute(BEV); - int i = 0; - Map<String, Object> modifyMap = null; - try { - if (!ModelUtils.isModified(oldShopWxtemplateMsg, newShopWxtemplateMsg)) { - i = MatrixConstance.DML_SUCCESSS; - } - modifyMap = ModelUtils.comparePojo2Map(oldShopWxtemplateMsg, newShopWxtemplateMsg); - } catch (Exception e) { - throw new GlobleException(SystemErrorCode.DATA_UPDATE_FAIL, e, newShopWxtemplateMsg); - } - if (modifyMap.size() > 0) { - modifyMap.put("id", oldShopWxtemplateMsg.getId()); - shopWxtemplateMsgDao.updateByMap(modifyMap); - } - i = MatrixConstance.DML_SUCCESSS; + + int i = shopWxtemplateMsgDao.updateByModel(newShopWxtemplateMsg); WebUtil.removeSessionAttribute(BEV); if (i > 0) { return new AjaxResult(AjaxResult.STATUS_SUCCESS, SystemMessageCode.UPDATE_SUCCES, "微信模板消息"); diff --git a/zq-erp/src/main/java/com/matrix/system/wechart/templateMsg/GzhTemplateMessagePojo.java b/zq-erp/src/main/java/com/matrix/system/wechart/templateMsg/GzhTemplateMessagePojo.java index d6c6517..627d64d 100644 --- a/zq-erp/src/main/java/com/matrix/system/wechart/templateMsg/GzhTemplateMessagePojo.java +++ b/zq-erp/src/main/java/com/matrix/system/wechart/templateMsg/GzhTemplateMessagePojo.java @@ -18,11 +18,19 @@ private Miniprogram miniprogram; public static class Miniprogram{ private String appid; - private String pagepath; + private String path; - public Miniprogram(String appid, String pagepath) { + public Miniprogram(String appid, String path) { this.appid = appid; - this.pagepath = pagepath; + this.path = path; + } + + public String getPath() { + return path; + } + + public void setPath(String path) { + this.path = path; } public String getAppid() { @@ -33,13 +41,7 @@ this.appid = appid; } - public String getPagepath() { - return pagepath; - } - public void setPagepath(String pagepath) { - this.pagepath = pagepath; - } } public Map<String ,Item> data=new HashedMap(); public static class Item{ 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 index 7094fe9..3549c4a 100644 --- 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 @@ -21,10 +21,10 @@ import com.matrix.system.shopXcx.bean.ShopWxtemplateMsg; import com.matrix.system.shopXcx.dao.ShopWxtemplateMsgDao; import com.matrix.system.wechart.templateMsg.GzhTemplateMessagePojo; -import com.matrix.system.wechart.templateMsg.TemplateNameConstance; import com.matrix.system.wechart.templateMsg.UniformMsgPojo; import com.rabbitmq.client.DeliverCallback; import com.rabbitmq.client.Delivery; +import io.swagger.models.auth.In; import org.apache.commons.collections.map.HashedMap; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -62,29 +62,29 @@ String messages = new String(message.getBody(), "UTF-8"); JSONObject messageJsonParam=JSONObject.parseObject(messages); - if(!messageJsonParam.containsKey("companyId")){ - LogUtil.error("小程序消息推送参数格式异常发送模板消息需要传JSONO字符串作为格式 例如:{\"companyId\":17} companyId 是必须属性"); + if(!messageJsonParam.containsKey("companyId")||(!messageJsonParam.containsKey("templateCode"))){ + LogUtil.error("小程序消息推送参数格式异常发送模板消息需要传JSONO字符串作为格式 例如:{\"companyId\":17,\"templateCode\":10000} companyId 、templateCode 是必须属性"); return; } - Long companyId = Long.parseLong( messageJsonParam.get("companyId").toString()); + Integer templateCode = Integer.parseInt( messageJsonParam.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(TemplateNameConstance.GZH_YYTX,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", messageJsonParam); diff --git a/zq-erp/src/main/java/com/matrix/system/wechart/templateMsg/Task/messageBulderDemo/FwwcTemplateMessageBulder.java b/zq-erp/src/main/java/com/matrix/system/wechart/templateMsg/Task/messageBulderDemo/FwwcTemplateMessageBulder.java new file mode 100644 index 0000000..86b2ddc --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/wechart/templateMsg/Task/messageBulderDemo/FwwcTemplateMessageBulder.java @@ -0,0 +1,109 @@ +package com.matrix.system.wechart.templateMsg.Task.messageBulderDemo; + +import com.alibaba.fastjson.JSONObject; +import com.matrix.core.tools.DateUtil; +import com.matrix.core.tools.StringUtils; +import com.matrix.system.hive.bean.SysBeauticianState; +import com.matrix.system.hive.bean.SysProjServices; +import com.matrix.system.hive.bean.SysShopInfo; +import com.matrix.system.hive.bean.SysVipInfo; +import com.matrix.system.hive.dao.SysBeauticianStateDao; +import com.matrix.system.hive.dao.SysProjServicesDao; +import com.matrix.system.hive.dao.SysShopInfoDao; +import com.matrix.system.hive.dao.SysVipInfoDao; +import com.matrix.system.wechart.templateMsg.GzhTemplateMessagePojo; +import com.matrix.system.wechart.templateMsg.Task.TemplateMessageBulder; +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.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * 服务完成提醒 + */ +@Component +public class FwwcTemplateMessageBulder implements TemplateMessageBulder { + + @Autowired + SysProjServicesDao projServicesDao; + + @Autowired + SysVipInfoDao vipInfoDao; + + @Autowired + private SysBeauticianStateDao beauticianStateDao; + + @Autowired + private SysShopInfoDao shopInfoDao; + + + + @Override + public Map buildMsg(Map param) { + + //返回参数 + Map builParam=new HashedMap(); + //获取基础公共参数 + String gzhAppid= (String) param.get("gzhAppid"); + String template_id= (String) param.get("template_id"); + String xcxAppId= (String) param.get("xcxAppId"); + //模板消息列表 + List msgList=new ArrayList(); + + //触发点传送的json参数 + JSONObject messageJsonParam= (JSONObject) param.get("messageJsonParam"); + //构建消息主体 + Long serviceId= (Long) messageJsonParam.get("serviceId"); + SysProjServices sysProjServices = projServicesDao.selectById(serviceId); + + + //校验客户openId (必须) + SysVipInfo vipInfo=vipInfoDao.selectById(sysProjServices.getVipId()); + String touser= vipInfo.getOpenId(); + if(StringUtils.isBlank(touser)){ + builParam.put("error","未获取到"+vipInfo.getVipName()+"用户小程序openid"); + return builParam; + } + + + //自定义信息区START========================================================================================================= + SysShopInfo sysShopInfo = shopInfoDao.selectById(sysProjServices.getShopId()); + List<SysBeauticianState> beauticianStateList = beauticianStateDao.selectBySerIds(sysProjServices.getId()); + String time= DateUtil.dateFormatStr(sysProjServices.getConsumeTime(),DateUtil.DATE_FORMAT_MM); + + //如果一个项目存在多个护理项目则发送多次消息 + String first="您好!您预约的"; + for (SysBeauticianState beauticianState:beauticianStateList){ + first+=beauticianState.getProjInfo().getName()+beauticianState.getCount()+"次,"; + } + first=first.substring(0,first.length())+"服务已完成"; + UniformMsgPojo uniformMsgPojo=new UniformMsgPojo(); + GzhTemplateMessagePojo messagePojo=new GzhTemplateMessagePojo(); + uniformMsgPojo.setTouser(touser); + messagePojo.setTemplate_id(template_id); + messagePojo.setAppid(gzhAppid); + //个性参数设置 + messagePojo.setFirst(first,"#453454"); + messagePojo.setKeyWord(sysShopInfo.getShopName(),"#453454"); + messagePojo.setKeyWord(time,"#453454"); + messagePojo.setRemark("点击【详情】可查询订单明细,若非本人或授权操作,请及时与门店联系","#453454"); + + //小程序配置 + GzhTemplateMessagePojo.Miniprogram miniprogram=new GzhTemplateMessagePojo.Miniprogram(xcxAppId, + "pages/yuyue/showYyInfo?id="+serviceId); + messagePojo.setMiniprogram(miniprogram); + + + uniformMsgPojo.setMp_template_msg(messagePojo); + //自定义信息区END========================================================================================================= + + //返回调用者使用的参数(必须) + msgList.add(uniformMsgPojo); + builParam.put("msgList",msgList); + return builParam; + } +} diff --git a/zq-erp/src/main/java/com/matrix/system/wechart/templateMsg/TemplateNameConstance.java b/zq-erp/src/main/java/com/matrix/system/wechart/templateMsg/TemplateNameConstance.java deleted file mode 100644 index d66a4f3..0000000 --- a/zq-erp/src/main/java/com/matrix/system/wechart/templateMsg/TemplateNameConstance.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.matrix.system.wechart.templateMsg; - -/** - * 模板code定义常量 - * @author jyy - */ -public interface TemplateNameConstance { - - /** - * 公众号预约提醒 - */ - Integer GZH_YYTX=10000; - - -} diff --git a/zq-erp/src/main/java/com/matrix/system/wechart/templateMsg/UniformMsgParam.java b/zq-erp/src/main/java/com/matrix/system/wechart/templateMsg/UniformMsgParam.java new file mode 100644 index 0000000..1db4733 --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/wechart/templateMsg/UniformMsgParam.java @@ -0,0 +1,49 @@ +package com.matrix.system.wechart.templateMsg; + +import com.alibaba.fastjson.JSONObject; + +/** + * 统一消息参数体 + */ +public class UniformMsgParam extends JSONObject{ + + /** + * 公众号预约提醒 + */ + public static final Integer GZH_YYTX = 10000; + /** + * 购买成功通知 + */ + public static final Integer GZH_GMCG = 10001; + /** + * 预约变更通知 + */ + public static final Integer GZH_YYBG = 10002; + /** + * 预约到时提醒 + */ + public static final Integer GZH_YYDS = 10003; + /** + * 预约成功提醒 + */ + public static final Integer GZH_YYCG = 10004; + /** + * 充值成功通知 + */ + public static final Integer GZH_CZCG = 10005; + /** + * 服务完成通知 + */ + public static final Integer GZH_FWWC = 10006; + /** + * 订单取消通知 + */ + public static final Integer GZH_DDQX = 10007; + + + public UniformMsgParam(Long companyId, Integer templateCode){ + super.put("companyId",companyId); + super.put("templateCode",templateCode); + } + +} diff --git a/zq-erp/src/main/resources/config/application.properties b/zq-erp/src/main/resources/config/application.properties index 0cc9ddf..c427966 100644 --- a/zq-erp/src/main/resources/config/application.properties +++ b/zq-erp/src/main/resources/config/application.properties @@ -1,4 +1,4 @@ -evn=dev +evn=ffff server.port=8080 -- Gitblit v1.9.1