From cc2a761ebb4494b7f457092cd1b282f1302d4740 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Fri, 12 Dec 2025 11:58:52 +0800
Subject: [PATCH] fix(okx): 修复账户WebSocket数据解析空值异常
---
src/main/java/com/xcong/excoin/modules/okxNewPrice/utils/WsMapBuild.java | 13 +++++++++++++
src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/AccountWs.java | 10 +++++-----
2 files changed, 18 insertions(+), 5 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/AccountWs.java b/src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/AccountWs.java
index ead292a..41ce005 100644
--- a/src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/AccountWs.java
+++ b/src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/AccountWs.java
@@ -87,19 +87,19 @@
String eqKey = "eq";
String ordFrozKey = "ordFroz";
- String ccy = (String) detail.getString(ccyKey);
+ String ccy = WsMapBuild.parseStringSafe( detail.getString(ccyKey));
WsMapBuild.saveStringToMap(ACCOUNTWSMAP, ccyKey, ccy);
- String availBal = (String) (detail.getString(availBalKey));
+ String availBal = WsMapBuild.parseStringSafe(detail.getString(availBalKey));
WsMapBuild.saveStringToMap(ACCOUNTWSMAP, availBalKey, availBal);
- String cashBal = (String)(detail.getString(cashBalKey));
+ String cashBal = WsMapBuild.parseStringSafe(detail.getString(cashBalKey));
WsMapBuild.saveStringToMap(ACCOUNTWSMAP, cashBalKey, cashBal);
- String eq = (String)(detail.getString(eqKey));
+ String eq = WsMapBuild.parseStringSafe(detail.getString(eqKey));
WsMapBuild.saveStringToMap(ACCOUNTWSMAP, eqKey, eq);
- String ordFroz = (String)(detail.getString(ordFrozKey));
+ String ordFroz = WsMapBuild.parseStringSafe(detail.getString(ordFrozKey));
WsMapBuild.saveStringToMap(ACCOUNTWSMAP, ordFrozKey, ordFroz);
BigDecimal cashBalDecimal = WsMapBuild.parseBigDecimalSafe(cashBal);
diff --git a/src/main/java/com/xcong/excoin/modules/okxNewPrice/utils/WsMapBuild.java b/src/main/java/com/xcong/excoin/modules/okxNewPrice/utils/WsMapBuild.java
index 6af44d2..50752e2 100644
--- a/src/main/java/com/xcong/excoin/modules/okxNewPrice/utils/WsMapBuild.java
+++ b/src/main/java/com/xcong/excoin/modules/okxNewPrice/utils/WsMapBuild.java
@@ -44,4 +44,17 @@
}
return new BigDecimal(value).setScale(Integer.parseInt(CoinEnums.TICKSZ.getCode()), RoundingMode.DOWN);
}
+
+ /**
+ * 安全地将字符串解析为 BigDecimal 类型
+ *
+ * @param value 字符串数值
+ * @return 解析后的 BigDecimal 对象,若解析失败则返回 null
+ */
+ public static String parseStringSafe(String value) {
+ if (value == null || value.isEmpty()) {
+ return "0";
+ }
+ return value;
+ }
}
--
Gitblit v1.9.1