From 96e88a5575a8b2293e3dca6d6d08a84a75da606d Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Wed, 03 Jun 2020 20:18:19 +0800
Subject: [PATCH] modify

---
 src/main/java/com/xcong/excoin/modules/symbols/service/impl/SymbolsServiceImpl.java |   50 +++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 47 insertions(+), 3 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 2298cb9..aec29a5 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;
@@ -52,7 +56,6 @@
         }
         return client;
     }
-
 
     @Override
     public void updateSymbolsKine(String time) {
@@ -100,12 +103,12 @@
         // 币币行情
         if (AppContants.HOME_SYMBOLS_COIN == type) {
             for (SymbolEnum symbolEnum : SymbolEnum.values()) {
-                list.add(getSymbolReturnData(symbolEnum.getName()));
+                list.add(getSymbolReturnData(symbolEnum.getValue()));
             }
             // 合约行情
         } else if (AppContants.HOME_SYMBOLS_CONTRACT == type) {
             for (SymbolEnum symbolEnum : SymbolEnum.values()) {
-                list.add(getSymbolReturnData(symbolEnum.getName()));
+                list.add(getSymbolReturnData(symbolEnum.getValue()));
             }
             // 自选行情
         } else {
@@ -113,6 +116,12 @@
         }
 
         return Result.ok(list);
+    }
+
+    @Override
+    public Result findSymbolData(String symbol) {
+        HomeSymbolsVo homeSymbolsVo = getSymbolReturnData(symbol);
+        return Result.ok(homeSymbolsVo);
     }
 
     public HomeSymbolsVo getSymbolReturnData(String symbol) {
@@ -138,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