From 805da278f9719a355b3d730ef894708086d27270 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Fri, 11 Sep 2020 10:08:43 +0800
Subject: [PATCH] Merge branch 'master' into whole

---
 src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java |   16 ++++++++++------
 1 files changed, 10 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 8b803fe..dba29ae 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
@@ -787,15 +787,19 @@
 
         MemberLevelRateEntity rateEntity = memberLevelRateDao.selectLeverRateByMemberIdAndSymbol(memberEntity.getId(), symbol);
 
+        ContractMoneyInfoVo contractMoneyInfoVo = new ContractMoneyInfoVo();
         // 权益
         BigDecimal equity = walletContractEntity.getTotalBalance().add(totalProfitOrLess);
-        BigDecimal available = walletContractEntity.getAvailableBalance().add(totalProfitOrLess);
-        if (available.compareTo(BigDecimal.ZERO) < 0) {
-            available = BigDecimal.ZERO;
+        // 全仓模式,可用余额需随着盈亏变动
+        if (memberEntity.getContractPositionType() == ContractEntrustOrderEntity.POSITION_TYPE_ALL) {
+            BigDecimal available = walletContractEntity.getAvailableBalance().add(totalProfitOrLess);
+            if (available.compareTo(BigDecimal.ZERO) < 0) {
+                available = BigDecimal.ZERO;
+            }
+            contractMoneyInfoVo.setAvailableBalance(available);
         }
 
-        ContractMoneyInfoVo contractMoneyInfoVo = new ContractMoneyInfoVo();
-        contractMoneyInfoVo.setAvailableBalance(available);
+
         contractMoneyInfoVo.setBeUsedBondAmount(beUsedBondAmount);
         contractMoneyInfoVo.setFrozenBondAmount(frozenBondAmount);
         contractMoneyInfoVo.setEquity(equity);
@@ -895,7 +899,7 @@
                 } else {
                     BigDecimal available = walletContractEntity.getAvailableBalance();
                     BigDecimal lessAmount = thisTimeHold.subtract(available);
-                    MemberEntity memberEntity = memberDao.selectById(holdOrderEntity.getId());
+                    MemberEntity memberEntity = memberDao.selectById(holdOrderEntity.getMemberId());
                     memberWalletContractDao.increaseWalletContractBalanceById(available.negate(), available.negate(), null, walletContractEntity.getId());
 
                     BigDecimal newBondAmount = holdOrderEntity.getBondAmount().subtract(lessAmount);

--
Gitblit v1.9.1