From e23c8975e6bb0934cb5db46a94d0f83c9739d9ab Mon Sep 17 00:00:00 2001 From: 935090232@qq.com <ak473600000> Date: Sun, 20 Mar 2022 16:33:17 +0800 Subject: [PATCH] 重构:套餐项目 --- zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/OrderTask.java | 69 ++++++++++++++++++---------------- 1 files changed, 37 insertions(+), 32 deletions(-) diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/OrderTask.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/OrderTask.java index 2c9ff6d..05086bb 100644 --- a/zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/OrderTask.java +++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/OrderTask.java @@ -1,39 +1,40 @@ package com.matrix.system.shopXcx.mqTask; -import com.matrix.biz.bean.BizUser; -import com.matrix.biz.service.BizUserService; +import com.matrix.component.asyncmessage.MessageHandler; import com.matrix.core.tools.LogUtil; import com.matrix.core.tools.StringUtils; import com.matrix.system.common.constance.AppConstance; import com.matrix.system.common.dao.BusParameterSettingsDao; import com.matrix.system.constance.Dictionary; +import com.matrix.system.fenxiao.dao.ShopSalesmanGradeDao; +import com.matrix.system.fenxiao.dao.ShopSalesmanOrderDao; import com.matrix.system.hive.bean.*; import com.matrix.system.hive.dao.*; import com.matrix.system.hive.service.CodeService; import com.matrix.system.hive.service.ShoppingGoodsService; import com.matrix.system.hive.service.SysOrderService; +import com.matrix.system.hive.service.SysVipInfoService; +import com.matrix.system.hive.service.imp.SysOrderServiceHelper; import com.matrix.system.shopXcx.bean.ShopOrder; import com.matrix.system.shopXcx.bean.ShopOrderDetails; import com.matrix.system.shopXcx.bean.ShopSku; import com.matrix.system.shopXcx.dao.ShopOrderDao; import com.matrix.system.shopXcx.dao.ShopOrderDetailsDao; import com.matrix.system.shopXcx.dao.ShopSkuDao; -import com.rabbitmq.client.DeliverCallback; -import com.rabbitmq.client.Delivery; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import java.io.IOException; import java.util.Date; import java.util.List; +import java.util.Map; /** * 微商城订单同步到erp系统 */ @Component -public class OrderTask implements DeliverCallback { +public class OrderTask implements MessageHandler { @Autowired @@ -42,7 +43,7 @@ ShopOrderDetailsDao shopOrderDetailsDao; @Autowired - BizUserService bizUserService; + SysVipInfoService sysVipInfoService; @Autowired @@ -78,8 +79,18 @@ @Autowired private ShoppingGoodsDao shoppingGoodsDao; + @Autowired + private ShopSalesmanOrderDao shopSalesmanOrderDao; + + @Autowired + private ShopSalesmanGradeDao shopSalesmanGradeDao; + + @Autowired + private SysOrderServiceHelper sysOrderServiceHelper; + + @Transactional(rollbackFor = Exception.class) - public void createOrder(ShopOrder orderDto) { + public void synchronizationOrderToErp(ShopOrder orderDto) { //判断是否存在需要同步的产品,只有绑定了erp中产品的才同步 boolean needTb=false; @@ -91,10 +102,8 @@ } if(needTb){ - BizUser bizUser = bizUserService.findByOpenId(orderDto.getUserId()); + SysVipInfo vipInfo = sysVipInfoService.findById(orderDto.getUserId()); SysOrder order = new SysOrder(); - //TODO 根据公司id区分 - SysVipInfo vipInfo = vipDao.selectByPhone(bizUser.getPhoneNumber()); if(SysVipInfo.UNDEAL_VIP==vipInfo.getIsDeal()){ //非成交客户下单更新客户为成交客户 vipInfo.setIsDeal(SysVipInfo.DEAL_VIP); @@ -117,7 +126,7 @@ order.setTotal(orderDto.getOrderMoney().doubleValue()); order.setZkTotal(orderDto.getOrderMoney().doubleValue()); order.setPayTime(new Date()); - order.setArrears(0); + order.setArrears(0D); int i = sysOrderDao.insert(order); // 创建订单明细,并计算总价与折扣总价 int count = 0; @@ -176,30 +185,16 @@ orderItemDao.insert(orderItem); } break; - case Dictionary.SHOPPING_GOODS_TYPE_ZHK: - // 新增明细 - orderItem.setGoodsId(shoppingGoods.getId()); - // 每一个充值卡都看成一个单独的订单条目 - count = orderItem.getCount(); - for (int j = 0; j < count; j++) { - orderItem.setCount(1); - orderItem.setId(null); - orderItemDao.insert(orderItem); - } - break; } } // 处理收款逻辑 SysOrder sourceOrder = sysOrderDao.selectById(order.getId()); sourceOrder.setItems(orderItemDao.selectByOrderId(order.getId())); // 设置会员充值卡使用情况 - orderService.addMoneyCardUse(sourceOrder); + sysOrderServiceHelper.addMoneyCardUse(sourceOrder); // 改变客户项目套餐使用情况 - orderService.addTaocanProj(sourceOrder); - - // 设置销量 - orderService.setShopSelCount(sourceOrder); + sysOrderServiceHelper.addTaocanProj(sourceOrder); SysOrderFlow flow = new SysOrderFlow(); flow.setFlowNo(codeService.getFlowCode() + "-" + i); @@ -225,19 +220,29 @@ } - + @Override + public String getName() { + return "微商城订单同步到erp系统"; + } @Override - public void handle(String consumerTag, Delivery message) throws IOException { + public String getRouteKey() { + return AsyncMessageRouting.CREATE_ORDER; + } - String orderId = new String(message.getBody(), "UTF-8"); + @Override + public void handle(Map<String,Object> param) { + + String orderId = (String) param.get("orderId"); LogUtil.debug("收到创建订单任务orderId={}", orderId); //获取订单信息 ShopOrder order = shopOrderDao.selectById(Integer.valueOf(orderId)); //获取订单详情 List<ShopOrderDetails> orderDetails = shopOrderDetailsDao.selectByOrderId(Integer.valueOf(orderId)); order.setDetails(orderDetails); - createOrder(order); + //同步订单到erp + synchronizationOrderToErp(order); } + } -- Gitblit v1.9.1