From 4143a4a7be962a580eae94e530293c9eb19b4de1 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Wed, 10 Dec 2025 17:16:03 +0800
Subject: [PATCH] feat(okxWs): 调整账户和持仓 WebSocket 配置
---
src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/AccountWs.java | 31 +++++++++++++++++++++++++------
1 files changed, 25 insertions(+), 6 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 22e46bc..5169c11 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
@@ -52,7 +52,10 @@
JSONArray argsArray = new JSONArray();
JSONObject args = new JSONObject();
args.put("channel", ACCOUNTWS_CHANNEL);
- args.put(CCY_KEY, CoinEnums.USDT.getCode());
+// args.put(CCY_KEY, CoinEnums.USDT.getCode());
+ JSONObject updateInterval = new JSONObject();
+ updateInterval.put("updateInterval",CoinEnums.UPDATEINTERVAL.getCode());
+ args.put("extraParams", updateInterval);
argsArray.add(args);
String connId = MallUtils.getOrderNum(ACCOUNTWS_CHANNEL);
@@ -71,6 +74,9 @@
* @param redisUtils Redis 工具类实例,用于存储账户相关信息
*/
public static void handleEvent(JSONObject response, RedisUtils redisUtils) {
+
+
+ log.info("开始执行AccountWs......");
try {
JSONArray dataArray = response.getJSONArray(DATA_KEY);
if (dataArray == null || dataArray.isEmpty()) {
@@ -83,6 +89,7 @@
JSONObject accountData = dataArray.getJSONObject(i);
JSONArray detailsArray = accountData.getJSONArray(DETAILS_KEY);
if (detailsArray == null || detailsArray.isEmpty()) {
+ log.warn("账户频道{}数据为空",CoinEnums.USDT.getCode());
continue;
}
@@ -90,12 +97,17 @@
JSONObject detail = detailsArray.getJSONObject(j);
String ccy = detail.getString(CCY_KEY);
+ if (!CoinEnums.USDT.getCode().equals(ccy)) {
+ log.warn("账户频道币种不匹配,跳过处理");
+ continue;
+ }
+
String availBalStr = detail.getString(AVAIL_BAL_KEY);
String cashBalStr = detail.getString(CASH_BAL_KEY);
String eq = detail.getString(EQ_KEY);
if (StrUtil.isBlank(ccy) || StrUtil.isBlank(availBalStr) || StrUtil.isBlank(cashBalStr)) {
- log.warn("账户详情缺失必要字段,跳过处理");
+ log.warn("账户频道缺失必要字段,跳过处理");
continue;
}
@@ -103,7 +115,7 @@
BigDecimal cashBal = parseBigDecimalSafe(cashBalStr);
if (availBal == null || cashBal == null || cashBal.compareTo(BigDecimal.ZERO) == 0) {
- log.warn("无效的账户余额数据,跳过处理");
+ log.warn("账户频道无效的账户余额数据,跳过处理");
continue;
}
@@ -111,7 +123,14 @@
BigDecimal divide = availBal.divide(cashBal, 4, RoundingMode.DOWN);
String state = (String) redisUtils.get(InstrumentsWs.INSTRUMENTSWS_CHANNEL + ":" + CoinEnums.HE_YUE.getCode() + ":state");
- if (!OrderParamEnums.STATE_3.getValue().equals(state)){
+ String out = (String) redisUtils.get(InstrumentsWs.INSTRUMENTSWS_CHANNEL + ":" + CoinEnums.HE_YUE.getCode() + ":out");
+ if (OrderParamEnums.STATE_4.getValue().equals(state)){
+ log.info(OrderParamEnums.STATE_4.getName());
+ state = OrderParamEnums.STATE_4.getValue();
+ }else if(OrderParamEnums.STATE_3.getValue().equals(state) && OrderParamEnums.OUT_YES.getValue().equals(out)){
+ log.info(OrderParamEnums.STATE_3.getName());
+ state = OrderParamEnums.STATE_3.getValue();
+ }else{
if (divide.compareTo(KANG_CANG_THRESHOLD) > 0) {
log.info(OrderParamEnums.STATE_1.getName());
state = OrderParamEnums.STATE_1.getValue();
@@ -119,8 +138,8 @@
log.warn(OrderParamEnums.STATE_2.getName());
state = OrderParamEnums.STATE_2.getValue();
} else {
- log.error(OrderParamEnums.STATE_3.getName());
- state = OrderParamEnums.STATE_3.getValue();
+ log.error(OrderParamEnums.STATE_0.getName());
+ state = OrderParamEnums.STATE_0.getValue();
}
}
--
Gitblit v1.9.1