From c6ac1561db0b2f1c8e3a799d7f49808f4bae67c7 Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Tue, 27 May 2025 15:55:58 +0800 Subject: [PATCH] refactor(mall): 优化订单收货类型判断逻辑 --- 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