Commit 32e9c17f1272b9bdd06e7252814b63bed4ecb10d

Authored by YunaiV
1 parent bfff8f5e

fix:【pay】支付钱包退款时,merchantRefundId 传递不正确的问题

yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/wallet/PayWalletRechargeController.java
... ... @@ -51,7 +51,7 @@ public class PayWalletRechargeController {
51 51 public CommonResult<Boolean> updateWalletRechargeRefunded(@RequestBody PayRefundNotifyReqDTO notifyReqDTO) {
52 52 walletRechargeService.updateWalletRechargeRefunded(
53 53 Long.valueOf(notifyReqDTO.getMerchantOrderId()),
54   - Long.valueOf(notifyReqDTO.getMerchantRefundId()),
  54 + notifyReqDTO.getMerchantRefundId(),
55 55 notifyReqDTO.getPayRefundId());
56 56 return success(true);
57 57 }
... ...
yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/PayWalletRechargeService.java
... ... @@ -56,9 +56,9 @@ public interface PayWalletRechargeService {
56 56 * 更新钱包充值记录为已退款
57 57 *
58 58 * @param id 钱包充值记录编号
59   - * @param refundId 钱包充值退款编号(实际和 id 相同)
  59 + * @param refundId 钱包充值退款编号(格式:{id}-refund)
60 60 * @param payRefundId 退款单id
61 61 */
62   - void updateWalletRechargeRefunded(Long id, Long refundId, Long payRefundId);
  62 + void updateWalletRechargeRefunded(Long id, String refundId, Long payRefundId);
63 63  
64 64 }
... ...
yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/PayWalletRechargeServiceImpl.java
... ... @@ -220,9 +220,8 @@ public class PayWalletRechargeServiceImpl implements PayWalletRechargeService {
220 220  
221 221 @Override
222 222 @Transactional(rollbackFor = Exception.class)
223   - public void updateWalletRechargeRefunded(Long id, Long refundId, Long payRefundId) {
  223 + public void updateWalletRechargeRefunded(Long id, String refundId, Long payRefundId) {
224 224 // 1.1 获取钱包充值记录
225   - // 说明:因为 id 和 refundId 是相同的,所以直接使用 id 查询即可!
226 225 PayWalletRechargeDO walletRecharge = walletRechargeMapper.selectById(id);
227 226 if (walletRecharge == null) {
228 227 log.error("[updateWalletRechargerPaid][钱包充值记录不存在,钱包充值记录 id({})]", id);
... ... @@ -274,8 +273,8 @@ public class PayWalletRechargeServiceImpl implements PayWalletRechargeService {
274 273 walletRecharge.getId(), payRefundId, toJsonString(walletRecharge), toJsonString(payRefund));
275 274 throw exception(WALLET_RECHARGE_REFUND_FAIL_REFUND_PRICE_NOT_MATCH);
276 275 }
277   - // 2.3 校验退款订单商户订单是否匹配
278   - if (notEqual(payRefund.getMerchantRefundId(), walletRecharge.getId().toString())) {
  276 + // 2.3 校验退款订单商户退款单是否匹配
  277 + if (notEqual(payRefund.getMerchantRefundId(), walletRecharge.getId() + "-refund")) {
279 278 log.error("[validateWalletRechargeCanRefunded][钱包({}) 退款单不匹配({}),请进行处理!payRefund 数据是:{}]",
280 279 walletRecharge.getId(), payRefundId, toJsonString(payRefund));
281 280 throw exception(WALLET_RECHARGE_REFUND_FAIL_REFUND_ORDER_ID_ERROR);
... ...