From c8b80dc38d75e89aa44574659b154ddea2e8fce5 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Wed, 07 Jan 2026 14:16:32 +0800
Subject: [PATCH] refactor(okx): 重构WebSocket客户端实现止盈止损逻辑

---
 src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/PositionsWs.java |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/PositionsWs.java b/src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/PositionsWs.java
index f1a8d12..7136774 100644
--- a/src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/PositionsWs.java
+++ b/src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/PositionsWs.java
@@ -4,6 +4,9 @@
 import com.alibaba.fastjson.JSONObject;
 import com.xcong.excoin.modules.okxNewPrice.okxWs.enums.CoinEnums;
 import com.xcong.excoin.modules.okxNewPrice.okxWs.enums.OrderParamEnums;
+import com.xcong.excoin.modules.okxNewPrice.okxWs.param.TradeRequestParam;
+import com.xcong.excoin.modules.okxNewPrice.okxWs.wanggeList.WangGeListEnum;
+import com.xcong.excoin.modules.okxNewPrice.okxWs.wanggeList.WangGeListService;
 import com.xcong.excoin.modules.okxNewPrice.okxpi.MallUtils;
 import com.xcong.excoin.modules.okxNewPrice.utils.WsMapBuild;
 import com.xcong.excoin.modules.okxNewPrice.utils.WsParamBuild;
@@ -12,6 +15,8 @@
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
@@ -109,7 +114,8 @@
                             last, idxPx, bePx, realizedPnl, settledPnl,
                             markPx,fee,fundingFee
                     );
-                    initParam(posData, accountName,posSide);
+                    //先更新缓存
+                    Map<String, BigDecimal> stringBigDecimalMap = initParam(posData, accountName, posSide);
                 }
             }
         } catch (Exception e) {
@@ -117,7 +123,7 @@
         }
     }
 
-    private static void initParam(JSONObject posData, String accountName,String posSide) {
+    private static Map<String, BigDecimal> initParam(JSONObject posData, String accountName,String posSide) {
         String accountNamePositons = initAccountName(accountName, posSide);
         Map<String, BigDecimal> accountMap = getAccountMap(accountNamePositons);
         WsMapBuild.saveBigDecimalToMap(accountMap, "avgPx", WsMapBuild.parseBigDecimalSafe(posData.getString("avgPx")));
@@ -137,5 +143,6 @@
         if (ordFrozImr.compareTo(totalOrderUsdt) <= 0){
             WsMapBuild.saveBigDecimalToMap(accountMap, CoinEnums.READY_STATE.name(), WsMapBuild.parseBigDecimalSafe(CoinEnums.READY_STATE_YES.getCode()));
         }
+        return accountMap;
     }
 }

--
Gitblit v1.9.1