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