From 91c4a7a84f91518604a12cff816ff3f4e670477b Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Thu, 07 May 2026 17:30:51 +0800
Subject: [PATCH] refactor(gateApi): 简化 K线回调方法参数

---
 src/main/java/com/xcong/excoin/modules/gateApi/GateWebSocketClientManager.java |   86 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 86 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/gateApi/GateWebSocketClientManager.java b/src/main/java/com/xcong/excoin/modules/gateApi/GateWebSocketClientManager.java
new file mode 100644
index 0000000..736bf77
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/gateApi/GateWebSocketClientManager.java
@@ -0,0 +1,86 @@
+package com.xcong.excoin.modules.gateApi;
+
+import com.xcong.excoin.modules.okxNewPrice.celue.CaoZuoService;
+import com.xcong.excoin.modules.okxNewPrice.okxWs.wanggeList.WangGeListService;
+import com.xcong.excoin.utils.RedisUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+import java.math.BigDecimal;
+
+/**
+ * 管理 Gate WebSocket 客户端和网格交易服务实例
+ */
+@Slf4j
+@Component
+public class GateWebSocketClientManager {
+    @Autowired
+    private CaoZuoService caoZuoService;
+    @Autowired
+    private WangGeListService wangGeListService;
+
+    private GateKlineWebSocketClient klinePriceClient;
+    private GateGridTradeService gridTradeService;
+
+    private static final String API_KEY = "d90ca272391992b8e74f8f92cedb21ec";
+    private static final String API_SECRET = "1861e4f52de4bb53369ea3208d9ede38ece4777368030f96c77d27934c46c274";
+
+    @PostConstruct
+    public void init() {
+        log.info("开始初始化GateWebSocketClientManager");
+
+        try {
+            gridTradeService = new GateGridTradeService(
+                    API_KEY, API_SECRET,
+                    "XAUT_USDT",
+                    "30",
+                    "cross",
+                    "dual",
+                    new BigDecimal("0.0035"),
+                    new BigDecimal("0.5"),
+                    3,
+                    new BigDecimal("7.5"),
+                    "10"
+            );
+            gridTradeService.init();
+
+            klinePriceClient = new GateKlineWebSocketClient(caoZuoService, this, wangGeListService,gridTradeService);
+            klinePriceClient.init();
+            log.info("已初始化GateKlineWebSocketClient");
+
+            gridTradeService.startGrid();
+        } catch (Exception e) {
+            log.error("初始化GateWebSocketClientManager失败", e);
+        }
+    }
+
+    @PreDestroy
+    public void destroy() {
+        log.info("开始销毁GateWebSocketClientManager");
+
+        if (gridTradeService != null) {
+            gridTradeService.stopGrid();
+        }
+        if (klinePriceClient != null) {
+            try {
+                klinePriceClient.destroy();
+                log.info("已销毁GateKlineWebSocketClient");
+            } catch (Exception e) {
+                log.error("销毁GateKlineWebSocketClient失败", e);
+            }
+        }
+
+        log.info("GateWebSocketClientManager销毁完成");
+    }
+
+    public GateKlineWebSocketClient getKlineWebSocketClient() {
+        return klinePriceClient;
+    }
+
+    public GateGridTradeService getGridTradeService() {
+        return gridTradeService;
+    }
+}
\ No newline at end of file

--
Gitblit v1.9.1