From cc56a31660952dbf04d28a8c02bcb9e071a36a51 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Tue, 09 Dec 2025 22:29:49 +0800
Subject: [PATCH] fix(okxNewPrice): 优化持仓订单价格存储逻辑

---
 src/main/java/com/xcong/excoin/modules/okxNewPrice/celue/CaoZuoServiceImpl.java |    3 +++
 src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/TradeOrderWs.java      |    7 ++++++-
 2 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/okxNewPrice/celue/CaoZuoServiceImpl.java b/src/main/java/com/xcong/excoin/modules/okxNewPrice/celue/CaoZuoServiceImpl.java
index a1c0775..7c97072 100644
--- a/src/main/java/com/xcong/excoin/modules/okxNewPrice/celue/CaoZuoServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/okxNewPrice/celue/CaoZuoServiceImpl.java
@@ -109,6 +109,7 @@
                         if (realizedPnlValue.compareTo(BigDecimal.ZERO) <= 0) {
                             if (uplValue.compareTo(realizedPnlValue) < 0) {
                                 log.info("当前未实现盈亏:{}没有大于已实现收益>{},等待中", uplValue, realizedPnlValue);
+                                redisUtils.set(positionsOrderPriceKey, String.valueOf(pingCang.getValue()), 0);
                                 return OrderParamEnums.HOLDING.getValue();
                             }else if (uplValue.compareTo(realizedPnlValue) > 0 && uplValue.compareTo(imrValue)  >= 0) {
                                 log.info("当前未实现盈亏:{}大于预计收益>{},赚钱咯", uplValue, imrValue);
@@ -116,6 +117,7 @@
                                 return OrderParamEnums.SELL.getValue();
                             }else{
                                 log.info("当前未实现盈亏:{}没有大于预计收益>{},钱在路上了", uplValue, imrValue);
+                                redisUtils.set(positionsOrderPriceKey, String.valueOf(pingCang.getValue()), 0);
                                 return OrderParamEnums.HOLDING.getValue();
                             }
                         }else {
@@ -125,6 +127,7 @@
                                 return OrderParamEnums.SELL.getValue();
                             }else{
                                 log.info("当前未实现盈亏:{}没有大于预计收益>{},钱在路上了", uplValue, imrValue);
+                                redisUtils.set(positionsOrderPriceKey, String.valueOf(pingCang.getValue()), 0);
                                 return OrderParamEnums.HOLDING.getValue();
                             }
                          }
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 0c9eae3..6670127 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
@@ -31,7 +31,12 @@
             return;
         } else if (OrderParamEnums.INIT.getValue().equals(side)) {
             side = OrderParamEnums.BUY.getValue();
-            buyCnt = getRedisValue(redisUtils, InstrumentsWs.INSTRUMENTSWS_CHANNEL, ":ctVal");
+            String buyCntNormal = getRedisValue(redisUtils, PositionsWs.POSITIONSWS_CHANNEL, ":buyCnt");
+            if (StrUtil.isNotBlank(buyCntNormal)) {
+                buyCnt = buyCntNormal;
+            }else{
+                buyCnt = getRedisValue(redisUtils, InstrumentsWs.INSTRUMENTSWS_CHANNEL, ":ctVal");
+            }
         } else if (OrderParamEnums.OUT.getValue().equals(side)) {
             side = OrderParamEnums.SELL.getValue();
             buyCnt = getRedisValue(redisUtils, PositionsWs.POSITIONSWS_CHANNEL, ":pos");

--
Gitblit v1.9.1