From 28eb26d68f7a2a4e6b316c3ea9f511aa143db66e Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Mon, 30 Sep 2024 16:57:18 +0800
Subject: [PATCH] 55测试环境
---
src/main/java/com/xcong/excoin/modules/exchange/service/impl/HandleKlineServiceImpl.java | 48 +++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 45 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/modules/exchange/service/impl/HandleKlineServiceImpl.java b/src/main/java/com/xcong/excoin/modules/exchange/service/impl/HandleKlineServiceImpl.java
index 7add4f8..ec776b7 100644
--- a/src/main/java/com/xcong/excoin/modules/exchange/service/impl/HandleKlineServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/exchange/service/impl/HandleKlineServiceImpl.java
@@ -39,18 +39,60 @@
CoinProcessor processor = processorFactory.getProcessor(symbol);
Map<String, Candlestick> currentKlineMap = processor.getCurrentKlineMap();
Collection<Candlestick> values = currentKlineMap.values();
- BigDecimal newPrice = trades.get(trades.size()-1).getPrice();
+ BigDecimal newPrice =null;
for (Candlestick candlestick : values) {
for (ExchangeTrade exchangeTrade : trades) {
+ if(exchangeTrade==null){
+ continue;
+ }
processor.processTrade(candlestick, exchangeTrade);
+ newPrice=exchangeTrade.getPrice();
}
}
-
+ // 更新今日高地价
+ BigDecimal min=BigDecimal.ZERO;
+ BigDecimal max=BigDecimal.ZERO;
+ BigDecimal vol = BigDecimal.ZERO;
+ for (ExchangeTrade exchangeTrade : trades) {
+ if(exchangeTrade==null){
+ continue;
+ }
+ if(min.compareTo(BigDecimal.ZERO)==0){
+ min = exchangeTrade.getPrice();
+ }else{
+ min=exchangeTrade.getPrice().min(min);
+ }
+ max=exchangeTrade.getPrice().max(max);
+ vol=vol.add(exchangeTrade.getAmount());
+ }
+ Object o = redisUtils.get(symbolUsdt);
+ if(o!=null){
+ Candlestick today = (Candlestick)o;
+ today.setVolume(today.getVolume()==null?BigDecimal.ZERO:today.getVolume());
+ today.setHigh(today.getHigh().max(max));
+ today.setLow(today.getLow().min(min));
+ today.setVolume(today.getVolume().add(vol));
+ redisUtils.set(symbolUsdt,today);
+ }else{
+ Candlestick today = new Candlestick();
+ today.setClose(newPrice);
+ today.setLow(newPrice);
+ today.setHigh(newPrice);
+ today.setVolume(BigDecimal.ZERO);
+ today.setHigh(today.getHigh().max(max));
+ today.setLow(today.getLow().min(min));
+ today.setVolume(vol);
+ redisUtils.set(symbolUsdt,today);
+ }
// 存入redis,websocket去取
String key = "NEW_KINE_{}";
key = StrUtil.format(key, symbolUsdt);
redisUtils.set(key,currentKlineMap);
// 更新最新价
- redisUtils.set(CoinTypeConvert.convertToKey(symbolUsdt), newPrice);
+ if(newPrice!=null){
+ redisUtils.set(CoinTypeConvert.convertToKey(symbolUsdt), newPrice);
+ }
+
}
+
}
--
Gitblit v1.9.1