From 5880c05eaaaf5350cd4a69afeaf197e4aea70156 Mon Sep 17 00:00:00 2001
From: zyy3 <zyy3@zy.com>
Date: Thu, 06 Nov 2025 23:58:52 +0800
Subject: [PATCH] 1

---
 trading-order-huobi/src/main/java/com/yami/trading/huobi/data/internal/KlineServiceImpl.java |   55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 55 insertions(+), 0 deletions(-)

diff --git a/trading-order-huobi/src/main/java/com/yami/trading/huobi/data/internal/KlineServiceImpl.java b/trading-order-huobi/src/main/java/com/yami/trading/huobi/data/internal/KlineServiceImpl.java
index 09ba49d..78189cd 100644
--- a/trading-order-huobi/src/main/java/com/yami/trading/huobi/data/internal/KlineServiceImpl.java
+++ b/trading-order-huobi/src/main/java/com/yami/trading/huobi/data/internal/KlineServiceImpl.java
@@ -1,13 +1,19 @@
 package com.yami.trading.huobi.data.internal;
 
+import cn.hutool.http.HttpUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.google.common.collect.Lists;
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
 import com.yami.trading.bean.data.domain.Kline;
 import com.yami.trading.bean.data.domain.Realtime;
 import com.yami.trading.bean.item.domain.Item;
 import com.yami.trading.common.config.RequestDataHelper;
 import com.yami.trading.common.constants.Constants;
+import com.yami.trading.common.domain.Result;
+import com.yami.trading.common.exception.YamiShopBindException;
 import com.yami.trading.common.util.DateUtils;
+import com.yami.trading.huobi.websocket.constant.enums.EStockType;
 import com.yami.trading.service.MarketOpenChecker;
 import com.yami.trading.common.util.ThreadUtils;
 import com.yami.trading.common.util.UTCDateUtils;
@@ -16,6 +22,7 @@
 import com.yami.trading.service.data.RealtimeService;
 import com.yami.trading.service.item.ItemService;
 import com.yami.trading.service.syspara.SysparaService;
+import lombok.Data;
 import org.jetbrains.annotations.Nullable;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -952,4 +959,52 @@
         }
         return result;
     }
+
+    @Data
+    class kData {
+        long t;
+        String c;
+        String o;
+        String h;
+        String l;
+        String v;
+        String vo;
+    }
+
+    @Override
+    public List<Kline> getKData(Item item, String interval) {
+        try {
+            EStockType eStockType = EStockType.US;
+            Object object = HttpUtil.get(eStockType.stockUrl + "kline?pid=" + item.getStockCode() + "&interval=" + interval + "&key=" + eStockType.stockKey);
+            Gson gson = new Gson();
+            List<kData> dataList = gson.fromJson(object.toString(), new TypeToken<List<kData>>(){}.getType());
+            logger.info("{}获取{}条K线" , item.getSymbol() ,dataList.size());
+            List<Kline> list = new ArrayList<>();
+            if (!dataList.isEmpty() && dataList.size() > 0) {
+                Realtime realtime = DataCache.getRealtime(item.getSymbol());
+                // 修改 List 中的最后一条数据
+                kData lastData = dataList.get(dataList.size() - 1);
+                lastData.setC(String.valueOf(realtime.getClose()));
+                lastData.setO(String.valueOf(realtime.getOpen()));
+                lastData.setH(String.valueOf(realtime.getHigh()));
+                lastData.setL(String.valueOf(realtime.getLow()));
+
+                for (int i = 0; i < dataList.size(); i++) {
+                    kData kData = dataList.get(i);
+                    Kline kline = new Kline();
+                    kline.setTs(Long.valueOf(kData.getT() + "000"));
+                    kline.setClose(Double.valueOf(kData.getC()));
+                    kline.setOpen(Double.valueOf(kData.getO()));
+                    kline.setHigh(Double.valueOf(kData.getH()));
+                    kline.setLow(Double.valueOf(kData.getL()));
+                    list.add(kline);
+                }
+            }
+
+            return list;
+        } catch (Exception e) {
+            logger.error("getKData error", e);
+        }
+        return null;
+    }
 }

--
Gitblit v1.9.3