| 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.SysOrder; | 
| import com.matrix.system.hive.bean.SysOrderItem; | 
| import com.matrix.system.hive.bean.SysShopInfo; | 
| import com.matrix.system.hive.bean.SysVipInfo; | 
| import com.matrix.system.hive.dao.*; | 
| 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 DdqxTemplateMessageBulder implements TemplateMessageBulder { | 
|   | 
|     @Autowired | 
|     SysOrderDao orderDao; | 
|   | 
|     @Autowired | 
|     SysVipInfoDao vipInfoDao; | 
|   | 
|     @Autowired | 
|     private SysBeauticianStateDao beauticianStateDao; | 
|   | 
|     @Autowired | 
|     private SysShopInfoDao shopInfoDao; | 
|   | 
|     @Autowired | 
|     private  SysOrderItemDao orderItemDao; | 
|   | 
|   | 
|   | 
|     @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 orderId= (Long) messageJsonParam.get("orderId"); | 
|         SysOrder sysOrder = orderDao.selectById(orderId); | 
|         List<SysOrderItem> sysOrderItems = orderItemDao.selectByOrderId(orderId); | 
|   | 
|         //校验客户openId (必须) | 
|         SysVipInfo vipInfo=vipInfoDao.selectById(sysOrder.getVipId()); | 
|         String touser= vipInfo.getOpenId(); | 
|         if(StringUtils.isBlank(touser)){ | 
|             builParam.put("error","未获取到"+vipInfo.getVipName()+"用户小程序openid"); | 
|             return builParam; | 
|         } | 
|   | 
|   | 
|         //自定义信息区START========================================================================================================= | 
|         SysShopInfo sysShopInfo = shopInfoDao.selectById(sysOrder.getShopId()); | 
|         String time= DateUtil.dateFormatStr(sysOrder.getPayTime(),DateUtil.DATE_FORMAT_MM); | 
|   | 
|         //如果一个项目存在多个护理项目则发送多次消息 | 
|         String first="您好!您的订单已取消!"; | 
|         String goodsName=""; | 
|         for (SysOrderItem orderItem:sysOrderItems){ | 
|             goodsName+=orderItem.getShoppingGoods().getName()+"x"+orderItem.getCount()+","; | 
|         } | 
|         goodsName=goodsName.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(sysOrder.getOrderNo(),"#453454"); | 
|         messagePojo.setKeyWord(goodsName,"#453454"); | 
|         messagePojo.setKeyWord(time,"#453454"); | 
|         messagePojo.setRemark("如有需要,请重新下单 ,点击【详情】可查询订单明细,若非本人或授权操作,请及时与门店联系","#453454"); | 
|   | 
|         //小程序配置 | 
|         GzhTemplateMessagePojo.Miniprogram miniprogram=new GzhTemplateMessagePojo.Miniprogram(xcxAppId, | 
|                 "pages/purchaseRecords/detail?id="+orderId); | 
|         messagePojo.setMiniprogram(miniprogram); | 
|   | 
|   | 
|         uniformMsgPojo.setMp_template_msg(messagePojo); | 
|         //自定义信息区END========================================================================================================= | 
|   | 
|         //返回调用者使用的参数(必须) | 
|         msgList.add(uniformMsgPojo); | 
|         builParam.put("msgList",msgList); | 
|         return builParam; | 
|     } | 
| } |