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 | 109 ++++++++++++------------------------------------------ 1 files changed, 25 insertions(+), 84 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 ddcf865..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,9 +1,7 @@ package com.matrix.system.shopXcx.mqTask; -import com.matrix.biz.bean.BizUser; -import com.matrix.biz.service.BizUserService; -import com.matrix.core.constance.MatrixConstance; +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; @@ -11,33 +9,32 @@ import com.matrix.system.constance.Dictionary; import com.matrix.system.fenxiao.dao.ShopSalesmanGradeDao; import com.matrix.system.fenxiao.dao.ShopSalesmanOrderDao; -import com.matrix.system.fenxiao.entity.ShopSalesmanOrder; 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 @@ -46,7 +43,7 @@ ShopOrderDetailsDao shopOrderDetailsDao; @Autowired - BizUserService bizUserService; + SysVipInfoService sysVipInfoService; @Autowired @@ -88,6 +85,10 @@ @Autowired private ShopSalesmanGradeDao shopSalesmanGradeDao; + @Autowired + private SysOrderServiceHelper sysOrderServiceHelper; + + @Transactional(rollbackFor = Exception.class) public void synchronizationOrderToErp(ShopOrder orderDto) { @@ -101,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); @@ -127,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; @@ -186,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); @@ -235,12 +220,20 @@ } - + @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)); @@ -249,59 +242,7 @@ order.setDetails(orderDetails); //同步订单到erp synchronizationOrderToErp(order); - //处理分销订单 - handleExtensionOrder(order); } - /** - * 处理分销订单 - * @param order - */ - @Transactional - void handleExtensionOrder(ShopOrder order) { - //判读客户是否存在上级,存在则产生上级的收益 - BizUser bizUser = bizUserService.findByOpenId(order.getUserId()); - if(StringUtils.isNotBlank(bizUser.getParentOpenId())){ - LogUtil.debug("处理分销订单userOpid={}",bizUser.getOpenId()); - //存在上级 - ShopSalesmanOrder shopSalesmanOrder=new ShopSalesmanOrder(); - shopSalesmanOrder.setCompanyId(order.getCompanyId()); - shopSalesmanOrder.setCreateBy(MatrixConstance.SYSTEM_USER); - shopSalesmanOrder.setUpdateBy(MatrixConstance.SYSTEM_USER); - shopSalesmanOrder.setCreateTime(new Date()); - shopSalesmanOrder.setUpdateTime(new Date()); - shopSalesmanOrder.setOrderId(Long.parseLong(order.getId()+"")); - shopSalesmanOrder.setUserId(order.getUserId()); - shopSalesmanOrder.setSalesUserId(bizUser.getParentOpenId()); - shopSalesmanOrder.setRevenueType(ShopSalesmanOrder.REVENUE_TYPE_SALES); - shopSalesmanOrder.setOrderStatus(ShopSalesmanOrder.STATUS_DJS); - Double amount=0D; - for (ShopOrderDetails item:order.getDetails() ){ - if(StringUtils.isNotBlank(item.getShopProduct().getAttrValues()) - && item.getShopProduct().getAttrValues().contains("分销商城")){ - if(item.getShopSku().getSealesPrice()==null - ||item.getShopSku().getSealesPrice().doubleValue()==0){ - //按分销等级计算 - BizUser salesMan=bizUserService.findByOpenId(bizUser.getParentOpenId()); - shopSalesmanGradeDao.selectById(salesMan.getSalesmanGrade()) - - }else{ - //按产品设置的金额计算 - amount+=item.getShopSku().getSealesPrice().doubleValue(); - } - - } - } - - - - - - }else{ - LogUtil.debug("不存在父级userOpid={}",bizUser.getOpenId()); - } - - - } } -- Gitblit v1.9.1