|  |  | 
 |  |  | import cn.hutool.core.util.ObjectUtil; | 
 |  |  | import cn.hutool.core.util.StrUtil; | 
 |  |  | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | 
 |  |  | import com.matrix.biz.bean.BizUser; | 
 |  |  | import com.matrix.biz.service.BizUserService; | 
 |  |  | import com.matrix.system.hive.bean.SysVipInfo; | 
 |  |  | import com.matrix.system.hive.service.SysVipInfoService; | 
 |  |  | import com.matrix.core.constance.MatrixConstance; | 
 |  |  | import com.matrix.core.tools.LogUtil; | 
 |  |  | import com.matrix.core.tools.StringUtils; | 
 |  |  | 
 |  |  |     ShopOrderDetailsDao shopOrderDetailsDao; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     BizUserService bizUserService; | 
 |  |  |     SysVipInfoService sysVipInfoService; | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  | 
 |  |  |     @Test | 
 |  |  |     public void handleExtensionOrder() { | 
 |  |  |        ShopOrder order = new ShopOrder(); | 
 |  |  |        order.setUserId("oJkRK4_pWN2kjp75B_G6oGSWawj0"); | 
 |  |  |  | 
 |  |  |        order.setId(1190); | 
 |  |  |        order.setCompanyId(36L); | 
 |  |  |         | 
 |  |  | 
 |  |  |        order.setDetails(details); | 
 |  |  |        order.setOrderMoney(new BigDecimal(0.01)); | 
 |  |  |         //判读客户是否存在上级,存在则产生上级的收益 | 
 |  |  |         BizUser bizUser = bizUserService.findByOpenId(order.getUserId()); | 
 |  |  |         LogUtil.debug("处理分销订单userOpid={}",bizUser.getOpenId()); | 
 |  |  |         SysVipInfo sysVipInfo = sysVipInfoService.findById(order.getUserId()); | 
 |  |  |         LogUtil.debug("处理分销订单userOpid={}",sysVipInfo.getId()); | 
 |  |  |         //判断是否重复生成 | 
 |  |  |         QueryWrapper queryWrapper=new QueryWrapper(); | 
 |  |  |         queryWrapper.eq("order_id",order.getId()); | 
 |  |  | 
 |  |  |                 if(StringUtils.isNotBlank(item.getShopProduct().getAttrValues()) | 
 |  |  |                         && item.getShopProduct().getAbleSales()==ShopProduct.ABLE_SALES){ | 
 |  |  |                     //分销规则是否开启自购返佣 | 
 |  |  |                     BusParameterSettings zgfy = parameterSettingsDao.selectCompanyParamByCode(FenxiaoSettingConstant.FX_ZGFY, bizUser.getCompanyId()); | 
 |  |  |                     BusParameterSettings zgfy = parameterSettingsDao.selectCompanyParamByCode(FenxiaoSettingConstant.FX_ZGFY, sysVipInfo.getCompanyId()); | 
 |  |  |                     //按分销等级计算 | 
 |  |  |                     ShopSalesmanGrade shopSalesmanGrade = shopSalesmanGradeDao.selectById(bizUser.getSalesmanGrade()); | 
 |  |  |                     ShopSalesmanGrade shopSalesmanGrade = shopSalesmanGradeDao.selectById(sysVipInfo.getSalesmanGrade()); | 
 |  |  |                     if(ObjectUtil.isNotEmpty(zgfy)) { | 
 |  |  |                         //获取商品的自购返佣价格,如果没有设置,在去获取当前推广人的等级的自购返佣比例 | 
 |  |  |                        if(StrUtil.isNotEmpty(zgfy.getParamValue()) &&  | 
 |  |  | 
 |  |  |                 shopSalesmanOrderDao.insert(salesmanOrder); | 
 |  |  |             } | 
 |  |  |             //存在上级 | 
 |  |  |             if(StringUtils.isNotBlank(bizUser.getParentOpenId())) { | 
 |  |  |                BizUser salesMan=bizUserService.findByOpenId(bizUser.getParentOpenId()); | 
 |  |  |             if(sysVipInfo.getRecommendId()!=null) { | 
 |  |  |                SysVipInfo salesMan=sysVipInfoService.findById(sysVipInfo.getRecommendId()); | 
 |  |  |                 Double salesAmount=0D; | 
 |  |  |                 Double invitationAmount=0D; | 
 |  |  |                BizUser invitationMan=null; | 
 |  |  |                SysVipInfo invitationMan=null; | 
 |  |  |                ShopSalesmanOrder invitationOrder=null; | 
 |  |  |                boolean hasInvitationMan=StringUtils.isNotBlank(salesMan.getParentOpenId()); | 
 |  |  |                boolean hasInvitationMan=salesMan.getRecommendId()!=null; | 
 |  |  |                //判断推广员是否还存在上级,存在则计算邀请收益 | 
 |  |  |                if(hasInvitationMan){ | 
 |  |  |                   invitationMan=bizUserService.findByOpenId(salesMan.getParentOpenId()); | 
 |  |  |                   invitationMan=sysVipInfoService.findById(salesMan.getRecommendId()); | 
 |  |  |                   invitationOrder=new ShopSalesmanOrder(); | 
 |  |  |                   BeanUtils.copyProperties(salesmanOrder,invitationOrder); | 
 |  |  |                   invitationOrder.setSalesUserId(invitationMan.getOpenId()); | 
 |  |  |                   invitationOrder.setSalesUserId(invitationMan.getId()); | 
 |  |  |                   invitationOrder.setRevenueType(ShopSalesmanOrder.REVENUE_TYPE_INVITATION); | 
 |  |  |                } | 
 |  |  |                //收益计算 | 
 |  |  | 
 |  |  |                     zk=order.getOrderMoney().doubleValue()/orderTotal; | 
 |  |  |                     salesAmount=salesAmount*zk; | 
 |  |  |                     salesmanOrder.setAmount(salesAmount); | 
 |  |  |                     salesmanOrder.setSalesUserId(bizUser.getParentOpenId()); | 
 |  |  |                     salesmanOrder.setSalesUserId(sysVipInfo.getRecommendId()); | 
 |  |  |                     shopSalesmanOrderDao.insert(salesmanOrder); | 
 |  |  |                 } | 
 |  |  |                 //邀请提成记录 | 
 |  |  | 
 |  |  |                     shopSalesmanOrderDao.insert(invitationOrder); | 
 |  |  |                 }  | 
 |  |  |             }else{ | 
 |  |  |                 LogUtil.debug("不存在父级userOpid={}",bizUser.getOpenId()); | 
 |  |  |                 LogUtil.debug("不存在父级userOpid={}",sysVipInfo.getId()); | 
 |  |  |             } | 
 |  |  |         }else{ | 
 |  |  |             LogUtil.debug("重复订单id={}",order.getId()); |