消费返现
充值触发条件成为会员 霸王餐触发条件成为会员
This commit is contained in:
@@ -1088,87 +1088,34 @@ public class OrderInfoCustomServiceImpl implements OrderInfoCustomService {
|
||||
.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.setStatus(OrderStatusEnums.DONE.getCode());
|
||||
orderInfo1.setPayAmount(BigDecimal.ZERO);
|
||||
orderInfo1.setPaidTime(LocalDateTime.now());
|
||||
orderInfo1.setPayType(PayEnums.FREE_PAY.getValue());
|
||||
orderInfoService.updateById(orderInfo1);
|
||||
orderDetailService.updateOrderDetailStatus(orderInfo.getId(), OrderStatusEnums.DONE.getCode());
|
||||
redisService.del(RedisCst.classKeyExpired.EXPIRED_ORDER + orderInfo.getId());
|
||||
upOrderInfo(orderInfo, BigDecimal.ZERO,
|
||||
LocalDateTime.now(), null, PayEnums.FREE_PAY);
|
||||
}
|
||||
} else {
|
||||
shopRechargeService.recharge(payment.getShopId(), payment.getSourceId(), payment.getRelatedId(),
|
||||
BigDecimal.valueOf(czgCallBackDto.getAmount()).divide(BigDecimal.valueOf(100), 2, RoundingMode.DOWN), payment.getId(), payment.getSourceType(), bizEnum);
|
||||
//充值并支付 ↓
|
||||
orderInfo = orderInfoService.getOne(new QueryWrapper()
|
||||
.eq(OrderInfo::getPayOrderId, payment.getId())
|
||||
.eq(OrderInfo::getPayType, PayEnums.VIP_PAY.getValue()));
|
||||
if (orderInfo != null) {
|
||||
OrderInfo upOrderInfo = new OrderInfo()
|
||||
.setId(orderInfo.getId())
|
||||
.setPayType(PayEnums.VIP_PAY.getValue())
|
||||
.setPaidTime(LocalDateTime.now())
|
||||
.setPayAmount(orderInfo.getOrderAmount())
|
||||
.setStatus(OrderStatusEnums.DONE.getCode());
|
||||
orderInfoService.updateById(upOrderInfo);
|
||||
orderDetailService.updateOrderDetailStatus(orderInfo.getId(), OrderStatusEnums.DONE.getCode());
|
||||
ShopUserMoneyEditDTO shopUserMoneyEditDTO = new ShopUserMoneyEditDTO()
|
||||
.setId(shopUser.getId())
|
||||
.setType(0)
|
||||
.setBizEnum(ShopUserFlowBizEnum.ORDER_PAY)
|
||||
.setRelationId(orderInfo.getId())
|
||||
.setMoney(orderInfo.getOrderAmount());
|
||||
|
||||
shopUserService.updateMoney(shopUserMoneyEditDTO);
|
||||
redisService.del(RedisCst.classKeyExpired.EXPIRED_ORDER + orderInfo.getId());
|
||||
|
||||
// 发放成长值
|
||||
shopUser = shopUserService.getById(shopUser);
|
||||
//充值
|
||||
memberConfigService.deliver(shopUser,
|
||||
TableValueConstant.MemberExpFlow.Type.RECHARGE,
|
||||
BigDecimal.valueOf(czgCallBackDto.getAmount()).divide(BigDecimal.valueOf(100), 2, RoundingMode.DOWN), null, orderInfo.getId());
|
||||
if (TransactionSynchronizationManager.isSynchronizationActive()) {
|
||||
OrderInfo finalOrderInfo = orderInfo;
|
||||
TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
|
||||
@Override
|
||||
public void afterCommit() {
|
||||
// 事务成功提交后执行消息发送
|
||||
String printParam = finalOrderInfo.getId() + "_" + (!"after-pay".equals(finalOrderInfo.getPayMode()) ? 1 : 0) + "_1";
|
||||
rabbitPublisher.sendOrderPrintMsg(printParam, finalOrderInfo.getIsPrint() == 1);
|
||||
// log.info("订单{}事务提交后,发送打印消息", orderId);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
// 非事务环境下直接发送(兼容无事务场景)
|
||||
String printParam = orderInfo.getId() + "_" + (!"after-pay".equals(orderInfo.getPayMode()) ? 1 : 0) + "_1";
|
||||
rabbitPublisher.sendOrderPrintMsg(printParam, orderInfo.getIsPrint() == 1);
|
||||
// log.info("非事务环境下,直接发送订单{}打印消息", orderId);
|
||||
}
|
||||
upOrderInfo(orderInfo, orderInfo.getOrderAmount(),
|
||||
LocalDateTime.now(), null, PayEnums.VIP_PAY);
|
||||
}
|
||||
shopRechargeService.recharge(payment.getShopId(), payment.getSourceId(), payment.getRelatedId(),
|
||||
BigDecimal.valueOf(czgCallBackDto.getAmount()).divide(BigDecimal.valueOf(100), 2, RoundingMode.DOWN),
|
||||
payment.getId(), payment.getSourceType(), bizEnum, orderInfo == null);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
// 分销奖励
|
||||
// if (shopUser != null) {
|
||||
// distributionUserService.distribute(payment.getId(), payment.getOrderNo(), payment.getAmount(), shopUser.getUserId(), payment.getShopId(), "recharge");
|
||||
// }
|
||||
// if (orderInfo != null) {
|
||||
// distributionUserService.distribute(payment.getId(), payment.getOrderNo(), payment.getAmount(), orderInfo.getUserId(), payment.getShopId(), "recharge");
|
||||
// }
|
||||
} else if (PayTypeConstants.SourceType.MEMBER_PAY.equals(payment.getSourceType())) {
|
||||
//购买会员
|
||||
ShopUser shopUser = shopUserService.getById(payment.getSourceId());
|
||||
memberConfigService.joinMember(payment.getShopId(), shopUser.getUserId(), payment.getRelatedId());
|
||||
// 充值赠送积分
|
||||
// memberConfigService.deliver(shopUser.getMainShopId(), shopUser.getUserId(), TableValueConstant.MemberExpFlow.Type.COST, payment.getAmount(), null, payment.getId());
|
||||
|
||||
// 分销员开通
|
||||
} else if (PayTypeConstants.SourceType.DISTRIBUTION.equals(payment.getSourceType())) {
|
||||
distributionUserService.open(payment.getSourceId(), payment.getAmount(), payment.getShopId(), payment.getId());
|
||||
} else if (PayTypeConstants.SourceType.POINT.equals(payment.getSourceType())) {
|
||||
@@ -1300,14 +1247,14 @@ public class OrderInfoCustomServiceImpl implements OrderInfoCustomService {
|
||||
shopUserUseInfo(orderInfo, shopUser);
|
||||
// 后续 赠送等功能 挂账支付不赠送
|
||||
if (!orderInfo.getPayType().equals(PayEnums.CREDIT_PAY.getValue())) {
|
||||
FunUtils.safeRunVoid(() -> consumerCouponService.receiveConsumerCoupon(shopUser.getSourceShopId(), orderInfo.getId(),
|
||||
orderInfo.getPayAmount(), shopUser.getUserId(), shopUser.getId()), "订单{}消费赠券失败", orderInfo.getId());
|
||||
FunUtils.safeRunVoid(() -> pointsConfigService.consumeAwardPoints(shopUser, orderInfo), "订单{}赠送积分失败", orderInfo.getId());
|
||||
|
||||
FunUtils.safeRunVoid(() -> consumeCashbackService.cashback(orderInfo.getShopId(), shopUser.getUserId(),
|
||||
orderInfo.getPayAmount(), orderInfo.getId(), orderInfo.getOrderNo()), "订单{}消费返现失败", orderInfo.getId());
|
||||
|
||||
if (!orderInfo.getPayType().equals(PayEnums.FREE_PAY.getValue())) {
|
||||
FunUtils.safeRunVoid(() -> consumerCouponService.receiveConsumerCoupon(shopUser.getSourceShopId(), orderInfo.getId(),
|
||||
orderInfo.getPayAmount(), shopUser.getUserId(), shopUser.getId()), "订单{}消费赠券失败", orderInfo.getId());
|
||||
FunUtils.safeRunVoid(() -> pointsConfigService.consumeAwardPoints(shopUser, orderInfo), "订单{}赠送积分失败", orderInfo.getId());
|
||||
|
||||
FunUtils.safeRunVoid(() -> consumeCashbackService.cashback(orderInfo.getShopId(), shopUser.getUserId(),
|
||||
orderInfo.getPayAmount(), orderInfo.getId(), orderInfo.getOrderNo()), "订单{}消费返现失败", orderInfo.getId());
|
||||
}
|
||||
FunUtils.safeRunVoid(() -> {
|
||||
if (shopUser.getIsVip().equals(0)) {
|
||||
// 消费累计成为会员的情况
|
||||
|
||||
@@ -425,15 +425,16 @@ public class PayServiceImpl implements PayService {
|
||||
return CzgResult.failure("支付密码错误");
|
||||
}
|
||||
}
|
||||
if (shopUser.getIsVip().equals(0)) {
|
||||
//更新会员
|
||||
ShopUser updateInfo = new ShopUser();
|
||||
updateInfo.setIsVip(1);
|
||||
updateInfo.setJoinTime(LocalDateTime.now());
|
||||
updateInfo.setId(payParam.getShopUserId());
|
||||
shopUserService.updateById(updateInfo);
|
||||
}
|
||||
shopRechargeService.recharge(shopUser.getMainShopId(), shopUser.getId(), payParam.getRechargeDetailId(), payParam.getAmount(), null, "cash", ShopUserFlowBizEnum.CASH_IN);
|
||||
// if (shopUser.getIsVip().equals(0)) {
|
||||
// //更新会员
|
||||
// ShopUser updateInfo = new ShopUser();
|
||||
// updateInfo.setIsVip(1);
|
||||
// updateInfo.setJoinTime(LocalDateTime.now());
|
||||
// updateInfo.setId(payParam.getShopUserId());
|
||||
// shopUserService.updateById(updateInfo);
|
||||
// }
|
||||
shopRechargeService.recharge(shopUser.getMainShopId(), shopUser.getId(), payParam.getRechargeDetailId(),
|
||||
payParam.getAmount(), null, "cash", ShopUserFlowBizEnum.CASH_IN, true);
|
||||
return CzgResult.success();
|
||||
}
|
||||
|
||||
@@ -825,19 +826,19 @@ public class PayServiceImpl implements PayService {
|
||||
// 退款分销还原
|
||||
FunUtils.safeRunVoid(() -> distributionUserService.refund(orderId, orderNo),
|
||||
"订单id:{} 退款,分销处理失败", orderId);
|
||||
if (userId != null) {
|
||||
FunUtils.safeRunVoid(() -> consumerCouponService.removeConsumerCoupon(shopId, userId, orderId),
|
||||
"订单id:{} 退款,消费赠券回撤处理失败", orderId);
|
||||
FunUtils.safeRunVoid(() -> consumeCashbackService.removeCashback(shopId, userId, orderId, orderNo),
|
||||
"订单id:{} 退款,消费返现处理失败", orderId);
|
||||
FunUtils.safeRunVoid(() -> {
|
||||
if (pointsNum != null && pointsNum > 0) {
|
||||
mkPointsUserService.alterPoints(userId, null, shopId, PointsConstant.ADD,
|
||||
pointsNum, orderId, StrUtil.format("订单退款返还{}积分", pointsNum));
|
||||
}
|
||||
},
|
||||
"订单id:{} 退款,积分返还处理失败", orderId);
|
||||
if (userId == null) {
|
||||
return;
|
||||
}
|
||||
FunUtils.safeRunVoid(() -> consumerCouponService.removeConsumerCoupon(shopId, userId, orderId),
|
||||
"订单id:{} 退款,消费赠券回撤处理失败", orderId);
|
||||
FunUtils.safeRunVoid(() -> consumeCashbackService.removeCashback(shopId, userId, orderId, orderNo),
|
||||
"订单id:{} 退款,消费返现处理失败", orderId);
|
||||
FunUtils.safeRunVoid(() -> {
|
||||
if (pointsNum != null && pointsNum > 0) {
|
||||
mkPointsUserService.alterPoints(userId, null, shopId, PointsConstant.ADD,
|
||||
pointsNum, orderId, StrUtil.format("订单退款返还{}积分", pointsNum));
|
||||
}
|
||||
}, "订单id:{} 退款,积分返还处理失败", orderId);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user