Administrator
2026-06-04 9cf8530b118a1261710f961ab87f00099e72ec40
src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java
@@ -11,6 +11,9 @@
import io.gate.gateapi.models.*;
import lombok.extern.slf4j.Slf4j;
import okhttp3.ConnectionPool;
import okhttp3.OkHttpClient;
import java.io.IOException;
import java.math.BigDecimal;
import java.math.RoundingMode;
@@ -19,6 +22,7 @@
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import com.xcong.excoin.modules.gateApi.wsHandler.handler.CandlestickChannelHandler;
import com.xcong.excoin.modules.gateApi.wsHandler.handler.PositionClosesChannelHandler;
@@ -149,11 +153,24 @@
    public GateGridTradeService(GateConfig config) {
        this.config = config;
        ApiClient apiClient = new ApiClient();
        apiClient.setBasePath(config.getRestBasePath());
        apiClient.setApiKeySecret(config.getApiKey(), config.getApiSecret());
        ApiClient apiClient = createApiClient(config);
        this.futuresApi = new FuturesApi(apiClient);
        this.executor = new GateTradeExecutor(apiClient, config.getContract());
    }
    private static ApiClient createApiClient(GateConfig config) {
        OkHttpClient httpClient = new OkHttpClient.Builder()
                .connectTimeout(30, TimeUnit.SECONDS)
                .readTimeout(60, TimeUnit.SECONDS)
                .writeTimeout(20, TimeUnit.SECONDS)
                .connectionPool(new ConnectionPool(5, 5, TimeUnit.SECONDS))
                .retryOnConnectionFailure(true)
                .build();
        ApiClient client = new ApiClient();
        client.setBasePath(config.getRestBasePath());
        client.setApiKeySecret(config.getApiKey(), config.getApiSecret());
        client.setHttpClient(httpClient);
        return client;
    }
    // ---- 初始化 ----
@@ -174,9 +191,7 @@
     */
    public void init() {
        try {
            ApiClient detailClient = new ApiClient();
            detailClient.setBasePath(config.getRestBasePath());
            detailClient.setApiKeySecret(config.getApiKey(), config.getApiSecret());
            ApiClient detailClient = createApiClient(config);
            AccountDetail detail = new AccountApi(detailClient).getAccountDetail();
            this.userId = detail.getUserId();
            log.info("[Gate] 用户ID: {}", userId);