From 0b4c87807860c0bfff0759a5cdc736c80e5f5772 Mon Sep 17 00:00:00 2001
From: zyy <zyy@email.com>
Date: Thu, 25 Sep 2025 15:50:48 +0800
Subject: [PATCH] 1

---
 trading-order-admin/src/main/java/com/yami/trading/api/controller/KlineController.java              |    8 ++--
 trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline5DayJob.java            |    2 
 trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline1MinuteJob.java         |    4 +-
 trading-order-huobi/src/main/java/com.yami.trading.huobi/data/internal/CryptosKlineServiceImpl.java |   53 +++++++++++++++++++++++---
 trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline1WeekJob.java           |    2 
 trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline15MinuteJob.java        |    2 
 trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline1MonJob.java            |    2 
 trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline1YearJob.java           |    2 
 trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline60MinuteJob.java        |    2 
 trading-order-huobi/src/main/java/com.yami.trading.huobi/data/internal/KlineInitServiceImpl.java    |    2 
 trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline5MinuteJob.java         |    2 
 trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline1DayJob.java            |    2 
 trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline30MinuteJob.java        |    2 
 trading-order-admin/src/main/java/com/yami/trading/admin/task/IcoTask.java                          |    2 
 trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline4HourJob.java           |    2 
 trading-order-huobi/src/main/java/com.yami.trading.huobi/data/internal/CryptosKlineService.java     |    2 +
 trading-order-admin/src/main/java/com/yami/trading/admin/controller/ico/AdminIcoController.java     |    4 +-
 17 files changed, 69 insertions(+), 26 deletions(-)

diff --git a/trading-order-admin/src/main/java/com/yami/trading/admin/controller/ico/AdminIcoController.java b/trading-order-admin/src/main/java/com/yami/trading/admin/controller/ico/AdminIcoController.java
index 9ec6abe..e7a1029 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/admin/controller/ico/AdminIcoController.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/admin/controller/ico/AdminIcoController.java
@@ -106,7 +106,7 @@
 			}
 
 			//更新ico实时价格
-			if (model.getUnitAmount().compareTo(BigDecimal.ZERO) >0 &&
+			/*if (model.getUnitAmount().compareTo(BigDecimal.ZERO) >0 &&
 					model.getUnitAmount().compareTo(ico.getUnitAmount()) != 0){
 				String symbol = ico.getSymbol();
 				RequestDataHelper.set("symbol", symbol);
@@ -119,7 +119,7 @@
 				realtimeService.updateById(realtime);
 				RequestDataHelper.clear();
 				DataCache.putRealtime(symbol, realtime);
-			}
+			}*/
 		}
 		//新增或编辑表单保存
 		icoService.saveOrUpdate(ico);
diff --git a/trading-order-admin/src/main/java/com/yami/trading/admin/task/IcoTask.java b/trading-order-admin/src/main/java/com/yami/trading/admin/task/IcoTask.java
index 70cf1d4..1332448 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/admin/task/IcoTask.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/admin/task/IcoTask.java
@@ -174,7 +174,7 @@
     /**
      * K线数据修正
      */
-    @Scheduled(cron = "0 */5 * * * ?")
+    //@Scheduled(cron = "0 */5 * * * ?")
     public void klineInit() {
         List<Item> items = ApplicationContextUtils.getApplicationContext().getBean(ItemService.class).list();
         if (CollectionUtil.isNotEmpty(items)) {
diff --git a/trading-order-admin/src/main/java/com/yami/trading/api/controller/KlineController.java b/trading-order-admin/src/main/java/com/yami/trading/api/controller/KlineController.java
index 327b75b..9367bb0 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/api/controller/KlineController.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/api/controller/KlineController.java
@@ -97,11 +97,11 @@
                 }
             }
 
-            BigDecimal currentValue = AdjustmentValueCache.getCurrentValue().get(symbol);
+            /*BigDecimal currentValue = AdjustmentValueCache.getCurrentValue().get(symbol);
             if (currentValue != null) {
                 data.forEach(kline -> {
-                    /*logger.info("==currentValue==close:{}, low:{}, high:{}, open:{}, currentValue:{}",
-                            kline.getClose(), kline.getLow(), kline.getHigh(), kline.getOpen(), currentValue);*/
+                    *//*logger.info("==currentValue==close:{}, low:{}, high:{}, open:{}, currentValue:{}",
+                            kline.getClose(), kline.getLow(), kline.getHigh(), kline.getOpen(), currentValue);*//*
                     if (!kline.isAdjusted()){
                         if (kline.getClose().compareTo(kline.getLow()) >= 0 && kline.getClose().compareTo(kline.getHigh()) <= 0) {
                             kline.setClose(kline.getClose().add(currentValue));
@@ -112,7 +112,7 @@
                         kline.setAdjusted(true);
                     }
                 });
