From 4e35547a189a77525b270f7a5ae6d425e71765ee Mon Sep 17 00:00:00 2001
From: jyy <935090232@qq.com>
Date: Wed, 17 Mar 2021 16:41:00 +0800
Subject: [PATCH] 退款处理分销订单

---
 zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/SalesOrderTask.java |  143 ++++++++++++++++++++++++-----------------------
 1 files changed, 74 insertions(+), 69 deletions(-)

diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/SalesOrderTask.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/SalesOrderTask.java
index ea4bcd3..86c6c9a 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/SalesOrderTask.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/SalesOrderTask.java
@@ -1,13 +1,13 @@
 package com.matrix.system.shopXcx.mqTask;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.matrix.biz.bean.BizUser;
 import com.matrix.biz.service.BizUserService;
 import com.matrix.core.constance.MatrixConstance;
 import com.matrix.core.tools.LogUtil;
 import com.matrix.core.tools.StringUtils;
 import com.matrix.system.common.dao.BusParameterSettingsDao;
-import com.matrix.system.fenxiao.dao.ShopRevenueFlowDao;
 import com.matrix.system.fenxiao.dao.ShopSalesmanGradeDao;
 import com.matrix.system.fenxiao.dao.ShopSalesmanOrderDao;
 import com.matrix.system.fenxiao.entity.ShopSalesmanGrade;
@@ -35,7 +35,7 @@
 import java.util.List;
 
 /**
- * 微商城订单同步到erp系统
+ * 分销订单创建
  */
 @Component
 public class SalesOrderTask implements DeliverCallback {
@@ -109,78 +109,83 @@
     void handleExtensionOrder(ShopOrder order) {
         //判读客户是否存在上级,存在则产生上级的收益
         BizUser bizUser = bizUserService.findByOpenId(order.getUserId());
-        if(StringUtils.isNotBlank(bizUser.getParentOpenId())){
+        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;
+            //判断是否重复生成
+            QueryWrapper queryWrapper=new QueryWrapper();
+            queryWrapper.eq("order_id",order.getId());
+            Integer orderCount = shopSalesmanOrderDao.selectCount(queryWrapper);
+            if(orderCount==0){
+                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());
+                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();
-                }
-            }
-            if(salesAmount>0){
-                //整体的优惠金额折算成折扣,* 佣金
-                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);
-
-
+                    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();
+                    }
+                }
+                if(salesAmount>0){
+                    //整体的优惠金额折算成折扣,* 佣金
+                    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("重复订单id={}",order.getId());
             }
         }else{
             LogUtil.debug("不存在父级userOpid={}",bizUser.getOpenId());

--
Gitblit v1.9.1