查询订单退款信息

This commit is contained in:
Guoqs
2024-06-04 15:26:08 +08:00
parent 323965dbbf
commit 24fb5b33db
4 changed files with 55 additions and 10 deletions

View File

@@ -252,6 +252,18 @@ public class SpringBootTestController {
@Autowired @Autowired
private NotificationService notificationService; private NotificationService notificationService;
@Test
public void getOrderRefundInfoListTest() {
String orderCode = "C44565166677";
OrderBasicInfo orderBasicInfo = new OrderBasicInfo();
orderBasicInfo.setOrderCode(orderCode);
orderBasicInfo.setMerchantId("33");
orderBasicInfo.setPayMode("4");
// 查询退款明细
List<OrderDetailInfoVO.OrderRefundInfo> orderRefundInfoList = orderBasicInfoService.getOrderRefundInfoList(orderBasicInfo);
System.out.println(JSON.toJSONString(orderRefundInfoList));
}
@Test @Test
public void getSnowflakeIdTest() { public void getSnowflakeIdTest() {
for (int i = 0; i < 100; i++) { for (int i = 0; i < 100; i++) {

View File

@@ -37,6 +37,8 @@ public interface OrderPayRecordService{
List<PaymentInfo> parseDeductionRecord(String deductionRecord); List<PaymentInfo> parseDeductionRecord(String deductionRecord);
List<String> parsePaymentIdByDeductionRecord(String deductionRecord);
// 更新订单退款金额 // 更新订单退款金额
void updateRefundAmount(String orderCode, String paymentId, BigDecimal refundAmt); void updateRefundAmount(String orderCode, String paymentId, BigDecimal refundAmt);
} }

View File

@@ -204,6 +204,16 @@ public class OrderPayRecordServiceImpl implements OrderPayRecordService {
return resultList; return resultList;
} }
@Override
public List<String> parsePaymentIdByDeductionRecord(String deductionRecord) {
List<String> resultList = Lists.newArrayList();
List<PaymentInfo> paymentInfos = parseDeductionRecord(deductionRecord);
if (CollectionUtils.isNotEmpty(paymentInfos)) {
resultList = paymentInfos.stream().map(PaymentInfo::getPaymentId).collect(Collectors.toList());
}
return resultList;
}
@Override @Override
public void updateRefundAmount(String orderCode, String paymentId, BigDecimal refundAmt) { public void updateRefundAmount(String orderCode, String paymentId, BigDecimal refundAmt) {
List<OrderPayRecord> orderPayRecordList = getOrderPayRecordList(orderCode); List<OrderPayRecord> orderPayRecordList = getOrderPayRecordList(orderCode);

View File

@@ -609,31 +609,52 @@ public class DelayMerchantProgramLogic extends AbstractProgramLogic {
} }
} }
/**
* 查询订单在线支付的退款信息
*/
@Override @Override
public List<OrderDetailInfoVO.OrderRefundInfo> getOrderRefundInfoList(OrderBasicInfo orderBasicInfo) { public List<OrderDetailInfoVO.OrderRefundInfo> getOrderRefundInfoList(OrderBasicInfo orderBasicInfo) {
List<OrderDetailInfoVO.OrderRefundInfo> resultList = Lists.newArrayList(); List<OrderDetailInfoVO.OrderRefundInfo> resultList = Lists.newArrayList();
// 查到原汇付支付id // 查到原汇付支付id
AdapayCallbackRecord adapayCallbackRecord = adapayCallbackRecordService.selectByOrderCode(orderBasicInfo.getOrderCode()); // AdapayCallbackRecord adapayCallbackRecord = adapayCallbackRecordService.selectByOrderCode(orderBasicInfo.getOrderCode());
if (adapayCallbackRecord == null) { // if (adapayCallbackRecord == null) {
// return resultList;
// }
List<OrderPayRecord> orderPayRecordList = orderPayRecordService.getOrderPayRecordList(orderBasicInfo.getOrderCode());
if (CollectionUtils.isEmpty(orderPayRecordList)) {
return resultList; return resultList;
} }
List<String> paymentIdList = Lists.newArrayList();
for (OrderPayRecord orderPayRecord : orderPayRecordList) {
String payMode = orderPayRecord.getPayMode();
if (StringUtils.equals(payMode, OrderPayRecordEnum.WECHATPAY_PAYMENT.getValue())
|| StringUtils.equals(payMode, OrderPayRecordEnum.ALIPAY_PAYMENT.getValue())) {
List<String> idList = orderPayRecordService.parsePaymentIdByDeductionRecord(orderPayRecord.getDeductionRecord());
paymentIdList.addAll(idList);
}
}
// 获取appId // 获取appId
String wechatAppId = pileMerchantInfoService.queryAppIdByMerchantId(orderBasicInfo.getMerchantId()); String wechatAppId = pileMerchantInfoService.queryAppIdByMerchantId(orderBasicInfo.getMerchantId());
// 通过支付id查询退款记录 // 通过支付id查询退款记录
String paymentId = adapayCallbackRecord.getPaymentId(); List<PaymentReverseResponse> paymentReverseResponseList = Lists.newArrayList();
List<PaymentReverseResponse> paymentReverseResponses = null; for (String paymentId : paymentIdList) {
try { try {
paymentReverseResponses = adapayService.queryPaymentReverse(paymentId, wechatAppId); List<PaymentReverseResponse> paymentReverseResponses = adapayService.queryPaymentReverse(paymentId, wechatAppId);
} catch (BaseAdaPayException e) { if (CollectionUtils.isNotEmpty(paymentReverseResponses)) {
logger.error("查询支付撤销对象发生异常", e); paymentReverseResponseList.addAll(paymentReverseResponses);
}
} catch (BaseAdaPayException e) {
logger.error("查询支付撤销对象发生异常", e);
}
} }
OrderDetailInfoVO.OrderRefundInfo refundInfo; OrderDetailInfoVO.OrderRefundInfo refundInfo;
if (CollectionUtils.isNotEmpty(paymentReverseResponses)) { if (CollectionUtils.isNotEmpty(paymentReverseResponseList)) {
for (PaymentReverseResponse reverseResponse : paymentReverseResponses) { for (PaymentReverseResponse reverseResponse : paymentReverseResponseList) {
refundInfo = new OrderDetailInfoVO.OrderRefundInfo(); refundInfo = new OrderDetailInfoVO.OrderRefundInfo();
refundInfo.setReverseId(reverseResponse.getId()); refundInfo.setReverseId(reverseResponse.getId());
refundInfo.setPaymentId(reverseResponse.getPayment_id()); refundInfo.setPaymentId(reverseResponse.getPayment_id());