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