From cf4e9e9e041545f77f57f7a0c3485d66efe5ce19 Mon Sep 17 00:00:00 2001
From: phpcjl <phpcjl@gmail.com>
Date: 星期二, 17 十二月 2024 16:33:34 +0800
Subject: [PATCH] 1
---
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java | 54 +++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 39 insertions(+), 15 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 2efa1cb..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
@@ -13,6 +13,7 @@
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