From 2abd0e479bd68cc377d77ac8178cc6b21783fcf1 Mon Sep 17 00:00:00 2001 From: heng.zhang1 <512061637@qq.com> Date: Wed, 16 Sep 2020 16:54:24 +0800 Subject: [PATCH] 盘口优化 --- src/main/java/com/xcong/excoin/trade/CoinTrader.java | 20 +++++++++----------- 1 files changed, 9 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/xcong/excoin/trade/CoinTrader.java b/src/main/java/com/xcong/excoin/trade/CoinTrader.java index fc4a8fc..fd62c5f 100644 --- a/src/main/java/com/xcong/excoin/trade/CoinTrader.java +++ b/src/main/java/com/xcong/excoin/trade/CoinTrader.java @@ -527,7 +527,7 @@ * @param buyTradePlate sellTradePlate */ public void sendTradePlateMessage(TradePlate buyTradePlate, TradePlate sellTradePlate) { - //防止并发引起数组越界,造成盘口倒挂 TODO + //防止并发引起数组越界,造成盘口倒挂 List<List<BigDecimal>> plate; List<BigDecimal> plateItem; TradePlateModel tradePlateModel = new TradePlateModel(); @@ -535,10 +535,10 @@ if (buyTradePlate != null && buyTradePlate.getItems() != null) { plate = new ArrayList<>(); LinkedList<TradePlateItem> items = buyTradePlate.getItems(); - for (TradePlateItem item : items) { + for (int i = items.size() - 1; i >= 0; i--) { plateItem = new ArrayList<>(2); - BigDecimal price = item.getPrice(); - BigDecimal amount = item.getAmount(); + BigDecimal price = items.get(i).getPrice(); + BigDecimal amount = items.get(i).getAmount(); plateItem.add(price); plateItem.add(amount); plate.add(plateItem); @@ -549,10 +549,10 @@ if (sellTradePlate != null && sellTradePlate.getItems() != null) { plate = new ArrayList<>(); LinkedList<TradePlateItem> items = sellTradePlate.getItems(); - for (TradePlateItem item : items) { + for (int i = items.size() - 1; i >= 0; i--) { plateItem = new ArrayList<>(2); - BigDecimal price = item.getPrice(); - BigDecimal amount = item.getAmount(); + BigDecimal price = items.get(i).getPrice(); + BigDecimal amount = items.get(i).getAmount(); plateItem.add(price); plateItem.add(amount); plate.add(plateItem); @@ -560,8 +560,7 @@ tradePlateModel.setSell(plate); } - // 盘口发生变化通知TODO - + // 盘口发生变化通知 exchangeProducer.sendPlateMsg(JSON.toJSONString(tradePlateModel)); } @@ -571,7 +570,7 @@ * @param */ public String sendTradePlateMessage() { - //防止并发引起数组越界,造成盘口倒挂 TODO + //防止并发引起数组越界,造成盘口倒挂 List<List<BigDecimal>> plate; List<BigDecimal> plateItem; TradePlateModel tradePlateModel = new TradePlateModel(); @@ -606,7 +605,6 @@ // 盘口发生变化通知TODO return JSON.toJSONString(tradePlateModel); - //exchangeProducer.sendPlateMsg(JSON.toJSONString(tradePlateModel)); } /** -- Gitblit v1.9.1