霸王餐 余额充值 以及 霸王餐余额扣减

This commit is contained in:
wangw 2025-10-17 14:43:43 +08:00
parent ea744fc033
commit d8f36c57bf
1 changed files with 27 additions and 5 deletions

View File

@ -927,11 +927,33 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
bizEnum = ShopUserFlowBizEnum.CASH_IN; bizEnum = ShopUserFlowBizEnum.CASH_IN;
} }
if (isFree) { if (isFree) {
updateChain().eq(OrderInfo::getId, payment.getRelatedId()) OrderInfo orderInfo = getOne(new QueryWrapper().eq(OrderInfo::getPayOrderId, payment.getRelatedId()));
.set(OrderInfo::getStatus, OrderStatusEnums.DONE.getCode()) if (orderInfo == null) {
.set(OrderInfo::getIsFreeDine, 1) log.error("霸王餐支付订单不存在支付记录Id,{}", payment.getId());
.set(OrderInfo::getPayAmount, 0) }else {
.update(); //增加余额
ShopUserMoneyEditDTO shopUserMoneyEditDTO = new ShopUserMoneyEditDTO()
.setId(shopUser.getId())
.setType(1)
.setBizEnum(ShopUserFlowBizEnum.FREE_IN)
.setRelationId(orderInfo.getId())
.setMoney(BigDecimal.valueOf(czgCallBackDto.getAmount()).divide(BigDecimal.valueOf(100), 2, RoundingMode.DOWN));
shopUserService.updateMoney(shopUserMoneyEditDTO);
OrderInfo orderInfo1 = new OrderInfo();
orderInfo1.setId(orderInfo.getId());
orderInfo1.setIsFreeDine(1);
orderInfo1.setPayAmount(BigDecimal.ZERO);
updateById(orderInfo1);
//扣减余额
ShopUserMoneyEditDTO shopUserMoneyEditDTO2 = new ShopUserMoneyEditDTO()
.setId(shopUser.getId())
.setType(0)
.setBizEnum(ShopUserFlowBizEnum.ORDER_PAY)
.setRelationId(orderInfo.getId())
.setMoney(orderInfo.getPayAmount());
shopUserService.updateMoney(shopUserMoneyEditDTO2);
}
} else { } else {
shopRechargeService.recharge(payment.getShopId(), payment.getSourceId(), payment.getRelatedId(), shopRechargeService.recharge(payment.getShopId(), payment.getSourceId(), payment.getRelatedId(),
BigDecimal.valueOf(czgCallBackDto.getAmount()).divide(BigDecimal.valueOf(100), 2, RoundingMode.DOWN), payment.getId(), payment.getPayType(), bizEnum); BigDecimal.valueOf(czgCallBackDto.getAmount()).divide(BigDecimal.valueOf(100), 2, RoundingMode.DOWN), payment.getId(), payment.getPayType(), bizEnum);