From e13adcf610ef1bc83483a4dca4c6aa6408198295 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Mon, 06 Jul 2020 19:03:28 +0800
Subject: [PATCH] modify
---
src/main/java/com/xcong/excoin/modules/symbols/service/impl/SymbolsServiceImpl.java | 47 +++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 43 insertions(+), 4 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..95d294a 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;
@@ -99,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 {
@@ -135,12 +139,47 @@
homeSymbolsVo.setSymbol(symbol);
homeSymbolsVo.setCurrentPrice(newestPrice);
homeSymbolsVo.setUpOrDown(upOrDown);
- homeSymbolsVo.setVolume(symbolObject.getVolume());
+ homeSymbolsVo.setVolume(symbolObject.getAmount());
if (cnyUsdtExchange != null) {
- BigDecimal cnyPrice = openPrice.multiply(cnyUsdtExchange.getValue()).setScale(2, BigDecimal.ROUND_HALF_UP);
+ BigDecimal cnyPrice = newestPrice.multiply(cnyUsdtExchange.getValue()).setScale(2, BigDecimal.ROUND_HALF_UP);
homeSymbolsVo.setCnyPrice(cnyPrice);
}
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