From 3ffaa6bf323862a3770897d4e934baf98d324c47 Mon Sep 17 00:00:00 2001 From: zainali5120 <512061637@qq.com> Date: Sun, 20 Sep 2020 23:39:55 +0800 Subject: [PATCH] 撮合交易代码提交 --- src/main/java/com/xcong/excoin/trade/CoinTrader.java | 13 +++++++++++-- 1 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/xcong/excoin/trade/CoinTrader.java b/src/main/java/com/xcong/excoin/trade/CoinTrader.java index e4d34f0..6c4f979 100644 --- a/src/main/java/com/xcong/excoin/trade/CoinTrader.java +++ b/src/main/java/com/xcong/excoin/trade/CoinTrader.java @@ -2,6 +2,7 @@ import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.xcong.excoin.modules.coin.entity.OrderCoinsEntity; import com.xcong.excoin.modules.coin.service.OrderCoinService; import com.xcong.excoin.rabbit.producer.ExchangeProducer; @@ -139,9 +140,16 @@ return; } // 如果 - if (exchangeOrder.getEntrustAmount().compareTo(BigDecimal.ZERO) <= 0 || exchangeOrder.getEntrustAmount().subtract(exchangeOrder.getDealAmount()).compareTo(BigDecimal.ZERO) <= 0) { - return; + if(OrderCoinsEntity.ORDERTYPE_BUY==exchangeOrder.getOrderType()){ + if (exchangeOrder.getEntrustAmount().compareTo(BigDecimal.ZERO) <= 0 || exchangeOrder.getEntrustAmount().subtract(exchangeOrder.getDealAmount()).compareTo(BigDecimal.ZERO) <= 0) { + return; + } + }else{ + if (exchangeOrder.getEntrustCnt().compareTo(BigDecimal.ZERO) <= 0 || exchangeOrder.getEntrustCnt().subtract(exchangeOrder.getDealCnt()).compareTo(BigDecimal.ZERO) <= 0) { + return; + } } + TreeMap<BigDecimal, MergeOrder> limitPriceOrderList; LinkedList<OrderCoinsEntity> marketPriceOrderList; @@ -402,6 +410,7 @@ availAmount = calculateTradedAmount(matchOrder, dealPrice); //计算成交量 取少的 BigDecimal tradedAmount = (availAmount.compareTo(needAmount) >= 0 ? needAmount : availAmount); + System.out.println("成交量:"+tradedAmount); //logger.info("dealPrice={},amount={}", dealPrice, tradedAmount); //如果成交额为0说明剩余额度无法成交,退出 if (tradedAmount.compareTo(BigDecimal.ZERO) == 0) { -- Gitblit v1.9.1