From 0f5172865f608869bf16fbe14099f9a2c7269b76 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Tue, 02 Jun 2026 11:04:53 +0800
Subject: [PATCH] fix(okx): 修复账户余额获取和API请求处理问题
---
src/main/java/com/xcong/excoin/modules/okxNewPrice/OkxGridTradeService.java | 21 +++++++++++++++------
1 files changed, 15 insertions(+), 6 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/modules/okxNewPrice/OkxGridTradeService.java b/src/main/java/com/xcong/excoin/modules/okxNewPrice/OkxGridTradeService.java
index dca76ea..9306cc7 100644
--- a/src/main/java/com/xcong/excoin/modules/okxNewPrice/OkxGridTradeService.java
+++ b/src/main/java/com/xcong/excoin/modules/okxNewPrice/OkxGridTradeService.java
@@ -104,18 +104,27 @@
*/
public void init() {
try {
- // 1. 查询账户获取初始本金
+ // 1. 查询账户获取初始本金(仅取 USDT 合约账户余额)
String balanceResp = executor.getBalance();
if (balanceResp != null) {
JSONObject json = JSON.parseObject(balanceResp);
if ("0".equals(json.getString("code"))) {
JSONArray data = json.getJSONArray("data");
if (data != null && !data.isEmpty()) {
- JSONObject detail = data.getJSONObject(0);
- String totalEq = detail.getString("totalEq");
- if (totalEq != null) {
- this.initialPrincipal = new BigDecimal(totalEq);
- log.info("[OKX] 初始本金: {} USDT", initialPrincipal);
+ JSONObject accountData = data.getJSONObject(0);
+ JSONArray details = accountData.getJSONArray("details");
+ if (details != null) {
+ for (int i = 0; i < details.size(); i++) {
+ JSONObject detail = details.getJSONObject(i);
+ if ("USDT".equals(detail.getString("ccy"))) {
+ String eq = detail.getString("eq");
+ if (eq != null) {
+ this.initialPrincipal = new BigDecimal(eq);
+ log.info("[OKX] 初始本金(USDT合约): {} USDT", initialPrincipal);
+ }
+ break;
+ }
+ }
}
}
}
--
Gitblit v1.9.1