diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkConsumeCashbackServiceImpl.java b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkConsumeCashbackServiceImpl.java index 7e065228..5476196b 100644 --- a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkConsumeCashbackServiceImpl.java +++ b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkConsumeCashbackServiceImpl.java @@ -36,14 +36,14 @@ import java.util.List; import java.util.stream.Collectors; /** - * 服务层实现。 + * 服务层实现。 * * @author zs * @since 2025-10-13 */ @Slf4j @Service -public class MkConsumeCashbackServiceImpl extends ServiceImpl implements MkConsumeCashbackService{ +public class MkConsumeCashbackServiceImpl extends ServiceImpl implements MkConsumeCashbackService { @DubboReference private ShopInfoService shopInfoService; @DubboReference @@ -79,7 +79,7 @@ public class MkConsumeCashbackServiceImpl extends ServiceImpl cashbackStepList = config.getCashbackStepList(); log.info("消费返现2, orderId: {}, cashbackStepList:{}", orderId, cashbackStepList); if (CollUtil.isNotEmpty(cashbackStepList)) { - config.setCashbackStepList(cashbackStepList.stream().sorted(Comparator.comparing(MkConsumeCashbackStep::getAmount)).collect(Collectors.toList())); + config.setCashbackStepList(cashbackStepList.stream().sorted(Comparator.comparing(MkConsumeCashbackStep::getAmount).reversed()).collect(Collectors.toList())); for (MkConsumeCashbackStep cashbackStep : cashbackStepList) { log.info("消费返现3, cashbackStep: {}, userId: {}, amount: {}, orderId: {}", cashbackStep, userId, amount, orderId); - if (cashbackStep.getAmount().compareTo(amount) <= 0 ) { + if (cashbackStep.getAmount().compareTo(amount) <= 0) { BigDecimal cashbackAmount; // 固定金额 if (TableValueConstant.MkConsumeCashback.CashbackType.FIX.getCode().equals(config.getCashbackType())) { cashbackAmount = cashbackStep.getCashbackAmount(); - }else { + } else { cashbackAmount = amount.multiply(cashbackStep.getCashbackAmount().divide(BigDecimal.valueOf(100), RoundingMode.DOWN)); } + if (cashbackAmount.compareTo(BigDecimal.ZERO) > 0) { + return; + } MkConsumeCashbackRecord mkConsumeCashbackRecord = new MkConsumeCashbackRecord().setOrderNo(orderNo).setOrderId(orderId) .setMainShopId(mainShopId).setShopId(shopId).setAmount(amount) .setCashbackAmount(cashbackAmount).setUserId(userId)