From 8657f3758fa1acef3445f82b82f81fdba5e0c1db Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Thu, 25 Sep 2025 11:29:00 +0800
Subject: [PATCH] feat(member): 更新会员公司ID逻辑 - 从API DTO中提取公司ID - 验证并转换公司编码为内部ID - 设置会员关联的公司ID - 优化公司信息查询逻辑 - 修复公司ID更新问题 - 确保会员信息正确绑定公司关系

---
 src/main/java/cc/mrbird/febs/vip/service/impl/VipCommonServiceImpl.java |   14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 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 ffd0c68..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;
@@ -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