| package com.matrix.system.shopXcx.mqTask; | 
|   | 
|   | 
| import com.matrix.component.asyncmessage.MessageHandler; | 
| import com.matrix.core.tools.DingDingRobotUtil; | 
| import com.matrix.core.tools.LogUtil; | 
| import com.matrix.core.tools.StringUtils; | 
| 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.hive.dao.SysVipInfoDao; | 
| import com.matrix.system.shopXcx.bean.ShopDeliveryInfo; | 
| import com.matrix.system.shopXcx.bean.ShopOrder; | 
| import com.matrix.system.shopXcx.bean.ShopOrderDetails; | 
| import com.matrix.system.shopXcx.dao.ShopDeliveryInfoDao; | 
| import com.matrix.system.shopXcx.dao.ShopOrderDao; | 
| import com.matrix.system.shopXcx.dao.ShopOrderDetailsDao; | 
| import com.rabbitmq.client.DeliverCallback; | 
| import com.rabbitmq.client.Delivery; | 
| import org.springframework.beans.factory.annotation.Autowired; | 
| import org.springframework.stereotype.Component; | 
|   | 
| import java.io.IOException; | 
| import java.util.List; | 
| import java.util.Map; | 
|   | 
| /** | 
|  * 微商城订单同步到erp系统 | 
|  */ | 
| @Component | 
| public class OrderDingDingNoticeTask implements MessageHandler { | 
|   | 
|   | 
|     @Autowired | 
|     ShopOrderDao shopOrderDao; | 
|   | 
|     @Autowired | 
|     ShopOrderDetailsDao shopOrderDetailsDao; | 
|   | 
|   | 
|     @Autowired | 
|     BusParameterSettingsDao parameterSettingsDao; | 
|   | 
|     @Autowired | 
|     SysVipInfoDao sysVipInfoDao; | 
|   | 
|     @Autowired | 
|     ShopDeliveryInfoDao shopDeliveryInfoDao; | 
|   | 
|     @Override | 
|     public String getName() { | 
|         return "创建订单通知任务"; | 
|     } | 
|   | 
|     @Override | 
|     public String getRouteKey() { | 
|         return AsyncMessageRouting.CREATE_ORDER; | 
|     } | 
|   | 
|   | 
|     @Override | 
|     public void handle(Map<String,Object> param){ | 
|         String orderIdStr = (String) param.get("orderId"); | 
|         Integer orderId=Integer.valueOf(orderIdStr); | 
|         //获取订单信息 | 
|         ShopOrder order = shopOrderDao.selectById(orderId); | 
|         LogUtil.debug("收到创建订单通知任务orderId={}", orderId); | 
|         BusParameterSettings wxOrderNoticeDingdingToken = parameterSettingsDao.selectCompanyParamByCode(AppConstance.WX_ORDER_NOTICE_DINGDING_TOKEN, order.getCompanyId()); | 
|         if (wxOrderNoticeDingdingToken != null && StringUtils.isNotBlank(wxOrderNoticeDingdingToken.getParamValue())) { | 
|             //获取订单详情 | 
|             List<ShopOrderDetails> orderDetails = shopOrderDetailsDao.selectByOrderId(Integer.valueOf(orderId)); | 
|             StringBuilder content = new StringBuilder(); | 
|             orderDetails.stream().forEach(i -> content.append(i.getsTitle()).append("*").append( | 
|                     i.getCount()).append(";")); | 
|             ShopDeliveryInfo addInfo = shopDeliveryInfoDao.selectByOrderId(orderId); | 
|   | 
|             String shippingMethod="物流配送"; | 
|             if(AppConstance.SHIPPING_METHOD_SELF .equals(order.getShippingMethod())){ | 
|                 shippingMethod="门店自提"; | 
|             } | 
|             DingDingRobotUtil.sendText(wxOrderNoticeDingdingToken.getParamValue(), | 
|                     "新订单,微商城订单编号 "+order.getOrderNo() | 
|                             +"; 订单金额:¥"+order.getOrderMoney() | 
|                             +";订单内容:"+ content.toString() | 
|                             +";收货电话:"+ order.getUserTel()+",收货人:"+ order.getUserName()+",收货地址:"+ addInfo.getReceiveAddress() | 
|                         +"配送方式:"+shippingMethod | 
|                     ,""); | 
|         }else{ | 
|             LogUtil.debug("未配置订单钉钉提醒"); | 
|         } | 
|     } | 
|   | 
| } |