消费返现

充值触发条件成为会员
霸王餐触发条件成为会员
This commit is contained in:
2025-12-25 17:18:46 +08:00
parent f374c335c4
commit c6102dd4b4
8 changed files with 80 additions and 119 deletions

View File

@@ -133,6 +133,7 @@ public class RabbitPublisher {
/** /**
* 订单商品状态消息 * 订单商品状态消息
* type bc 广播
*/ */
public void sendOrderDetailStatusMsg(String shopId, String type) { public void sendOrderDetailStatusMsg(String shopId, String type) {
sendMsg(RabbitConstants.Queue.ORDER_DETAIL_STATUS_QUEUE, JSONObject.toJSONString(Map.of( sendMsg(RabbitConstants.Queue.ORDER_DETAIL_STATUS_QUEUE, JSONObject.toJSONString(Map.of(

View File

@@ -30,5 +30,8 @@ public interface MkConsumeCashbackService extends IService<MkConsumeCashback> {
*/ */
void cashback(Long shopId, Long userId, BigDecimal amount, Long orderId, String orderNo); void cashback(Long shopId, Long userId, BigDecimal amount, Long orderId, String orderNo);
/**
* 订单退款 删除返现
*/
void removeCashback(Long shopId, Long userId, Long orderId, String orderNo); void removeCashback(Long shopId, Long userId, Long orderId, String orderNo);
} }

View File

@@ -22,13 +22,19 @@ import java.util.List;
public interface MkShopRechargeService extends IService<MkShopRecharge> { public interface MkShopRechargeService extends IService<MkShopRecharge> {
MkShopRechargeVO detail(Long shopId); MkShopRechargeVO detail(Long shopId);
MkShopRechargeVO detailApp(Long shopId); MkShopRechargeVO detailApp(Long shopId);
Boolean edit(Long shopId, MkShopRechargeDTO shopRechargeDTO); Boolean edit(Long shopId, MkShopRechargeDTO shopRechargeDTO);
BigDecimal checkRecharge(Long mainShopId, @NotNull(message = "店铺不能为空") Long shopId, Long userId, Long rechargeDetailId, @DecimalMin("0.01") BigDecimal money); BigDecimal checkRecharge(Long mainShopId, @NotNull(message = "店铺不能为空") Long shopId, Long userId, Long rechargeDetailId, @DecimalMin("0.01") BigDecimal money);
void recharge(Long shopId, Long shopUserId, Long rechargeDetailId, BigDecimal amount, Long paymentId, String payType, ShopUserFlowBizEnum bizEnum); /**
* 充值
* @param isNoJoin 是否没有执行 加入会员的方法
* 会员如果是条件开通 则 需要统计
*/
void recharge(Long shopId, Long shopUserId, Long rechargeDetailId, BigDecimal amount, Long paymentId, String payType, ShopUserFlowBizEnum bizEnum, boolean isNoJoin);
List<RechargeListVO> getList(long loginIdAsLong); List<RechargeListVO> getList(long loginIdAsLong);

View File

@@ -194,16 +194,18 @@ public class MkConsumeCashbackServiceImpl extends ServiceImpl<MkConsumeCashbackM
.setMainShopId(record.getMainShopId()) .setMainShopId(record.getMainShopId())
.setShopId(shopId) .setShopId(shopId)
.setAmount(BigDecimal.ZERO) .setAmount(BigDecimal.ZERO)
.setCashbackAmount(record.getAmount().negate()) .setCashbackAmount(record.getCashbackAmount().negate())
.setUserId(userId) .setUserId(userId)
.setShopUserId(record.getShopUserId()); .setShopUserId(record.getShopUserId());
consumeCashbackRecordService.save(mkConsumeCashbackRecord); consumeCashbackRecordService.save(mkConsumeCashbackRecord);
shopUserService.updateMoney(new ShopUserMoneyEditDTO().setId(record.getShopUserId()).setType(0) shopUserService.updateMoney(new ShopUserMoneyEditDTO()
.setId(record.getShopUserId())
.setType(0)
.setRelationId(mkConsumeCashbackRecord.getId()) .setRelationId(mkConsumeCashbackRecord.getId())
.setMoney(record.getAmount()) .setMoney(record.getCashbackAmount())
.setBizEnum(ShopUserFlowBizEnum.CASHBACK) .setBizEnum(ShopUserFlowBizEnum.CASHBACK)
.setRemark(StrUtil.format("订单退款,扣除返现: {}", record.getAmount()))); .setRemark(StrUtil.format("订单退款,扣除返现: {}", record.getCashbackAmount())));
log.info("订单退款扣除返现 订单ID:{}, 店铺用户id: {}, 扣除返现: {}", orderId, record.getShopUserId(), record.getAmount()); log.info("订单退款扣除返现 订单ID:{}, 店铺用户id: {}, 扣除返现: {}", orderId, record.getShopUserId(), record.getCashbackAmount());
AcUserMsg msg = new AcUserMsg() AcUserMsg msg = new AcUserMsg()
.setUserId(userId) .setUserId(userId)
@@ -212,7 +214,7 @@ public class MkConsumeCashbackServiceImpl extends ServiceImpl<MkConsumeCashbackM
.setSourceType("order") .setSourceType("order")
.setType("cash") .setType("cash")
.setTitle("订单退款,消费返现扣除") .setTitle("订单退款,消费返现扣除")
.setContent(StrUtil.format("返现扣除提醒: 订单退款扣除的{}元返现。订单编号:{}", record.getAmount(), orderNo)); .setContent(StrUtil.format("返现扣除提醒: 订单退款扣除的{}元返现。订单编号:{}", record.getCashbackAmount(), orderNo));
acUserMsgService.addUserMsg(msg); acUserMsgService.addUserMsg(msg);
} }
} }

View File

@@ -20,6 +20,7 @@ import com.czg.market.enums.PointsConstant;
import com.czg.market.service.*; import com.czg.market.service.*;
import com.czg.market.vo.*; import com.czg.market.vo.*;
import com.czg.utils.AssertUtil; import com.czg.utils.AssertUtil;
import com.czg.utils.FunUtils;
import com.mybatisflex.core.query.QueryWrapper; import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.spring.service.impl.ServiceImpl; import com.mybatisflex.spring.service.impl.ServiceImpl;
import com.czg.market.entity.MkShopRecharge; import com.czg.market.entity.MkShopRecharge;
@@ -45,6 +46,8 @@ public class MkShopRechargeServiceImpl extends ServiceImpl<MkShopRechargeMapper,
@Resource @Resource
private MkShopRechargeDetailService shopRechargeDetailService; private MkShopRechargeDetailService shopRechargeDetailService;
@Resource @Resource
private TbMemberConfigService memberConfigService;
@Resource
private ShopCouponService shopCouponService; private ShopCouponService shopCouponService;
@DubboReference @DubboReference
private ShopUserService shopUserService; private ShopUserService shopUserService;
@@ -159,7 +162,8 @@ public class MkShopRechargeServiceImpl extends ServiceImpl<MkShopRechargeMapper,
} }
@Override @Override
public void recharge(Long shopId, Long shopUserId, Long rechargeDetailId, BigDecimal amount, Long paymentId, String payType, ShopUserFlowBizEnum bizEnum) { public void recharge(Long shopId, Long shopUserId, Long rechargeDetailId, BigDecimal amount, Long paymentId,
String payType, ShopUserFlowBizEnum bizEnum, boolean isNoJoin) {
log.info("充值回调, 用户id: {}, 金额: {}, rechargeDetailId: {}", shopUserId, amount, rechargeDetailId); log.info("充值回调, 用户id: {}, 金额: {}, rechargeDetailId: {}", shopUserId, amount, rechargeDetailId);
ShopUser shopUser = shopUserService.getById(shopUserId); ShopUser shopUser = shopUserService.getById(shopUserId);
ShopUserMoneyEditDTO shopUserMoneyEditDTO = new ShopUserMoneyEditDTO() ShopUserMoneyEditDTO shopUserMoneyEditDTO = new ShopUserMoneyEditDTO()
@@ -168,7 +172,6 @@ public class MkShopRechargeServiceImpl extends ServiceImpl<MkShopRechargeMapper,
.setBizEnum(bizEnum) .setBizEnum(bizEnum)
.setRelationId(paymentId); .setRelationId(paymentId);
// 标准充值 // 标准充值
if (rechargeDetailId != null) { if (rechargeDetailId != null) {
MkShopRechargeDetail rechargeDetail = shopRechargeDetailService.getById(rechargeDetailId); MkShopRechargeDetail rechargeDetail = shopRechargeDetailService.getById(rechargeDetailId);
@@ -195,10 +198,10 @@ public class MkShopRechargeServiceImpl extends ServiceImpl<MkShopRechargeMapper,
return; return;
} }
// try { // try {
shopCouponRecordService.grant(shopId, new MkRewardCouponDTO().setCouponId(item.getId()) shopCouponRecordService.grant(shopId, new MkRewardCouponDTO().setCouponId(item.getId())
.setNum(item.getNum()) .setNum(item.getNum())
.setUserId(shopUser.getUserId()) .setUserId(shopUser.getUserId())
.setShopId(shopId), "充值赠券"); .setShopId(shopId), "充值赠券");
// } catch (Exception e) { // } catch (Exception e) {
// log.warn("发放优惠券失败", e); // log.warn("发放优惠券失败", e);
// } // }
@@ -209,7 +212,9 @@ public class MkShopRechargeServiceImpl extends ServiceImpl<MkShopRechargeMapper,
shopUserMoneyEditDTO.setMoney(amount); shopUserMoneyEditDTO.setMoney(amount);
} }
shopUserService.updateMoney(shopUserMoneyEditDTO); shopUserService.updateMoney(shopUserMoneyEditDTO);
if (isNoJoin) {
FunUtils.transactionSafeRun(() -> memberConfigService.joinMemberByCondition(shopId, shopUser.getUserId(), shopUser));
}
} }
@Override @Override

View File

@@ -11,7 +11,6 @@ import com.czg.account.entity.ShopUser;
import com.czg.account.service.ShopConfigService; import com.czg.account.service.ShopConfigService;
import com.czg.account.service.ShopInfoService; import com.czg.account.service.ShopInfoService;
import com.czg.account.service.ShopUserService; import com.czg.account.service.ShopUserService;
import com.czg.account.service.UserInfoService;
import com.czg.constant.TableValueConstant; import com.czg.constant.TableValueConstant;
import com.czg.constants.PayTypeConstants; import com.czg.constants.PayTypeConstants;
import com.czg.exception.CzgException; import com.czg.exception.CzgException;
@@ -60,8 +59,6 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
@Resource @Resource
private MemberLevelConfigService levelConfigService; private MemberLevelConfigService levelConfigService;
@DubboReference @DubboReference
private UserInfoService userInfoService;
@DubboReference
private ShopUserService shopUserService; private ShopUserService shopUserService;
@Resource @Resource
private OrderInfoService orderInfoService; private OrderInfoService orderInfoService;
@@ -345,13 +342,11 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
} }
if (levelVO.getCycleRewardCouponList() != null && !levelVO.getCycleRewardCouponList().isEmpty()) { if (levelVO.getCycleRewardCouponList() != null && !levelVO.getCycleRewardCouponList().isEmpty()) {
levelVO.getCycleRewardCouponList().forEach(item -> { levelVO.getCycleRewardCouponList().forEach(item ->
shopCouponRecordService.grant(shopUser.getMainShopId(), new MkRewardCouponDTO().setCouponId(item.getCoupon().getId()) shopCouponRecordService.grant(shopUser.getMainShopId(), new MkRewardCouponDTO().setCouponId(item.getCoupon().getId())
.setNum(item.getNum()) .setNum(item.getNum())
.setUserId(shopUser.getUserId()) .setUserId(shopUser.getUserId())
.setShopId(shopUser.getMainShopId()), "购买会员赠券"); .setShopId(shopUser.getMainShopId()), "购买会员赠券"));
});
} }
} }
@@ -425,13 +420,14 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
orderInfoService.getOneAs(query().select("IFNULL(sum(pay_amount), 0) as total_amount").eq(OrderInfo::getShopId, shopId).eq(OrderInfo::getUserId, shopUser.getUserId()) orderInfoService.getOneAs(query().select("IFNULL(sum(pay_amount), 0) as total_amount").eq(OrderInfo::getShopId, shopId).eq(OrderInfo::getUserId, shopUser.getUserId())
.eq(OrderInfo::getStatus, OrderStatusEnums.DONE.getCode()), BigDecimal.class) .eq(OrderInfo::getStatus, OrderStatusEnums.DONE.getCode()), BigDecimal.class)
.compareTo(new BigDecimal(item.getValue())) >= 0; .compareTo(new BigDecimal(item.getValue())) >= 0;
case "RECHARGE_AMOUNT" -> paymentService.getOneAs(query().select("IFNULL(sum(amount), 0) as total_amount") case "RECHARGE_AMOUNT" ->
.eq(OrderPayment::getShopId, shopId) paymentService.getOneAs(query().select("IFNULL(sum(amount), 0) as total_amount")
.eq(OrderPayment::getSourceType, PayTypeConstants.SourceType.MEMBER_IN) .eq(OrderPayment::getShopId, shopId)
.eq(OrderPayment::getPayType, PayTypeConstants.PayType.PAY) .eq(OrderPayment::getSourceType, PayTypeConstants.SourceType.MEMBER_IN)
.eq(OrderPayment::getSourceId, shopUser.getId()) .eq(OrderPayment::getPayType, PayTypeConstants.PayType.PAY)
.eq(OrderPayment::getPayStatus, PayTypeConstants.PayStatus.SUCCESS), BigDecimal.class) .eq(OrderPayment::getSourceId, shopUser.getId())
.compareTo(new BigDecimal(item.getValue())) >= 0; .eq(OrderPayment::getPayStatus, PayTypeConstants.PayStatus.SUCCESS), BigDecimal.class)
.compareTo(new BigDecimal(item.getValue())) >= 0;
default -> throw new CzgException("会员开通条件类型错误"); default -> throw new CzgException("会员开通条件类型错误");
}; };
if (!canOpen) { if (!canOpen) {

View File

@@ -1088,87 +1088,34 @@ public class OrderInfoCustomServiceImpl implements OrderInfoCustomService {
.setRelationId(orderInfo.getId()) .setRelationId(orderInfo.getId())
.setMoney(BigDecimal.valueOf(czgCallBackDto.getAmount()).divide(BigDecimal.valueOf(100), 2, RoundingMode.DOWN)); .setMoney(BigDecimal.valueOf(czgCallBackDto.getAmount()).divide(BigDecimal.valueOf(100), 2, RoundingMode.DOWN));
shopUserService.updateMoney(shopUserMoneyEditDTO); shopUserService.updateMoney(shopUserMoneyEditDTO);
OrderInfo orderInfo1 = new OrderInfo(); upOrderInfo(orderInfo, BigDecimal.ZERO,
orderInfo1.setId(orderInfo.getId()); LocalDateTime.now(), null, PayEnums.FREE_PAY);
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());
} }
} else { } 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() orderInfo = orderInfoService.getOne(new QueryWrapper()
.eq(OrderInfo::getPayOrderId, payment.getId()) .eq(OrderInfo::getPayOrderId, payment.getId())
.eq(OrderInfo::getPayType, PayEnums.VIP_PAY.getValue())); .eq(OrderInfo::getPayType, PayEnums.VIP_PAY.getValue()));
if (orderInfo != null) { 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() ShopUserMoneyEditDTO shopUserMoneyEditDTO = new ShopUserMoneyEditDTO()
.setId(shopUser.getId()) .setId(shopUser.getId())
.setType(0) .setType(0)
.setBizEnum(ShopUserFlowBizEnum.ORDER_PAY) .setBizEnum(ShopUserFlowBizEnum.ORDER_PAY)
.setRelationId(orderInfo.getId()) .setRelationId(orderInfo.getId())
.setMoney(orderInfo.getOrderAmount()); .setMoney(orderInfo.getOrderAmount());
shopUserService.updateMoney(shopUserMoneyEditDTO); shopUserService.updateMoney(shopUserMoneyEditDTO);
redisService.del(RedisCst.classKeyExpired.EXPIRED_ORDER + orderInfo.getId()); upOrderInfo(orderInfo, orderInfo.getOrderAmount(),
LocalDateTime.now(), null, PayEnums.VIP_PAY);
// 发放成长值
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);
}
} }
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())) { } else if (PayTypeConstants.SourceType.MEMBER_PAY.equals(payment.getSourceType())) {
//购买会员 //购买会员
ShopUser shopUser = shopUserService.getById(payment.getSourceId()); ShopUser shopUser = shopUserService.getById(payment.getSourceId());
memberConfigService.joinMember(payment.getShopId(), shopUser.getUserId(), payment.getRelatedId()); 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())) { } else if (PayTypeConstants.SourceType.DISTRIBUTION.equals(payment.getSourceType())) {
distributionUserService.open(payment.getSourceId(), payment.getAmount(), payment.getShopId(), payment.getId()); distributionUserService.open(payment.getSourceId(), payment.getAmount(), payment.getShopId(), payment.getId());
} else if (PayTypeConstants.SourceType.POINT.equals(payment.getSourceType())) { } else if (PayTypeConstants.SourceType.POINT.equals(payment.getSourceType())) {
@@ -1300,14 +1247,14 @@ public class OrderInfoCustomServiceImpl implements OrderInfoCustomService {
shopUserUseInfo(orderInfo, shopUser); shopUserUseInfo(orderInfo, shopUser);
// 后续 赠送等功能 挂账支付不赠送 // 后续 赠送等功能 挂账支付不赠送
if (!orderInfo.getPayType().equals(PayEnums.CREDIT_PAY.getValue())) { if (!orderInfo.getPayType().equals(PayEnums.CREDIT_PAY.getValue())) {
FunUtils.safeRunVoid(() -> consumerCouponService.receiveConsumerCoupon(shopUser.getSourceShopId(), orderInfo.getId(), if (!orderInfo.getPayType().equals(PayEnums.FREE_PAY.getValue())) {
orderInfo.getPayAmount(), shopUser.getUserId(), shopUser.getId()), "订单{}消费赠券失败", orderInfo.getId()); FunUtils.safeRunVoid(() -> consumerCouponService.receiveConsumerCoupon(shopUser.getSourceShopId(), orderInfo.getId(),
FunUtils.safeRunVoid(() -> pointsConfigService.consumeAwardPoints(shopUser, orderInfo), "订单{}赠送积分失败", 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(() -> consumeCashbackService.cashback(orderInfo.getShopId(), shopUser.getUserId(),
orderInfo.getPayAmount(), orderInfo.getId(), orderInfo.getOrderNo()), "订单{}消费返现失败", orderInfo.getId());
}
FunUtils.safeRunVoid(() -> { FunUtils.safeRunVoid(() -> {
if (shopUser.getIsVip().equals(0)) { if (shopUser.getIsVip().equals(0)) {
// 消费累计成为会员的情况 // 消费累计成为会员的情况

View File

@@ -425,15 +425,16 @@ public class PayServiceImpl implements PayService {
return CzgResult.failure("支付密码错误"); return CzgResult.failure("支付密码错误");
} }
} }
if (shopUser.getIsVip().equals(0)) { // if (shopUser.getIsVip().equals(0)) {
//更新会员 // //更新会员
ShopUser updateInfo = new ShopUser(); // ShopUser updateInfo = new ShopUser();
updateInfo.setIsVip(1); // updateInfo.setIsVip(1);
updateInfo.setJoinTime(LocalDateTime.now()); // updateInfo.setJoinTime(LocalDateTime.now());
updateInfo.setId(payParam.getShopUserId()); // updateInfo.setId(payParam.getShopUserId());
shopUserService.updateById(updateInfo); // shopUserService.updateById(updateInfo);
} // }
shopRechargeService.recharge(shopUser.getMainShopId(), shopUser.getId(), payParam.getRechargeDetailId(), payParam.getAmount(), null, "cash", ShopUserFlowBizEnum.CASH_IN); shopRechargeService.recharge(shopUser.getMainShopId(), shopUser.getId(), payParam.getRechargeDetailId(),
payParam.getAmount(), null, "cash", ShopUserFlowBizEnum.CASH_IN, true);
return CzgResult.success(); return CzgResult.success();
} }
@@ -825,19 +826,19 @@ public class PayServiceImpl implements PayService {
// 退款分销还原 // 退款分销还原
FunUtils.safeRunVoid(() -> distributionUserService.refund(orderId, orderNo), FunUtils.safeRunVoid(() -> distributionUserService.refund(orderId, orderNo),
"订单id:{} 退款,分销处理失败", orderId); "订单id:{} 退款,分销处理失败", orderId);
if (userId != null) { if (userId == null) {
FunUtils.safeRunVoid(() -> consumerCouponService.removeConsumerCoupon(shopId, userId, orderId), return;
"订单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);
} }
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 @Override