package com.matrix.system.shopXcx.mqTask; 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; /** * 微商城订单同步到erp系统 */ @Component public class OrderDingDingNoticeTask implements DeliverCallback { @Autowired ShopOrderDao shopOrderDao; @Autowired ShopOrderDetailsDao shopOrderDetailsDao; @Autowired BusParameterSettingsDao parameterSettingsDao; @Autowired SysVipInfoDao sysVipInfoDao; @Autowired ShopDeliveryInfoDao shopDeliveryInfoDao; @Override public void handle(String consumerTag, Delivery message) throws IOException { String orderIdStr = new String(message.getBody(), "UTF-8"); 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 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("未配置订单钉钉提醒"); } } }