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 5fbca5b7c..ae4e859ac 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 @@ -16,6 +16,7 @@ import com.czg.market.dto.MkConsumeDiscountDTO; import com.czg.market.entity.*; import com.czg.market.service.MkConsumeCashbackRecordService; import com.czg.market.vo.MkConsumeCashbackVO; +import com.czg.utils.AssertUtil; import com.mybatisflex.core.query.QueryWrapper; import com.mybatisflex.core.update.UpdateWrapper; import com.mybatisflex.spring.service.impl.ServiceImpl; @@ -28,6 +29,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.Comparator; import java.util.List; import java.util.stream.Collectors; @@ -92,6 +94,7 @@ public class MkConsumeCashbackServiceImpl extends ServiceImpl cashbackStepList = config.getCashbackStepList(); if (cashbackStepList != null && !cashbackStepList.isEmpty()) { - // 固定金额 - if (TableValueConstant.MkConsumeCashback.CashbackType.FIX.getCode().equals(config.getCashbackType())) { - } config.setCashbackStepList(cashbackStepList.stream().sorted(Comparator.comparing(MkConsumeCashbackStep::getAmount)).collect(Collectors.toList())); for (MkConsumeCashbackStep cashbackStep : cashbackStepList) { + if (cashbackStep.getAmount().compareTo(amount) <= 0 ) { + BigDecimal cashbackAmount = BigDecimal.ZERO; + // 固定金额 + if (TableValueConstant.MkConsumeCashback.CashbackType.FIX.getCode().equals(config.getCashbackType())) { + cashbackAmount = cashbackStep.getCashbackAmount(); + }else { + cashbackAmount = amount.multiply(cashbackStep.getCashbackAmount().divide(BigDecimal.valueOf(100), RoundingMode.DOWN)); + } MkConsumeCashbackRecord mkConsumeCashbackRecord = new MkConsumeCashbackRecord().setOrderNo(orderNo).setOrderId(orderId) .setMainShopId(mainShopId).setShopId(shopId).setAmount(amount) - .setCashbackAmount(cashbackStep.getCashbackAmount()).setUserId(userId) + .setCashbackAmount(cashbackAmount).setUserId(userId) .setShopUserId(shopUser.getId()); consumeCashbackRecordService.save(mkConsumeCashbackRecord); shopUserService.updateMoney(new ShopUserMoneyEditDTO().setId(shopUser.getId()).setType(1) - .setRelationId(mkConsumeCashbackRecord.getId()).setMoney(cashbackStep.getCashbackAmount()).setBizEnum(ShopUserFlowBizEnum.CASHBACK) - .setRemark(StrUtil.format("订单消费: {}, 返现: {}", amount, cashbackStep.getCashbackAmount()))); + .setRelationId(mkConsumeCashbackRecord.getId()).setMoney(cashbackAmount).setBizEnum(ShopUserFlowBizEnum.CASHBACK) + .setRemark(StrUtil.format("订单消费: {}, 返现: {}", amount, cashbackAmount))); + log.info("店铺用户id: {}, 消费返现: {}, 返现: {}", shopUser.getId(), amount, cashbackAmount); break; } }