From 0ac5d713b3838c5147516a6949d506d002305a98 Mon Sep 17 00:00:00 2001 From: zainali5120 <512061637@qq.com> Date: Sat, 17 Oct 2020 13:37:14 +0800 Subject: [PATCH] 最高最低价修复 --- src/main/java/com/xcong/excoin/rabbit/consumer/ExchangeConsumer.java | 86 +++++++++++++++++++++++------------------- 1 files changed, 47 insertions(+), 39 deletions(-) diff --git a/src/main/java/com/xcong/excoin/rabbit/consumer/ExchangeConsumer.java b/src/main/java/com/xcong/excoin/rabbit/consumer/ExchangeConsumer.java index 090a3ac..8cd15b0 100644 --- a/src/main/java/com/xcong/excoin/rabbit/consumer/ExchangeConsumer.java +++ b/src/main/java/com/xcong/excoin/rabbit/consumer/ExchangeConsumer.java @@ -62,6 +62,9 @@ public void handleTradeExchange(String content) { // log.info("#处理订单---->{}#", content); List<ExchangeTrade> exchangeTrades = JSONObject.parseArray(content, ExchangeTrade.class); + if(CollectionUtils.isEmpty(exchangeTrades)){ + return; + } // 去掉空的 暂时这样 Iterator<ExchangeTrade> iterator = exchangeTrades.iterator(); while (iterator.hasNext()){ @@ -74,46 +77,51 @@ } // 先处理处理用户订单 orderCoinService.handleOrder(exchangeTrades); - // 处理K线 并更新最新价 - handleKlineService.handleExchangeOrderToKline(exchangeTrades); - // 推送最新K线 - String symbol = exchangeTrades.get(0).getSymbol(); - String symbolUsdt = symbol; - if(!symbol.contains("USDT")){ - symbolUsdt = symbol+"/USDT"; - } - String key = "NEW_KINE_{}"; - key = StrUtil.format(key, symbolUsdt); - Object o = redisUtils.get(key); - Map<String, Candlestick> currentKlineMap = (Map<String, Candlestick> )o; - Set<Map.Entry<String, Candlestick>> entries = currentKlineMap.entrySet(); - - - for(Map.Entry<String, Candlestick> map : entries){ - String ch = "market.{}.kline.{}"; - Candlestick value = map.getValue(); - String key1 = map.getKey(); - String chKey = key1; - if(key1.equals("1hour")){ - chKey = "60min"; + try{ + // 处理K线 并更新最新价 + handleKlineService.handleExchangeOrderToKline(exchangeTrades); + // 推送最新K线 + String symbol = exchangeTrades.get(0).getSymbol(); + String symbolUsdt = symbol; + if(!symbol.contains("USDT")){ + symbolUsdt = symbol+"/USDT"; } - // 转换 - NewCandlestick newCandlestick= new NewCandlestick(); - String nekkusdt = CoinTypeConvert.convertReverse(symbolUsdt); - ch = StrUtil.format(ch, nekkusdt,chKey); - newCandlestick.setCh(ch); - CandlestickModel model = new CandlestickModel(); - model.setVol(value.getVolume()); - model.setLow(value.getLow()); - model.setOpen(value.getOpen()); - model.setHigh(value.getHigh()); - model.setCount(value.getCount()); - model.setAmount(value.getAmount()); - model.setId(value.getTimestamp()/1000); - model.setTimestamp(value.getTimestamp()/1000); - model.setClose(value.getClose()); - newCandlestick.setTick(model); - tradePlateSendWebSocket.sendMessageKline(symbolUsdt,key1,JSONObject.toJSONString(newCandlestick),null); + String key = "NEW_KINE_{}"; + key = StrUtil.format(key, symbolUsdt); + Object o = redisUtils.get(key); + Map<String, Candlestick> currentKlineMap = (Map<String, Candlestick> )o; + Set<Map.Entry<String, Candlestick>> entries = currentKlineMap.entrySet(); + + + for(Map.Entry<String, Candlestick> map : entries){ + String ch = "market.{}.kline.{}"; + Candlestick value = map.getValue(); + String key1 = map.getKey(); + String chKey = key1; + if(key1.equals("1hour")){ + chKey = "60min"; + } + // 转换 + NewCandlestick newCandlestick= new NewCandlestick(); + String nekkusdt = CoinTypeConvert.convertReverse(symbolUsdt); + ch = StrUtil.format(ch, nekkusdt,chKey); + newCandlestick.setCh(ch); + CandlestickModel model = new CandlestickModel(); + model.setVol(value.getVolume()); + model.setLow(value.getLow()); + model.setOpen(value.getOpen()); + model.setHigh(value.getHigh()); + model.setCount(value.getCount()); + model.setAmount(value.getAmount()); + model.setId(value.getTimestamp()/1000); + model.setTimestamp(value.getTimestamp()/1000); + model.setClose(value.getClose()); + newCandlestick.setTick(model); + tradePlateSendWebSocket.sendMessageKline(symbolUsdt,key1,JSONObject.toJSONString(newCandlestick),null); + } + + }catch (Exception e){ + e.printStackTrace(); } } -- Gitblit v1.9.1