From 608d72c5918bcec6e67320b28ea119ea50f8c84b Mon Sep 17 00:00:00 2001
From: jyy <935090232@qq.com>
Date: Fri, 12 Mar 2021 14:17:54 +0800
Subject: [PATCH] 新增申请成为分销员接口9
---
zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/OrderTask.java | 75 ++++++++++++++++++++++++++++---------
zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanApplyDao.xml | 2
2 files changed, 57 insertions(+), 20 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 2979ca3..db41768 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
@@ -11,6 +11,7 @@
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.*;
@@ -25,6 +26,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.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
@@ -265,38 +267,73 @@
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;
+ 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){
//按分销等级计算
- BizUser salesMan=bizUserService.findByOpenId(bizUser.getParentOpenId());
- shopSalesmanGradeDao.selectById(salesMan.getSalesmanGrade());
+ 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.getSealesCommission()/100);
+ }
}else{
- //按产品设置的金额计算
- amount+=item.getShopSku().getSealesPrice().doubleValue();
+ //按产品设置的推广金额计算
+ 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());
diff --git a/zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanApplyDao.xml b/zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanApplyDao.xml
index 89ef382..485509d 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanApplyDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanApplyDao.xml
@@ -46,7 +46,7 @@
shop_salesman_order b
WHERE
b.user_id = a.open_id
- and order_status=1
+ and order_status=2
AND b.sales_user_id = #{openId}
) AS revenueAmount,
--
Gitblit v1.9.1