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.*; 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 GmcgTemplateMessageBulder 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 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="您好!您购买了"; for (SysOrderItem orderItem:sysOrderItems){ first+=orderItem.getShoppingGoods().getName()+"x"+orderItem.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(vipInfo.getVipNo(),"#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; } }