From 9a9b3bd2c07d177807dfde1b1796cddc1ac410a4 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Fri, 29 May 2020 11:48:12 +0800 Subject: [PATCH] finish kline detail interface --- src/main/java/com/xcong/excoin/modules/symbols/service/impl/SymbolsServiceImpl.java | 39 +++++++++++++++++++++++++++++++++++++++ 1 files changed, 39 insertions(+), 0 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 b6ba34e..bd78569 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 @@ -1,13 +1,17 @@ package com.xcong.excoin.modules.symbols.service.impl; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; import com.huobi.client.model.Candlestick; import com.xcong.excoin.common.contants.AppContants; import com.xcong.excoin.common.enumerates.SymbolEnum; import com.xcong.excoin.common.response.Result; +import com.xcong.excoin.common.system.mapper.CandlestickMapper; import com.xcong.excoin.modules.platform.dao.PlatformCnyUsdtExchangeDao; import com.xcong.excoin.modules.platform.entity.PlatformCnyUsdtExchangeEntity; +import com.xcong.excoin.modules.symbols.parameter.dto.KlineDetailDto; import com.xcong.excoin.modules.symbols.parameter.vo.HomeSymbolsVo; +import com.xcong.excoin.modules.symbols.parameter.vo.KlineDataVo; import com.xcong.excoin.modules.symbols.service.SymbolsService; import com.xcong.excoin.utils.CoinTypeConvert; import com.xcong.excoin.utils.RedisUtils; @@ -143,4 +147,39 @@ return homeSymbolsVo; } + + @Override + public Result findKlineDetails(KlineDetailDto klineDetailDto) { + String key = "KINE_{}_{}"; + // 币币k线数据 + if (AppContants.HOME_SYMBOLS_COIN == klineDetailDto.getType()) { + key = StrUtil.format(key, klineDetailDto.getSymbol(), klineDetailDto.getPeriod()); + // 合约k线数据 + } else { + 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("获取数据失败"); + } } -- Gitblit v1.9.1