From 3d9e7358fb532013555b8574321b3718e23615cd Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Tue, 07 Jul 2020 18:16:27 +0800
Subject: [PATCH] modify
---
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