Administrator
20 hours ago f819941f05c6374d72ca0ac9514db983a1f12c4d
refactor(symbols): 优化K线数据获取逻辑

- 将Redis数据获取方式从Object改为String类型
- 移除K线数据列表的长度限制和循环处理逻辑
- 直接返回JSON解析的K线数据数组
- 注释掉原有的Candlestick对象转换逻辑
- 简化了数据返回流程,提升代码可读性
1 files modified
46 ■■■■ changed files
src/main/java/com/xcong/excoin/modules/symbols/service/impl/SymbolsServiceImpl.java 46 ●●●● patch | view | raw | blame | history
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