From 60f70f7409ec1ece8905e088fb43e0cb0258a70b Mon Sep 17 00:00:00 2001 From: luodangjia <luodangjia> Date: 星期四, 19 十二月 2024 10:10:57 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java | 58 +++++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 41 insertions(+), 17 deletions(-) diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java index 08804ba..4bedbeb 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java @@ -9,10 +9,11 @@ import com.ruoyi.order.service.OrderService; import com.ruoyi.other.api.domain.Shop; import com.ruoyi.other.api.feignClient.ShopClient; -import model.Order; -import model.OrderGood; +import com.ruoyi.order.model.Order; +import com.ruoyi.order.model.OrderGood; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.math.BigDecimal; @@ -20,6 +21,7 @@ import java.time.ZoneId; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.stream.Collectors; @Service @@ -49,7 +51,8 @@ } @Override - public void calculationCommission(List<Long> orderIds) { + @Transactional(rollbackFor = Exception.class) + public void calculationCommission(Set<String> orderIds) { List<OrderGood> orderGoods = orderGoodService.list(new LambdaQueryWrapper<OrderGood>() .in(OrderGood::getOrderId, orderIds)); @@ -62,6 +65,8 @@ if (order.getIsCommission() == 1) { continue; } + order.setIsCommission(1); + orderService.updateById(order); R<Shop> r = shopClient.getShopById(order.getShopId()); if (!R.isSuccess(r)) { throw new RuntimeException("获取门店信息失败"); @@ -77,32 +82,51 @@ 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){ + // 直推上级分佣金额 + String superiorType = og.getSuperiorType(); + if (superiorType.contains("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.contains("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(); } } -- Gitblit v1.7.1