From 62fc17e246f99c73f162f243490a811e540c0043 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Fri, 07 Feb 2025 14:34:00 +0800
Subject: [PATCH] fix: 修改文件名大小写

---
 src/main/java/cc/mrbird/febs/pay/util/FiuuRefundUtil.java |   43 ++++++++-----------------------------------
 1 files changed, 8 insertions(+), 35 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/pay/util/FiuuRefundUtil.java b/src/main/java/cc/mrbird/febs/pay/util/FiuuRefundUtil.java
index 7951113..e941085 100644
--- a/src/main/java/cc/mrbird/febs/pay/util/FiuuRefundUtil.java
+++ b/src/main/java/cc/mrbird/febs/pay/util/FiuuRefundUtil.java
@@ -1,7 +1,9 @@
 package cc.mrbird.febs.pay.util;
 
 import cc.mrbird.febs.pay.model.RefundStatus;
+import cn.hutool.json.JSONUtil;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.http.client.methods.HttpGet;
 import org.apache.http.impl.client.CloseableHttpClient;
 import org.apache.http.impl.client.HttpClients;
@@ -9,17 +11,13 @@
 import org.springframework.stereotype.Service;
 
 import java.util.List;
-import java.util.concurrent.*;
-
+@Slf4j
 @Service(value="FiuuRefundUtil")
 public class FiuuRefundUtil {
 
     private static final String API_BASE_URL = "https://api.fiuu.com/RMS/API/refundAPI/";
     private static final String MERCHANT_ID = "e2umart01";
     private static final String VERIFY_KEY = "4e3a4ed58e62ddbfacf41f6d5ec56bf2";
-    private static final int MAX_RETRIES = 3;
-    private static final int POLL_INTERVAL = 1000; // 5秒
-    private static final int TIMEOUT = 60000; // 60秒超时
 
     private final ObjectMapper objectMapper = new ObjectMapper();
 
@@ -47,41 +45,16 @@
         HttpGet request = new HttpGet(url);
         try (CloseableHttpClient client = HttpClients.createDefault()) {
             String response = EntityUtils.toString(client.execute(request).getEntity());
-            List<RefundStatus> refundStatusList = objectMapper.readValue(
-                    response,
-                    objectMapper.getTypeFactory().constructCollectionType(List.class, RefundStatus.class));
+            log.info("Response: " + response);
+
+            List<RefundStatus> refundStatusList = JSONUtil.toList(JSONUtil.parseArray(response), RefundStatus.class);
             return refundStatusList.get(0);
         }
     }
 
     // 异步轮询退款状态
     public RefundStatus pollRefundStatus(String txnId) throws Exception {
-        ExecutorService executor = Executors.newSingleThreadExecutor();
-        Future<RefundStatus> future = executor.submit(() -> {
-            int retryCount = 0;
-            while (retryCount < MAX_RETRIES) {
-                try {
-                    RefundStatus status = queryByTxnId(txnId);
-                    if (!"pending".equals(status.getStatus())) {
-                        return status;
-                    }
-                    Thread.sleep(POLL_INTERVAL);
-                    retryCount++;
-                } catch (InterruptedException e) {
-                    Thread.currentThread().interrupt();
-                    throw new RuntimeException("Polling interrupted", e);
-                }
-            }
-            throw new TimeoutException("Max retries reached");
-        });
-
-        try {
-            return future.get(TIMEOUT, TimeUnit.MILLISECONDS);
-        } catch (TimeoutException e) {
-            future.cancel(true);
-            throw new RuntimeException("Refund status check timeout");
-        } finally {
-            executor.shutdown();
-        }
+        RefundStatus status = queryByTxnId(txnId);
+        return status;
     }
 }

--
Gitblit v1.9.1