From 7289903c3b78d4e6e141e3a5e976ddef52e9fc97 Mon Sep 17 00:00:00 2001
From: zyy <zyy@email.com>
Date: Fri, 29 May 2026 14:31:40 +0800
Subject: [PATCH] 1
---
trading-order-huobi/src/main/java/com.yami.trading.huobi/data/internal/RemoteDataServiceImpl.java | 106 +++++++++++++++++++++++------------------------------
1 files changed, 46 insertions(+), 60 deletions(-)
diff --git a/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/internal/RemoteDataServiceImpl.java b/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/internal/RemoteDataServiceImpl.java
index 785ae72..c97d876 100644
--- a/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/internal/RemoteDataServiceImpl.java
+++ b/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/internal/RemoteDataServiceImpl.java
@@ -73,10 +73,6 @@
@Override
public List<Kline> kline(String symbol, String line) {
- Item bySymbol = itemService.findBySymbol(symbol);
- if(Item.cryptos.equals(bySymbol.getType())){
- return klineCryptos(symbol, line);
- }
KlineTimeObject timeObject = DataCache.getKline(symbol, line);
List<Kline> list = new ArrayList<Kline>();
if (timeObject != null) {
@@ -85,7 +81,7 @@
List<Kline> list_clone = new ArrayList<Kline>();
try {
for (int i = 0; i < list.size(); i++) {
- if(list.get(i) == null){
+ if (list.get(i) == null) {
continue;
}
Kline kline = (Kline) list.get(i).clone();
@@ -96,71 +92,61 @@
}
Realtime realtime = DataCache.getLatestRealTime(symbol);
- if (realtime != null) {
- Kline kline = null;
- if (KlineConstant.PERIOD_1MIN.equals(line)) {
- kline = klineService.bulidKline1Minute(realtime, KlineConstant.PERIOD_1MIN);
- } else if (KlineConstant.PERIOD_5MIN.equals(line)) {
- kline = klineService.bulidKline5Minute(realtime, KlineConstant.PERIOD_5MIN);
- } else if (KlineConstant.PERIOD_15MIN.equals(line)) {
- kline = klineService.bulidKline15Minute(realtime, KlineConstant.PERIOD_15MIN);
- } else if (KlineConstant.PERIOD_30MIN.equals(line)) {
- kline = klineService.bulidKline30Minute(realtime, KlineConstant.PERIOD_30MIN);
- } else if (KlineConstant.PERIOD_60MIN.equals(line)) {
- kline = klineService.bulidKline60Minute(realtime, KlineConstant.PERIOD_60MIN);
- } else if (KlineConstant.PERIOD_4HOUR.equals(line)) {
- kline = klineService.bulidKline4Hour(realtime, KlineConstant.PERIOD_4HOUR);
- } else if (KlineConstant.PERIOD_1DAY.equals(line)) {
- kline = klineService.bulidKline1Day(realtime, KlineConstant.PERIOD_1DAY);
- } else if (KlineConstant.PERIOD_5DAY.equals(line)) {
- kline = klineService.bulidKline5Day(realtime, KlineConstant.PERIOD_5DAY);
- } else if (KlineConstant.PERIOD_1WEEK.equals(line)) {
- kline = klineService.bulidKline1Week(realtime, KlineConstant.PERIOD_1WEEK);
- } else if (KlineConstant.PERIOD_1MON.equals(line)) {
- kline = klineService.bulidKline1Mon(realtime, KlineConstant.PERIOD_1MON);
- } else if (KlineConstant.PERIOD_QUARTER.equals(line)) {
- kline = klineService.bulidKline1Mon(realtime, KlineConstant.PERIOD_QUARTER);
- } else if (KlineConstant.PERIOD_YEAR.equals(line)) {
- kline = klineService.bulidKline1Mon(realtime, KlineConstant.PERIOD_YEAR);
- }
- if (null != kline) {
- list_clone.add(kline);
- }
+ if (realtime == null) {
+ realtime = DataCache.getRealtime(symbol);
}
- // 按时间升序
+ if (realtime != null) {
+ appendOrReplaceKline(list_clone, buildCurrentKline(realtime, line));
+ }
Collections.sort(list_clone);
return list_clone;
+ }
+ private Kline buildCurrentKline(Realtime realtime, String line) {
+ if (KlineConstant.PERIOD_1MIN.equals(line)) {
+ return klineService.bulidKline1Minute(realtime, KlineConstant.PERIOD_1MIN);
+ } else if (KlineConstant.PERIOD_5MIN.equals(line)) {
+ return klineService.bulidKline5Minute(realtime, KlineConstant.PERIOD_5MIN);
+ } else if (KlineConstant.PERIOD_15MIN.equals(line)) {
+ return klineService.bulidKline15Minute(realtime, KlineConstant.PERIOD_15MIN);
+ } else if (KlineConstant.PERIOD_30MIN.equals(line)) {
+ return klineService.bulidKline30Minute(realtime, KlineConstant.PERIOD_30MIN);
+ } else if (KlineConstant.PERIOD_60MIN.equals(line)) {
+ return klineService.bulidKline60Minute(realtime, KlineConstant.PERIOD_60MIN);
+ } else if (KlineConstant.PERIOD_4HOUR.equals(line)) {
+ return klineService.bulidKline4Hour(realtime, KlineConstant.PERIOD_4HOUR);
+ } else if (KlineConstant.PERIOD_1DAY.equals(line)) {
+ return klineService.bulidKline1Day(realtime, KlineConstant.PERIOD_1DAY);
+ } else if (KlineConstant.PERIOD_5DAY.equals(line)) {
+ return klineService.bulidKline5Day(realtime, KlineConstant.PERIOD_5DAY);
+ } else if (KlineConstant.PERIOD_1WEEK.equals(line)) {
+ return klineService.bulidKline1Week(realtime, KlineConstant.PERIOD_1WEEK);
+ } else if (KlineConstant.PERIOD_1MON.equals(line)) {
+ return klineService.bulidKline1Mon(realtime, KlineConstant.PERIOD_1MON);
+ } else if (KlineConstant.PERIOD_QUARTER.equals(line)) {
+ return klineService.bulidKlineQuarter(realtime, KlineConstant.PERIOD_QUARTER);
+ } else if (KlineConstant.PERIOD_YEAR.equals(line)) {
+ return klineService.bulidKlineYear(realtime, KlineConstant.PERIOD_YEAR);
+ }
+ return null;
}
public List<Kline> klineCryptos(String symbol, String line) {
- KlineTimeObject timeObject = DataCache.getKline(symbol, line);
- List<Kline> list = new ArrayList<Kline>();
- if (timeObject != null) {
- list = timeObject.getKline();
+ return kline(symbol, line);
+ }
+
+ private void appendOrReplaceKline(List<Kline> list, Kline kline) {
+ if (kline == null) {
+ return;
}
- List<Kline> list_clone = new ArrayList<Kline>();
- try {
- for (int i = 0; i < list.size(); i++) {
- Kline kline = (Kline) list.get(i).clone();
- list_clone.add(kline);
+ for (int i = list.size() - 1; i >= 0; i--) {
+ Kline existing = list.get(i);
+ if (existing.getTs() != null && existing.getTs().equals(kline.getTs())) {
+ list.set(i, kline);
+ return;
}
- } catch (CloneNotSupportedException e) {
- e.printStackTrace();
}
- Realtime realtime = DataCache.getRealtime(symbol);
- Kline hobiOne = DataCache.getKline_hobi().get(symbol + "_" + line);
-
- Kline lastOne = null;
- if (list != null && list.size() > 0) {
- lastOne = list.get(list.size() - 1);
- }
- if (realtime != null && hobiOne != null && lastOne != null) {
- list_clone.add(this.klineService.bulidKline(realtime, lastOne, hobiOne, line));
- }
- Collections.sort(list_clone); // 按时间升序
- return list_clone;
-
+ list.add(kline);
}
@Override
--
Gitblit v1.9.3