From cf963d7874d8ab0394aa24e7fea5ebe55bd68e73 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Thu, 02 Jul 2020 11:22:55 +0800 Subject: [PATCH] 20200702 代碼提交 --- src/main/java/com/xcong/excoin/modules/coin/service/impl/OrderCoinServiceImpl.java | 15 ++++++++++++--- 1 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/xcong/excoin/modules/coin/service/impl/OrderCoinServiceImpl.java b/src/main/java/com/xcong/excoin/modules/coin/service/impl/OrderCoinServiceImpl.java index 5f330e7..47339e4 100644 --- a/src/main/java/com/xcong/excoin/modules/coin/service/impl/OrderCoinServiceImpl.java +++ b/src/main/java/com/xcong/excoin/modules/coin/service/impl/OrderCoinServiceImpl.java @@ -166,7 +166,7 @@ public Result submitSalesWalletCoinOrder(String symbol, Integer type, Integer tradeType, BigDecimal price, BigDecimal amount) { //获取用户ID Long memberId = LoginUserUtils.getAppLoginUser().getId(); - + BigDecimal nowPriceinBigDecimal = price; //查询当前价 BigDecimal nowPrice = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(symbol + "/USDT"))); @@ -204,7 +204,8 @@ // 创建订单 OrderCoinsEntity order = new OrderCoinsEntity(); - if (OrderCoinsEntity.TRADETYPE_FIXEDPRICE.equals(tradeType)) { + if ((OrderCoinsEntity.TRADETYPE_FIXEDPRICE.equals(tradeType) && type.equals(1) && price.compareTo(nowPrice) < 0) + || (OrderCoinsEntity.TRADETYPE_FIXEDPRICE.equals(tradeType) && type.equals(2) && price.compareTo(nowPrice) > 0)) { // 如果是限价交易直接插入主表数据 order.setMemberId(memberId); order.setOrderNo(generateSimpleSerialno(memberId.toString())); @@ -248,6 +249,14 @@ order.setEntrustCnt(amount); order.setEntrustPrice(price); order.setDealCnt(amount); + if ((OrderCoinsEntity.TRADETYPE_FIXEDPRICE.equals(tradeType) && type.equals(1) && price.compareTo(nowPrice) >= 0) + || (OrderCoinsEntity.TRADETYPE_FIXEDPRICE.equals(tradeType) && type.equals(2) && price.compareTo(nowPrice) <= 0)) { + // 手续费用(手续费=建仓价X数量X手续费率) + closingPrice = nowPrice.multiply(amount).multiply(tradeSetting.getCoinFeeRatio()); + //总费用 = 成交价*数量+手续费 + totalPayPrice = nowPrice.multiply(amount).add(closingPrice); + price = nowPrice; + } order.setDealPrice(price); order.setDealAmount(totalPayPrice); order.setOrderStatus(OrderCoinsEntity.ORDERSTATUS_DONE); @@ -263,7 +272,7 @@ detail.setTradeType(tradeType); detail.setSymbol(symbol); detail.setSymbolCnt(amount); - detail.setEntrustPrice(price); + detail.setEntrustPrice(nowPriceinBigDecimal); detail.setDealPrice(price); detail.setDealAmount(totalPayPrice); detail.setFeeAmount(closingPrice); -- Gitblit v1.9.1