From bbe0a2fd03063316e50cf141986bda984599bbda Mon Sep 17 00:00:00 2001 From: 935090232@qq.com <ak473600000> Date: Tue, 22 Feb 2022 23:41:42 +0800 Subject: [PATCH] Merge branch 'developer' --- zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/OrderTask.java | 119 +++++++++-------------------------------------------------- 1 files changed, 18 insertions(+), 101 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 a61c024..c885d81 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,13 +9,12 @@ 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.ShopSalesmanGrade; -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.shopXcx.bean.ShopOrder; import com.matrix.system.shopXcx.bean.ShopOrderDetails; import com.matrix.system.shopXcx.bean.ShopSku; @@ -26,7 +23,7 @@ import com.matrix.system.shopXcx.dao.ShopSkuDao; import com.rabbitmq.client.DeliverCallback; import com.rabbitmq.client.Delivery; -import org.springframework.beans.BeanUtils; +import org.apache.logging.log4j.message.Message; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; @@ -34,12 +31,13 @@ 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 @@ -48,7 +46,7 @@ ShopOrderDetailsDao shopOrderDetailsDao; @Autowired - BizUserService bizUserService; + SysVipInfoService sysVipInfoService; @Autowired @@ -103,10 +101,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); @@ -237,12 +233,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)); @@ -251,94 +255,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 salesmanOrder=new ShopSalesmanOrder(); - salesmanOrder.setCompanyId(order.getCompanyId()); - salesmanOrder.setCreateBy(MatrixConstance.SYSTEM_USER); - salesmanOrder.setUpdateBy(MatrixConstance.SYSTEM_USER); - salesmanOrder.setCreateTime(new Date()); - salesmanOrder.setUpdateTime(new Date()); - salesmanOrder.setOrderId(Long.parseLong(order.getId()+"")); - salesmanOrder.setUserId(order.getUserId()); - salesmanOrder.setSalesUserId(bizUser.getParentOpenId()); - salesmanOrder.setRevenueType(ShopSalesmanOrder.REVENUE_TYPE_SALES); - salesmanOrder.setOrderStatus(ShopSalesmanOrder.STATUS_DJS); - Double salesAmount=0D; - Double invitationAmount=0D; - Double orderTotal=0D; - Double zk=1D; - - BizUser salesMan=bizUserService.findByOpenId(bizUser.getParentOpenId()); - BizUser invitationMan=null; - ShopSalesmanOrder invitationOrder=null; - boolean hasInvitationMan=StringUtils.isNotBlank(salesMan.getParentOpenId()); - - //判断推广员是否还存在上级,存在则计算邀请收益 - if(hasInvitationMan){ - invitationMan=bizUserService.findByOpenId(salesMan.getParentOpenId()); - invitationOrder=new ShopSalesmanOrder(); - BeanUtils.copyProperties(salesmanOrder,invitationOrder); - invitationOrder.setSalesUserId(invitationMan.getOpenId()); - invitationOrder.setRevenueType(ShopSalesmanOrder.REVENUE_TYPE_INVITATION); - } - - //收益计算 - 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){ - //按分销等级计算 - ShopSalesmanGrade shopSalesmanGrade = shopSalesmanGradeDao.selectById(salesMan.getSalesmanGrade()); - salesAmount+=item.getTotalPrice().doubleValue()*(shopSalesmanGrade.getSealesCommission()/100); - - if(hasInvitationMan){ - ShopSalesmanGrade invitationManGrade = shopSalesmanGradeDao.selectById(invitationMan.getSalesmanGrade()); - invitationAmount+=item.getTotalPrice().doubleValue()*(invitationManGrade.getInvitationCommission()/100); - } - - }else{ - //按产品设置的推广金额计算 - salesAmount+=item.getShopSku().getSealesPrice().doubleValue()*item.getCount(); - if(hasInvitationMan){ - invitationAmount+=item.getShopSku().getInvitationPrice().doubleValue()*item.getCount(); - } - } - orderTotal+=item.getTotalPrice().doubleValue(); - } - } - //整体的优惠金额折算成折扣,* 佣金 - zk=order.getOrderMoney().doubleValue()/orderTotal; - - salesAmount=salesAmount*zk; - salesmanOrder.setAmount(salesAmount); - shopSalesmanOrderDao.insert(salesmanOrder); - - if(hasInvitationMan){ - invitationAmount=invitationAmount*zk; - invitationOrder.setAmount(invitationAmount); - shopSalesmanOrderDao.insert(invitationOrder); - } - - }else{ - LogUtil.debug("不存在父级userOpid={}",bizUser.getOpenId()); - } - - - } } -- Gitblit v1.9.1