| | |
| | | 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(); |
| | | } |
| | | } |
| | | 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("不存在父级userOpid={}",bizUser.getOpenId()); |
| | | } |
| | | |
| | | |
| | | } |
| | | } |