From cd932d253f4d01a20cd1269d78386dbd2b9e2eb2 Mon Sep 17 00:00:00 2001
From: zyy3 <zyy3@zy.com>
Date: Tue, 07 Oct 2025 21:56:01 +0800
Subject: [PATCH] 涨幅修复

---
 trading-order-huobi/src/main/java/com.yami.trading.huobi/data/DataCache.java                  |   20 ++++++++++++++++++++
 trading-order-admin/src/main/java/com/yami/trading/admin/task/RealtimeWebsocketServer.java    |    7 +++++--
 trading-order-admin/src/main/java/com/yami/trading/api/controller/RealtimeController.java     |    4 ++++
 trading-order-huobi/src/main/java/com.yami.trading.huobi/data/internal/DataDBServiceImpl.java |    4 ++++
 4 files changed, 33 insertions(+), 2 deletions(-)

diff --git a/trading-order-admin/src/main/java/com/yami/trading/admin/task/RealtimeWebsocketServer.java b/trading-order-admin/src/main/java/com/yami/trading/admin/task/RealtimeWebsocketServer.java
index 52c4782..8e798ce 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/admin/task/RealtimeWebsocketServer.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/admin/task/RealtimeWebsocketServer.java
@@ -143,11 +143,14 @@
 					realtime.setLow(new BigDecimal(low));
 				}
 
-				Double h24Before = DataCache.getRealtime24HBeforeOpen().get(symbol);
+				/*ouble h24Before = DataCache.getRealtime24HBeforeOpen().get(symbol);
 				if (h24Before != null) {
 					realtime.setOpen(new BigDecimal(h24Before));
-				}
+				}*/
 
+				/*if (realtime.getSymbol().equals("axsusdt")) {
+					System.out.println("axsusdt2" + realtime);
+				}*/
 				DataCache.putRealtime(symbol, realtime);
 				// System.out.println(JSONObject.toJSONString(realtime));
 			}
diff --git a/trading-order-admin/src/main/java/com/yami/trading/api/controller/RealtimeController.java b/trading-order-admin/src/main/java/com/yami/trading/api/controller/RealtimeController.java
index e46f471..9309b23 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/api/controller/RealtimeController.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/api/controller/RealtimeController.java
@@ -84,6 +84,10 @@
 					d.setAmount(d.getAmount().setScale(2, RoundingMode.HALF_UP));
 				}
 				d.setSymbolData(bySymbol.getSymbolData());
+				BigDecimal open = DataCache.getLatestOpen(d.getSymbol());
+				if (open != null) {
+					d.setOpen(open);
+				}
 				d.setChangeRatio(dataDBService.getChangeRatio(d, d.getSymbol()));
 			});
 
diff --git a/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/DataCache.java b/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/DataCache.java
index 9967bec..39acc33 100644
--- a/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/DataCache.java
+++ b/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/DataCache.java
@@ -8,6 +8,7 @@
 import com.yami.trading.huobi.data.internal.TrendTimeObject;
 import org.apache.commons.lang3.StringUtils;
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -71,6 +72,7 @@
      * 最新的实时价格信息缓存 <币种code, RealTime>
      */
     public static Map<String, Realtime> latestRealTime = new ConcurrentHashMap<>();
+    public static Map<String, BigDecimal> latestOpen = new ConcurrentHashMap<>();
     //股票时区暂存
     public static Map<String, StockMarket> realMarketMap = new ConcurrentHashMap<>();
     public static void depthToTrade(Depth depth) {
@@ -198,4 +200,22 @@
     public static void putLatestRealTime(String symbol, Realtime model) {
         latestRealTime.put(symbol, model);
     }
+
+    public static void putLatestOpen(String symbol, BigDecimal open) {
+        latestOpen.put(symbol, open);
+    }
+
+    public static BigDecimal getLatestOpen(String symbol) {
+        BigDecimal open = latestOpen.get(symbol);
+        if (open == null) {
+            if (StringUtils.isAllLowerCase(symbol)) {
+                symbol = symbol.toUpperCase();
+            } else if (StringUtils.isAllUpperCase(symbol)) {
+                symbol = symbol.toLowerCase();
+            }
+            return latestOpen.get(symbol);
+        } else {
+            return open;
+        }
+    }
 }
diff --git a/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/internal/DataDBServiceImpl.java b/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/internal/DataDBServiceImpl.java
index 35ef3ca..4a33d1e 100644
--- a/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/internal/DataDBServiceImpl.java
+++ b/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/internal/DataDBServiceImpl.java
@@ -57,7 +57,11 @@
         if (itemService.isSuspended(symbol)) {
             return;
         }
+        /*if (realtime.getSymbol().equals("axsusdt")) {
+            System.out.println("axsusdt1" + realtime);
+        }*/
         DataCache.putLatestRealTime(symbol, realtime);
+        DataCache.putLatestOpen(symbol, realtime.getOpen());
 
         // 最近60s内实时价格集合
         List<Realtime> list = DataCache.latestRealTimeMap_60s.get(symbol);

--
Gitblit v1.9.3