jyy
2021-03-12 608d72c5918bcec6e67320b28ea119ea50f8c84b
新增申请成为分销员接口9
2 files modified
77 ■■■■ changed files
zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/OrderTask.java 75 ●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanApplyDao.xml 2 ●●● patch | view | raw | blame | history
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());
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,