| | |
| | | import java.time.ZoneId; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Set; |
| | | import java.util.stream.Collectors; |
| | | |
| | | @Service |
| | |
| | | } |
| | | |
| | | @Override |
| | | public void calculationCommission(List<Long> orderIds) { |
| | | public void calculationCommission(Set<String> orderIds) { |
| | | List<OrderGood> orderGoods = orderGoodService.list(new LambdaQueryWrapper<OrderGood>() |
| | | .in(OrderGood::getOrderId, orderIds)); |
| | | |
| | |
| | | throw new RuntimeException("获取用户信息失败"); |
| | | } |
| | | Long inviteUserId = appUser.getInviteUserId(); |
| | | // 直推上级用户 |
| | | AppUser inviteUser = appUserClient.getAppUserById(inviteUserId); |
| | | |
| | | // 获取直帮上级用户 |
| | | R<AppUser> superiorLeaderR = appUserClient.getSuperiorLeader(appUserId); |
| | | if (!R.isSuccess(superiorLeaderR)) { |
| | | throw new RuntimeException("获取直帮上级信息失败"); |
| | | } |
| | | AppUser superiorLeader = superiorLeaderR.getData(); |
| | | |
| | | for (OrderGood og : v) {// 累计分销金额 |
| | | |
| | | // 上级分销金额 |
| | | if (inviteUser != null){ |
| | | // 直推上级分佣金额 |
| | | Integer superiorType = og.getSuperiorType(); |
| | | if (superiorType == 1 && inviteUser != null){ |
| | | // 分佣金额 |
| | | BigDecimal superiorSubcommission = og.getSuperiorSubcommission(); |
| | | BigDecimal totalDistributionAmount = inviteUser.getTotalDistributionAmount(); |
| | | totalDistributionAmount = totalDistributionAmount.add(superiorSubcommission); |
| | | // |
| | | Integer superiorType = og.getSuperiorType(); |
| | | inviteUser.setTotalDistributionAmount(totalDistributionAmount); |
| | | |
| | | // 分佣积分 |
| | | Integer sharePoint = inviteUser.getSharePoint(); |
| | | if (superiorType == 1) { |
| | | Integer superiorRebatePoints = og.getSuperiorRebatePoints(); |
| | | sharePoint = sharePoint + superiorRebatePoints; |
| | | inviteUser.setSharePoint(sharePoint); |
| | | |
| | | appUserClient.editAppUserById(inviteUser); |
| | | }else |
| | | // 直帮上级分佣金额 |
| | | if (superiorType == 2 && superiorLeader != null){ |
| | | // 分佣金额 |
| | | BigDecimal superiorSubcommission = og.getSuperiorSubcommission(); |
| | | BigDecimal totalDistributionAmount = superiorLeader.getTotalDistributionAmount(); |
| | | totalDistributionAmount = totalDistributionAmount.add(superiorSubcommission); |
| | | superiorLeader.setTotalDistributionAmount(totalDistributionAmount); |
| | | |
| | | // 分佣积分 |
| | | Integer sharePoint = superiorLeader.getSharePoint(); |
| | | Integer superiorRebatePoints = og.getSuperiorRebatePoints(); |
| | | sharePoint = sharePoint + superiorRebatePoints; |
| | | } else if (superiorType == 2) { |
| | | superiorLeader.setSharePoint(sharePoint); |
| | | |
| | | } else { |
| | | continue; |
| | | appUserClient.editAppUserById(superiorLeader); |
| | | } |
| | | inviteUser.setTotalDistributionAmount(totalDistributionAmount); |
| | | inviteUser.setSharePoint(sharePoint); |
| | | } |
| | | |
| | | // 门店分销金额 |
| | | og.getBoundShopCharges(); |
| | | } |
| | | } |
| | | |