From df864d1d636751424fd642d3bdd33c53cf63500d Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Mon, 07 Jul 2025 17:51:09 +0800
Subject: [PATCH] feat(mall): 为活动订单项添加积分和成长值奖 - 在活动添加和编辑页面增加积分和成长值输入字段 - 更新活动实体类,添加 scoreCnt 和 growthCnt 字段 - 修改活动订单项处理逻辑,增加积分和成长值奖励的计算和发放 - 优化活动订单项状态检查逻辑,移除冗余代码

---
 src/main/java/cc/mrbird/febs/vip/service/impl/VipCommonServiceImpl.java |   16 +++++++++++++---
 1 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/vip/service/impl/VipCommonServiceImpl.java b/src/main/java/cc/mrbird/febs/vip/service/impl/VipCommonServiceImpl.java
index 1343f35..31a2347 100644
--- a/src/main/java/cc/mrbird/febs/vip/service/impl/VipCommonServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/vip/service/impl/VipCommonServiceImpl.java
@@ -42,6 +42,7 @@
 public class VipCommonServiceImpl implements IVipCommonService {
 
     private final MallOrderInfoMapper mallOrderInfoMapper;
+    private final MallOrderItemMapper mallOrderItemMapper;
     private final IMallVipConfigService mallVipConfigService;
     private final IMallMoneyFlowService mallMoneyFlowService;
     private final IApiMallMemberWalletService mallMemberWalletService;
@@ -279,7 +280,7 @@
                         .eq(MallMember::getAccountStatus, MallMember.ACCOUNT_STATUS_ENABLE)
                         .eq(MallMember::getAccountType, MallMember.ACCOUNT_TYPE_NORMAL)
                         .ne(MallMember::getStoreMaster, 0)
-                .orderByAsc(MallMember::getStoreMaster)
+                .orderByDesc(MallMember::getId)
                 .last("limit 1")
         );
         // 如果没有找到符合条件的团长,则记录日志并返回
@@ -298,15 +299,24 @@
             return;
         }
         // 计算返佣金额
+        List<MallOrderItem> mallOrderItems = mallOrderItemMapper.selectList(
+                new LambdaQueryWrapper<MallOrderItem>()
+                        .eq(MallOrderItem::getOrderId, orderId)
+                        .eq(MallOrderItem::getState, 1)
+        );
+        if(CollUtil.isEmpty(mallOrderItems)){
+            return;
+        }
+        BigDecimal amount = mallOrderItems.stream().map(MallOrderItem::getLevelOnePrice).reduce(BigDecimal.ZERO, BigDecimal::add);
         BigDecimal returnPercent = happySaleLevel.getReturnPercent();
-        BigDecimal multiply = mallOrderInfo.getAmount().multiply(returnPercent).setScale(2, RoundingMode.HALF_DOWN);
+        BigDecimal multiply = amount.multiply(returnPercent).setScale(2, RoundingMode.HALF_DOWN);
         log.info("团长获得返佣:{}",multiply);
         // 如果返佣金额小于等于0,则直接返回
         if(BigDecimal.ZERO.compareTo(multiply) >=0){
             return;
         }
         // 如果返佣金额大于等于订单金额,则直接返回
-        if(multiply.compareTo(mallOrderInfo.getAmount()) >= 0){
+        if(multiply.compareTo(amount) > 0){
             return;
         }
         // 记录团长获得返佣

--
Gitblit v1.9.1