消费返现 倒叙

This commit is contained in:
wangw 2025-10-17 13:34:10 +08:00
parent a1886bd26c
commit 237b1f3b88
1 changed files with 10 additions and 7 deletions

View File

@ -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<MkConsumeCashbackMapper, MkConsumeCashback> implements MkConsumeCashbackService{
public class MkConsumeCashbackServiceImpl extends ServiceImpl<MkConsumeCashbackMapper, MkConsumeCashback> implements MkConsumeCashbackService {
@DubboReference
private ShopInfoService shopInfoService;
@DubboReference
@ -79,7 +79,7 @@ public class MkConsumeCashbackServiceImpl extends ServiceImpl<MkConsumeCashbackM
// 包含的店铺开启余额支付
if ("all".equals(consumeDiscountDTO.getUseType())) {
shopInfoService.update(new ShopInfo().setIsAccountPay(1), new QueryWrapper().eq(ShopInfo::getMainId, shopId));
}else {
} else {
if (consumeDiscountDTO.getShopIdList() != null) {
shopInfoService.update(new ShopInfo().setIsAccountPay(1), new QueryWrapper().eq(ShopInfo::getMainId, shopId).in(ShopInfo::getId, consumeDiscountDTO.getShopIdList()));
consumeCashback.setShopIdList(JSONArray.toJSONString(consumeDiscountDTO.getShopIdList()));
@ -103,23 +103,26 @@ public class MkConsumeCashbackServiceImpl extends ServiceImpl<MkConsumeCashbackM
log.info("消费返现未开启, {}", shopId);
return;
}
log.info("消费返现2, orderId: {}, orderNo: {}, config: {}", orderId, orderNo,config);
log.info("消费返现2, orderId: {}, orderNo: {}, config: {}", orderId, orderNo, config);
ShopUser shopUser = shopUserService.getOne(new QueryWrapper().eq(ShopUser::getMainShopId, mainShopId).eq(ShopUser::getUserId, userId));
List<MkConsumeCashbackStep> 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)