From e4934031411acd1a86f3e99922cf857763934023 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Fri, 08 May 2026 10:18:18 +0800
Subject: [PATCH] feat(gateApi): 添加用户ID获取和WebSocket私有频道订阅功能

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

diff --git a/src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java b/src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java
index f15b8b2..17edd84 100644
--- a/src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java
+++ b/src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java
@@ -3,7 +3,9 @@
 import io.gate.gateapi.ApiClient;
 import io.gate.gateapi.ApiException;
 import io.gate.gateapi.GateApiException;
+import io.gate.gateapi.api.AccountApi;
 import io.gate.gateapi.api.FuturesApi;
+import io.gate.gateapi.models.AccountDetail;
 import io.gate.gateapi.models.FuturesAccount;
 import io.gate.gateapi.models.FuturesInitialOrder;
 import io.gate.gateapi.models.FuturesOrder;
@@ -72,6 +74,8 @@
     private volatile BigDecimal lastKlinePrice;
     /** 服务器返回的累计已实现盈亏 */
     private BigDecimal totalHistoryPnl = BigDecimal.ZERO;
+    /** 用户 ID,用于 WebSocket 私有频道订阅 */
+    private Long userId;
 
     /**
      * 构造函数,初始化 Gate 期货 API 客户端。
@@ -111,6 +115,11 @@
      */
     public void init() {
         try {
+            AccountApi accountApi = new AccountApi(apiClient);
+            AccountDetail accountDetail = accountApi.getAccountDetail();
+            this.userId = accountDetail.getUserId();
+            log.info("[GateGrid] 用户ID: {}", userId);
+
             futuresApi.updateContractPositionLeverageCall(
                     SETTLE, contract, leverage, marginMode, positionMode, null);
             log.info("[GateGrid] 已设置杠杆: {}x, 保证金模式: {}", leverage, marginMode);
@@ -447,4 +456,8 @@
     public BigDecimal getTotalHistoryPnl() {
         return totalHistoryPnl;
     }
+
+    public Long getUserId() {
+        return userId;
+    }
 }

--
Gitblit v1.9.1