From 5e57de9b12ee136e45ce5754c7fe2e7eb12af05a Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Fri, 12 Jun 2026 18:35:45 +0800
Subject: [PATCH] 1

---
 trading-order-huobi/src/main/java/com/yami/trading/huobi/data/internal/DataServiceImpl.java |   23 ++++++++++++++++++++---
 1 files changed, 20 insertions(+), 3 deletions(-)

diff --git a/trading-order-huobi/src/main/java/com/yami/trading/huobi/data/internal/DataServiceImpl.java b/trading-order-huobi/src/main/java/com/yami/trading/huobi/data/internal/DataServiceImpl.java
index a058d41..fc7cbd3 100644
--- a/trading-order-huobi/src/main/java/com/yami/trading/huobi/data/internal/DataServiceImpl.java
+++ b/trading-order-huobi/src/main/java/com/yami/trading/huobi/data/internal/DataServiceImpl.java
@@ -5,6 +5,7 @@
 import com.yami.trading.bean.item.domain.Item;
 import com.yami.trading.huobi.data.DataCache;
 import com.yami.trading.service.data.DataService;
+import com.yami.trading.service.item.ItemPreMarketService;
 import com.yami.trading.service.item.ItemService;
 import com.yami.trading.service.syspara.SysparaService;
 import lombok.extern.slf4j.Slf4j;
@@ -25,6 +26,8 @@
 	ItemService itemService;
 	@Autowired
 	KlineService klineService;
+	@Autowired
+	ItemPreMarketService itemPreMarketService;
 
 	/**
 	 * 根据币种分类 获取实时价格数据
@@ -52,7 +55,7 @@
 		if (!StrUtil.isEmpty(symbols) && !symbols.contains(",")) {
 			Realtime realtime = DataCache.getRealtime(symbols);
 			if (realtime != null) {
-				list.add(realtime);
+				list.add(applyPreMarket(realtime));
 			}
 		}
 		// 如果不传参数 返回全部币种行情
@@ -61,7 +64,7 @@
 			for (Item item : items) {
 				Realtime realtime = DataCache.getRealtime(item.getSymbol());
 				if (realtime != null) {
-					list.add(realtime);
+					list.add(applyPreMarket(realtime));
 				}
 			}
 		}
@@ -71,13 +74,26 @@
 			for (String oneSymbol : symbolArr) {
 				Realtime realtime = DataCache.getRealtime(oneSymbol);
 				if (realtime != null) {
-					list.add(realtime);
+					list.add(applyPreMarket(realtime));
 				} else {
 					log.error("realtime is null; 币种->{}", oneSymbol);
 				}
 			}
 		}
 		return list;
+	}
+
+	private Realtime applyPreMarket(Realtime realtime) {
+		if (realtime == null || itemPreMarketService == null) {
+			return realtime;
+		}
+		try {
+			Realtime copy = (Realtime) realtime.clone();
+			return itemPreMarketService.applyPreMarketPrice(copy);
+		} catch (CloneNotSupportedException e) {
+			log.warn("clone realtime failed, symbol={}", realtime.getSymbol(), e);
+			return realtime;
+		}
 	}
 
 	/**
@@ -109,6 +125,7 @@
 
 		Realtime realtime = DataCache.getLatestRealTime(symbol);
 		if (realtime != null) {
+			realtime = applyPreMarket(realtime);
 			Kline kline = null;
 			if (KlineConstant.PERIOD_1MIN.equals(line)) {
 				kline = klineService.bulidKline1Minute(realtime, KlineConstant.PERIOD_1MIN);

--
Gitblit v1.9.3