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