From 6cdfe1d568d06bc63bb513ce0ef1df6aac3c7c3d Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Sat, 20 Feb 2021 15:32:12 +0800
Subject: [PATCH] fix
---
src/main/java/com/xcong/excoin/modules/coin/service/impl/OrderCoinServiceImpl.java | 29 ++++++++++++++++++-----------
1 files changed, 18 insertions(+), 11 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 b396d14..c96299f 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
@@ -180,13 +180,14 @@
BigDecimal closingPrice = price.multiply(amount).multiply(tradeSetting.getCoinFeeRatio());
//总费用 = 成交价*数量+手续费
BigDecimal totalPayPrice = price.multiply(amount).add(closingPrice);
+ BigDecimal totalPayPricCoin = nowPrice.multiply(amount).add(closingPrice);
String walletCode = MemberWalletCoinEnum.WALLETCOINCODE.getValue();
MemberWalletCoinEntity walletCoinUsdt = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, walletCode);
if (OrderCoinsEntity.ORDERTYPE_BUY.equals(type)) {
//买入,所需总费用跟用户USDT金额进行比较
BigDecimal availableBalance = walletCoinUsdt.getAvailableBalance();
- if (totalPayPrice.compareTo(availableBalance) > 0) {
+ if (totalPayPrice.compareTo(availableBalance) > 0 || totalPayPricCoin.compareTo(availableBalance) > 0) {
return Result.fail(MessageSourceUtils.getString("order_service_0010"));
}
} else {
@@ -252,7 +253,7 @@
totalPayPrice = nowPrice.multiply(amount).add(closingPrice);
price = nowPrice;
}
- order.setDealPrice(price);
+ order.setDealPrice(nowPrice);
order.setDealAmount(totalPayPrice);
order.setOrderStatus(OrderCoinsEntity.ORDERSTATUS_DONE);
order.setTradeType(tradeType);
@@ -268,7 +269,7 @@
detail.setSymbol(symbol);
detail.setSymbolCnt(amount);
detail.setEntrustPrice(nowPriceinBigDecimal);
- detail.setDealPrice(price);
+ detail.setDealPrice(nowPrice);
detail.setDealAmount(totalPayPrice);
detail.setFeeAmount(closingPrice);
detail.setOrderStatus(OrderCoinsDealEntity.ORDERSTATUS_DONE);
@@ -322,15 +323,21 @@
List<OrderCoinsEntity> findCoinOrderListByMemberIdAndSysmbol = orderCoinsDao.findCoinOrderListByMemberIdAndSysmbol(memberId, symbol, status);
if (CollUtil.isNotEmpty(findCoinOrderListByMemberIdAndSysmbol)) {
for (OrderCoinsEntity orderCoinsEntity : findCoinOrderListByMemberIdAndSysmbol) {
- orderCoinsEntity.setFeeAmount(orderCoinsEntity.getFeeAmount().setScale(4, BigDecimal.ROUND_DOWN));
- orderCoinsEntity.setMarkPrice(orderCoinsEntity.getMarkPrice().setScale(4, BigDecimal.ROUND_DOWN));
- orderCoinsEntity.setEntrustCnt(orderCoinsEntity.getEntrustCnt().setScale(4, BigDecimal.ROUND_DOWN));
- orderCoinsEntity.setEntrustPrice(orderCoinsEntity.getEntrustPrice().setScale(4, BigDecimal.ROUND_DOWN));
- orderCoinsEntity.setDealCnt(orderCoinsEntity.getDealCnt().setScale(4, BigDecimal.ROUND_DOWN));
- orderCoinsEntity.setDealPrice(orderCoinsEntity.getDealPrice().setScale(4, BigDecimal.ROUND_DOWN));
- orderCoinsEntity.setDealAmount(orderCoinsEntity.getDealAmount().setScale(4, BigDecimal.ROUND_DOWN));
-
OrderWalletCoinVo entityToVo = OrderWalletCoinMapper.INSTANCE.entityToVo(orderCoinsEntity);
+ entityToVo.setFeeAmount(entityToVo.getFeeAmount()== null
+ ? BigDecimal.ZERO : entityToVo.getFeeAmount().setScale(4, BigDecimal.ROUND_DOWN));
+ entityToVo.setMarkPrice(entityToVo.getMarkPrice()== null
+ ? BigDecimal.ZERO : entityToVo.getMarkPrice().setScale(4, BigDecimal.ROUND_DOWN));
+ entityToVo.setEntrustCnt(entityToVo.getEntrustCnt()== null
+ ? BigDecimal.ZERO : entityToVo.getEntrustCnt().setScale(4, BigDecimal.ROUND_DOWN));
+ entityToVo.setEntrustPrice(entityToVo.getEntrustPrice()== null
+ ? BigDecimal.ZERO : entityToVo.getEntrustPrice().setScale(4, BigDecimal.ROUND_DOWN));
+ entityToVo.setDealCnt(entityToVo.getDealCnt()== null
+ ? BigDecimal.ZERO : entityToVo.getDealCnt().setScale(4, BigDecimal.ROUND_DOWN));
+ entityToVo.setDealPrice(entityToVo.getDealPrice()== null
+ ? BigDecimal.ZERO : entityToVo.getDealPrice().setScale(4, BigDecimal.ROUND_DOWN));
+ entityToVo.setDealAmount(entityToVo.getDealAmount()== null
+ ? BigDecimal.ZERO : entityToVo.getDealAmount().setScale(4, BigDecimal.ROUND_DOWN));
arrayList.add(entityToVo);
}
}
--
Gitblit v1.9.1