-            }
+            }*/
             return Result.succeed(this.build(data, line, symbol));
         } catch (Exception e) {
             logger.error("getKline error", e);
diff --git a/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/internal/CryptosKlineService.java b/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/internal/CryptosKlineService.java
index 6cc0afe..86d089f 100644
--- a/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/internal/CryptosKlineService.java
+++ b/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/internal/CryptosKlineService.java
@@ -6,6 +6,8 @@
 import java.util.List;
 
 public interface CryptosKlineService {
+    public void init(String symbol);
+
     public void saveInit(String symbol);
 
     public void saveOne(String symbol, String line);
diff --git a/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/internal/CryptosKlineServiceImpl.java b/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/internal/CryptosKlineServiceImpl.java
index fb05daa..8a28e75 100644
--- a/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/internal/CryptosKlineServiceImpl.java
+++ b/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/internal/CryptosKlineServiceImpl.java
@@ -7,6 +7,7 @@
 import com.yami.trading.common.config.RequestDataHelper;
 import com.yami.trading.common.constants.Constants;
 import com.yami.trading.common.util.DateUtils;
+import com.yami.trading.huobi.data.AdjustmentValueCache;
 import com.yami.trading.huobi.data.DataCache;
 import com.yami.trading.huobi.hobi.HobiDataService;
 import com.yami.trading.service.data.KlineDBService;
@@ -18,6 +19,7 @@
 import org.springframework.jdbc.core.namedparam.NamedParameterJdbcOperations;
 import org.springframework.stereotype.Component;
 
+import java.math.BigDecimal;
 import java.util.*;
 
 @Component
@@ -34,6 +36,19 @@
     private SysparaService sysparaService;
     @Autowired
     private NamedParameterJdbcOperations namedParameterJdbcTemplate;
+
+    @Override
+    public void init(String symbol) {
+        this.bulid(symbol, Kline.PERIOD_1MIN);
+        this.bulid(symbol, Kline.PERIOD_5MIN);
+        this.bulid(symbol, Kline.PERIOD_15MIN);
+        this.bulid(symbol, Kline.PERIOD_30MIN);
+        this.bulid(symbol, Kline.PERIOD_60MIN);
+        this.bulid(symbol, Kline.PERIOD_4HOUR);
+        this.bulid(symbol, Kline.PERIOD_1DAY);
+        this.bulid(symbol, Kline.PERIOD_1MON);
+        this.bulid(symbol, Kline.PERIOD_1WEEK);
+    }
 
     @Override
     public void saveInit(String symbol) {
@@ -55,6 +70,19 @@
 
     }
 
+    public void bulid(String symbol, String line) {
+        RequestDataHelper.set("symbol", symbol);
+        List<Kline> list = hobiDataService.kline(itemService.findBySymbol(symbol).getSymbol(), line, null,
+                0);
+        KlineTimeObject model = new KlineTimeObject();
+        Collections.sort(list); // 按时间升序
+        model.setKline(list);
+        model.setLastTime(new Date());
+        DataCache.putKline(symbol, line, model);
+        RequestDataHelper.clear();
+
+    }
+
     public void bulidInit(String symbol, String line) {
         RequestDataHelper.set("symbol", symbol);
         List<Kline> list = hobiDataService.kline(itemService.findBySymbol(symbol).getSymbol(), line, null,
@@ -68,6 +96,8 @@
         RequestDataHelper.clear();
 
     }
+
+
 
     @Override
     public void saveOne(String symbol, String line) {
@@ -87,12 +117,13 @@
 
         String key = symbol + "_" + line;
         Kline hobiOne = DataCache.getKline_hobi().get(key);
-        if (hobiOne == null || lastOne == null) {
+        /*if (hobiOne == null || lastOne == null) {
+            logger.error("saveOne error, hobiOne is null,symbol [" + symbol + "]");
             // 取不到远程数据,直接退出
             return;
-        }
+        }*/
         RequestDataHelper.set("symbol", symbol);
-        Kline kline = this.bulidKline(realtime, lastOne, hobiOne, line);
+        Kline kline = this.bulidKline(realtime, lastOne, null, line);
         kline.setPeriod(line);
         klineDBService.save(kline);
 
@@ -124,8 +155,17 @@
 
         if (lastOne != null) {
             kline.setOpen(lastOne.getClose());
+            kline.setHigh(lastOne.getHigh());
+            kline.setLow(lastOne.getLow());
+
+            if (realtime.getClose().compareTo(kline.getHigh()) > 0) {
+                kline.setHigh(realtime.getClose());
+            }
+            if (realtime.getClose().compareTo(kline.getOpen()) < 0) {
+                kline.setLow(realtime.getClose());
+            }
         }
-        int interval = this.sysparaService.find("data_interval").getInteger().intValue() / 1000;
+        /*int interval = this.sysparaService.find("data_interval").getInteger().intValue() / 1000;
 
         HighLow highLow = null;
         switch (line) {
@@ -169,9 +209,10 @@
         }
         if (highLow != null && highLow.getLow() != null) {
             kline.setLow(highLow.getLow());
-        }
+        }*/
 
-        kline.setVolume(hobiOne.getVolume());
+
+        //kline.setVolume(hobiOne.getVolume());
 
         return kline;
     }
diff --git a/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/internal/KlineInitServiceImpl.java b/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/internal/KlineInitServiceImpl.java
index b34bee8..c61f27d 100644
--- a/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/internal/KlineInitServiceImpl.java
+++ b/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/internal/KlineInitServiceImpl.java
@@ -50,7 +50,7 @@
                     logger.info("当前开始初始化币对单个k线图: {}", symbol);
                     Item bySymbol = itemService.findBySymbol(symbol);
                     if (Item.cryptos.equalsIgnoreCase(bySymbol.getType())) {
-                        cryptosKlineService.saveInit(symbol);
+                        cryptosKlineService.init(symbol);
                     } else if ("1".equalsIgnoreCase(bySymbol.getFake())) {
                         fakeKlineInitService.saveInit(symbols);
                     } else {
diff --git a/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline15MinuteJob.java b/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline15MinuteJob.java
index 16ed4fc..f675f89 100644
--- a/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline15MinuteJob.java
+++ b/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline15MinuteJob.java
@@ -27,7 +27,7 @@
     @Autowired
     private CryptosKlineService cryptosKlineService;
 
-    @Scheduled(cron = "0 0/15 * ? * *")
+    @Scheduled(cron = "1 0/15 * ? * *")
     public void taskJob() {
         StopWatch stopWatch = new StopWatch();
         log.info("Kline15MinuteJob start ... ");
diff --git a/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline1DayJob.java b/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline1DayJob.java
index 3e9f8ca..95d484b 100644
--- a/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline1DayJob.java
+++ b/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline1DayJob.java
@@ -28,7 +28,7 @@
     @Autowired
     private CryptosKlineService cryptosKlineService;
 
-    @Scheduled(cron = "0 0/1 * * * ?")
+    @Scheduled(cron = "0 1 0 * * ?")
     public void taskJob() {
         StopWatch stopWatch = new StopWatch();
         log.info("Kline1DayJob start ... ");
diff --git a/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline1MinuteJob.java b/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline1MinuteJob.java
index 7f93f74..01e140e 100644
--- a/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline1MinuteJob.java
+++ b/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline1MinuteJob.java
@@ -28,7 +28,7 @@
     @Autowired
     private CryptosKlineService cryptosKlineService;
 
-    @Scheduled(cron = "0 * * ? * *")
+    @Scheduled(cron = "1 * * ? * *")
     public void taskJob() {
         StopWatch stopWatch = new StopWatch();
         log.info("Kline1MinuteJob start ... ");
@@ -37,7 +37,7 @@
         for (int i = 0; i < item_list.size(); i++) {
             Item item = item_list.get(i);
             if (MarketOpenChecker.isMarketOpenByItemCloseType(item.getOpenCloseType()) && item.getType().equals("cryptos")) {
-                log.debug("--------------- 5min kline ---------  {}", item.getSymbol());
+                //log.debug("--------------- 1min kline ---------  {}", item.getSymbol());
                 if (Item.cryptos.equalsIgnoreCase(item.getType())) {
                     cryptosKlineService.saveOne(item.getSymbol(), Kline.PERIOD_1MIN);
                 } else {
diff --git a/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline1MonJob.java b/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline1MonJob.java
index 2628885..1751669 100644
--- a/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline1MonJob.java
+++ b/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline1MonJob.java
@@ -28,7 +28,7 @@
     @Autowired
     private CryptosKlineService cryptosKlineService;
 
-    @Scheduled(cron = "0 0 0 1 * ?")
+    @Scheduled(cron = "0 1 0 1 * ?")
     public void taskJob() {
         StopWatch stopWatch = new StopWatch();
         log.info("Kline1MonJob start ... ");
diff --git a/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline1WeekJob.java b/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline1WeekJob.java
index 6b7f057..01447e8 100644
--- a/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline1WeekJob.java
+++ b/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline1WeekJob.java
@@ -28,7 +28,7 @@
     @Autowired
     private CryptosKlineService cryptosKlineService;
 
-    @Scheduled(cron = "0 0 0 ? * 1")
+    @Scheduled(cron = "1 0 0 ? * 2")
     public void taskJob() {
         StopWatch stopWatch = new StopWatch();
         log.info("Kline1WeekJob start ... ");
diff --git a/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline1YearJob.java b/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline1YearJob.java
index ebb8b6d..23b2d98 100644
--- a/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline1YearJob.java
+++ b/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline1YearJob.java
@@ -28,7 +28,7 @@
     @Autowired
     private CryptosKlineService cryptosKlineService;
 
-    @Scheduled(cron = "0 0 0 1 1 ?")
+    @Scheduled(cron = "1 0 0 1 1 ?")
     public void taskJob() {
         StopWatch stopWatch = new StopWatch();
         log.info("Kline1YearJob start ... ");
diff --git a/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline30MinuteJob.java b/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline30MinuteJob.java
index 71d1deb..8eacc3c 100644
--- a/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline30MinuteJob.java
+++ b/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline30MinuteJob.java
@@ -28,7 +28,7 @@
     @Autowired
     private CryptosKlineService cryptosKlineService;
 
-    @Scheduled(cron = "0 0/30 * ? * *")
+    @Scheduled(cron = "1 0/30 * ? * *")
     public void taskJob() {
         StopWatch stopWatch = new StopWatch();
         log.info("Kline30MinuteJob start ... ");
diff --git a/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline4HourJob.java b/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline4HourJob.java
index fb3b3e3..3ea1448 100644
--- a/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline4HourJob.java
+++ b/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline4HourJob.java
@@ -28,7 +28,7 @@
     @Autowired
     private CryptosKlineService cryptosKlineService;
 
-    @Scheduled(cron = "0 0 */4 ? * *")
+    @Scheduled(cron = "1 0 */4 ? * *")
     public void taskJob() {
         StopWatch stopWatch = new StopWatch();
         log.info("Kline4HourJob start ... ");
diff --git a/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline5DayJob.java b/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline5DayJob.java
index 974a451..3404b80 100644
--- a/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline5DayJob.java
+++ b/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline5DayJob.java
@@ -28,7 +28,7 @@
     @Autowired
     private CryptosKlineService cryptosKlineService;
 
-    @Scheduled(cron = "0 0 0 */5 * ?")
+    @Scheduled(cron = "1 0 0 */5 * ?")
     public void taskJob() {
         StopWatch stopWatch = new StopWatch();
         log.info("Kline5DayJob start ... ");
diff --git a/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline5MinuteJob.java b/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline5MinuteJob.java
index 0105744..5ae08ea 100644
--- a/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline5MinuteJob.java
+++ b/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline5MinuteJob.java
@@ -28,7 +28,7 @@
     @Autowired
     private CryptosKlineService cryptosKlineService;
 
-    @Scheduled(cron = "0 0/5 * ? * *")
+    @Scheduled(cron = "1 0/5 * ? * *")
     public void taskJob() {
         StopWatch stopWatch = new StopWatch();
         log.info("Kline5MinuteJob start ... ");
diff --git a/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline60MinuteJob.java b/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline60MinuteJob.java
index ba77442..0a774d6 100644
--- a/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline60MinuteJob.java
+++ b/trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline60MinuteJob.java
@@ -28,7 +28,7 @@
     @Autowired
     private CryptosKlineService cryptosKlineService;
 
-    @Scheduled(cron = "0 0 * ? * *")
+    @Scheduled(cron = "1 0 * ? * *")
     public void taskJob() {
         StopWatch stopWatch = new StopWatch();
         log.info("Kline60MinuteJob start ... ");

--
Gitblit v1.9.3