From d9b3fe860d58c8a9759fa7f690febfc8cfc75827 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Sat, 13 Dec 2025 22:10:21 +0800
Subject: [PATCH] refactor(okxWs): 优化账户和持仓状态更新逻辑

---
 src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/TradeOrderWs.java |   21 +++++++++++----------
 1 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/TradeOrderWs.java b/src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/TradeOrderWs.java
index 9e22ee3..f3a70cc 100644
--- a/src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/TradeOrderWs.java
+++ b/src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/TradeOrderWs.java
@@ -28,15 +28,16 @@
 
     public static void orderEvent(WebSocketClient webSocketClient, String side) {
 
-        log.info("开始执行TradeOrderWs......");
+//        log.info("开始执行TradeOrderWs......");
         String accountReadyState = AccountWs.ACCOUNTWSMAP.get(CoinEnums.READY_STATE.name());
         if (!CoinEnums.READY_STATE_YES.getCode().equals(accountReadyState)) {
-            log.info("账户通道未就绪,取消发送");
+//            log.info("账户通道未就绪,取消发送");
             return;
         }
-        BigDecimal positionsReadyState = PositionsWs.POSITIONSWSMAP.get(CoinEnums.READY_STATE.name());
+        BigDecimal positionsReadyState = PositionsWs.POSITIONSWSMAP.get(CoinEnums.READY_STATE.name()) == null
+                ? BigDecimal.ZERO : PositionsWs.POSITIONSWSMAP.get(CoinEnums.READY_STATE.name());
         if (WsMapBuild.parseBigDecimalSafe(CoinEnums.READY_STATE_YES.getCode()).compareTo(positionsReadyState) != 0) {
-            log.info("仓位通道未就绪,取消发送");
+//            log.info("仓位通道未就绪,取消发送");
             return;
         }
         // 校验必要参数
@@ -46,23 +47,23 @@
         }
         String buyCnt = "";
         if (OrderParamEnums.HOLDING.getValue().equals(side)){
-            log.info("当前状态为持仓中,取消发送");
+//            log.info("当前状态为持仓中,取消发送");
             return;
         }else if (OrderParamEnums.OUT.getValue().equals(side)){
-            log.info("当前状态为止损");
+//            log.info("当前状态为止损");
             side = OrderParamEnums.SELL.getValue();
             buyCnt = String.valueOf(PositionsWs.POSITIONSWSMAP.get("pos"));
         }else if (OrderParamEnums.INIT.getValue().equals(side)){
-            log.info("当前状态为初始化");
+//            log.info("当前状态为初始化");
             side = OrderParamEnums.BUY.getValue();
             buyCnt = InstrumentsWs.INSTRUMENTSWSMAP.get(CoinEnums.BUY_CNT.name());
         }else if (OrderParamEnums.BUY.getValue().equals(side)){
-            log.info("当前状态为加仓");
+//            log.info("当前状态为加仓");
             String buyCntTime = TRADEORDERWSMAP.get("buyCntTime");
             String buyCntStr = InstrumentsWs.INSTRUMENTSWSMAP.get(CoinEnums.BUY_CNT.name());
             buyCnt = String.valueOf(new BigDecimal(buyCntTime).multiply(new BigDecimal(buyCntStr)));
         }else if (OrderParamEnums.SELL.getValue().equals(side)){
-            log.info("当前状态为减仓");
+//            log.info("当前状态为减仓");
             buyCnt = String.valueOf(PositionsWs.POSITIONSWSMAP.get("pos"));
         }else{
             log.warn("交易状态异常,取消发送");
@@ -90,7 +91,7 @@
             String connId = WsParamBuild.getOrderNum(ORDERWS_CHANNEL);
             JSONObject jsonObject = WsParamBuild.buildJsonObject(connId, ORDERWS_CHANNEL, argsArray);
             webSocketClient.send(jsonObject.toJSONString());
-            log.info("发送下单频道:{},数量:{}", side, buyCnt);
+//            log.info("发送下单频道:{},数量:{}", side, buyCnt);
 
             WsMapBuild.saveStringToMap(TRADEORDERWSMAP, "buyCntTime",String.valueOf(BigDecimal.ONE));
             WsMapBuild.saveStringToMap(TRADEORDERWSMAP, "clOrdId", clOrdId);

--
Gitblit v1.9.1