From abaa17a096732bd5177b3b93ee5ad73c2bff7e09 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Fri, 26 Mar 2021 10:03:33 +0800
Subject: [PATCH] modify

---
 src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java |   15 +++++++++------
 1 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java b/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java
index e88256e..f13702b 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java
@@ -549,7 +549,7 @@
             }
 
             result.put("hold", resultList);
-            result.put("totalProfitOrLoss", totalProfitOrLoss.setScale(4, BigDecimal.ROUND_DOWN).toPlainString());
+            result.put("totalProfitOrLoss", totalProfitOrLoss.setScale(2, BigDecimal.ROUND_DOWN).toPlainString());
             return Result.ok(result);
         }
         return Result.ok("success");
@@ -926,10 +926,12 @@
         }
         
         BigDecimal available = walletContractEntity.getAvailableBalance();
-        if (totalProfitOrLess.compareTo(BigDecimal.ZERO) <= 0) {
-            available = available.add(totalProfitOrLess);
-            if (available.compareTo(BigDecimal.ZERO) <= 0) {
-                available = BigDecimal.ZERO;
+        if (ContractEntrustOrderEntity.POSITION_TYPE_ALL == memberEntity.getContractPositionType()) {
+            if (totalProfitOrLess.compareTo(BigDecimal.ZERO) <= 0) {
+                available = available.add(totalProfitOrLess);
+                if (available.compareTo(BigDecimal.ZERO) <= 0) {
+                    available = BigDecimal.ZERO;
+                }
             }
         }
         
@@ -1137,7 +1139,7 @@
                     holdAmount = BigDecimal.ZERO;
                 }
 
-                BigDecimal thisTimeHold = holdOrderEntity.getBondAmount().multiply(tradeSettingEntity.getDoingRatio());
+                BigDecimal thisTimeHold = holdOrderEntity.getBondAmount().subtract(holdOrderEntity.getOpeningFeeAmount()).multiply(tradeSettingEntity.getDoingRatio());
                 log.info("订单编号:{}, 持仓费:{}", holdOrderEntity.getOrderNo(), thisTimeHold);
 
                 MemberEntity memberEntity = memberDao.selectById(holdOrderEntity.getMemberId());
@@ -1151,6 +1153,7 @@
                 holdOrderEntity.setOperateNo(holdOrderEntity.getOperateNo() + 1);
                 contractHoldOrderDao.updateById(holdOrderEntity);
 
+                memberWalletContractDao.increaseWalletContractBalanceById(null, thisTimeHold.negate(), null, holdOrderEntity.getMemberId());
                 if (ContractEntrustOrderEntity.POSITION_TYPE_ADD == holdOrderEntity.getPositionType()) {
                     // 发送爆仓消息
                     sendOrderBombMsg(holdOrderEntity.getId(), holdOrderEntity.getOpeningType(), newForcePrice, holdOrderEntity.getSymbol(), holdOrderEntity.getOperateNo(), holdOrderEntity.getMemberId());

--
Gitblit v1.9.1