From f819941f05c6374d72ca0ac9514db983a1f12c4d Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Fri, 26 Dec 2025 10:18:28 +0800
Subject: [PATCH] refactor(symbols): 优化K线数据获取逻辑

---
 src/main/java/com/xcong/excoin/modules/symbols/service/impl/SymbolsServiceImpl.java |   46 ++++++++++++++++++++++++----------------------
 1 files changed, 24 insertions(+), 22 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/symbols/service/impl/SymbolsServiceImpl.java b/src/main/java/com/xcong/excoin/modules/symbols/service/impl/SymbolsServiceImpl.java
index 8432ea3..bb13550 100644
--- a/src/main/java/com/xcong/excoin/modules/symbols/service/impl/SymbolsServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/symbols/service/impl/SymbolsServiceImpl.java
@@ -188,28 +188,30 @@
             key = StrUtil.format(key, klineDetailDto.getSymbol(), klineDetailDto.getPeriod());
         }
 
-        Object data = redisUtils.get(key);
-        if (data != null) {
-            List list = (List) data;
-            int length = 0;
-            // 默认获取k线900个柱状(超出会报错)
-            int size = 900;
-
-            if (list.size() > size) {
-                length = size - 1;
-            } else {
-                length = list.size() - 1;
-            }
-
-            List<KlineDataVo> result = new ArrayList<>(length);
-            for (int i = length; i > 0; i--) {
-                Candlestick object = (Candlestick) list.get(i);
-                KlineDataVo klineDataVo = CandlestickMapper.INSTANCE.toKlineDataVo(object);
-                result.add(klineDataVo);
-            }
-            return Result.ok(result);
-        }
-        return Result.fail("获取数据失败");
+        String data = redisUtils.getString(key);
+        List<String[]> klinesList = JSON.parseArray(data, String[].class);
+        return Result.ok(klinesList);
+//        if (data != null) {
+//            List list = (List) data;
+//            int length = 0;
+//            // 默认获取k线900个柱状(超出会报错)
+//            int size = 900;
+//
+//            if (list.size() > size) {
+//                length = size - 1;
+//            } else {
+//                length = list.size() - 1;
+//            }
+//
+//            List<KlineDataVo> result = new ArrayList<>(length);
+//            for (int i = length; i > 0; i--) {
+//                Candlestick object = (Candlestick) list.get(i);
+//                KlineDataVo klineDataVo = CandlestickMapper.INSTANCE.toKlineDataVo(object);
+//                result.add(klineDataVo);
+//            }
+//            return Result.ok(result);
+//        }
+//        return Result.fail("获取数据失败");
     }
 
     @Override

--
Gitblit v1.9.1