From 183624a0ff68b5a521f309fe0a0994fda2eae6fb Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Fri, 04 Sep 2020 10:48:24 +0800
Subject: [PATCH] modify

---
 src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java |   20 +++++++-------------
 1 files changed, 7 insertions(+), 13 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 0287728..40ba496 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
@@ -131,7 +131,7 @@
         log.info("全仓逻辑");
         // 获取最新价
         BigDecimal newPrice = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(submitOrderDto.getSymbol())));
-        MemberWalletContractEntity walletContract = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberEntity.getId(), CoinTypeConvert.convertContractTypeToCoin(submitOrderDto.getSymbol()));
+        MemberWalletContractEntity walletContract = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberEntity.getId(), CoinTypeEnum.USDT.name());
         PlatformTradeSettingEntity tradeSettingEntity = cacheSettingUtils.getTradeSetting();
 
         MemberSettingEntity memberSetting = memberSettingDao.selectMemberSettingByMemberId(memberEntity.getId());
@@ -482,6 +482,10 @@
                 holdOrderListVo.setCanAddMaxBond(walletContractEntity.getAvailableBalance());
                 holdOrderListVo.setReturnRate(returnRate);
                 holdOrderListVo.setProfitOrLoss(rewardRatio);
+                log.info("开始时间--{}", System.currentTimeMillis());
+                BigDecimal forcePrice = CalculateUtil.getForceSetPriceForWhole(symbol, memberEntity);
+                log.info("结束时间--{}", System.currentTimeMillis());
+                holdOrderListVo.setForceClosingPrice(forcePrice);
                 resultList.add(holdOrderListVo);
                 totalProfitOrLoss = totalProfitOrLoss.add(rewardRatio);
             }
@@ -731,17 +735,15 @@
 
         List<ContractEntrustOrderEntity> entrustOrderEntities;
         List<ContractHoldOrderEntity> holdOrderEntities;
-        MemberWalletContractEntity walletContractEntity;
+        MemberWalletContractEntity walletContractEntity = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberEntity.getId(), CoinTypeEnum.USDT.name());
         if (memberEntity.getContractPositionType().equals(ContractEntrustOrderEntity.POSITION_TYPE_ADD)) {
             // 当前合约委托单
             entrustOrderEntities = contractEntrustOrderDao.selectEntrustOrderListByMemberId(memberEntity.getId());
             // 当前持仓列表
             holdOrderEntities = contractHoldOrderDao.selectHoldOrderListByMemberId(memberEntity.getId());
-            walletContractEntity = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberEntity.getId(), CoinTypeEnum.USDT.name());
         } else {
             entrustOrderEntities = contractEntrustOrderDao.selectEntrustOrderListByMemberIdAndSymbol(memberEntity.getId(), symbol);
             holdOrderEntities = contractHoldOrderDao.selectHoldOrderListForWholeByMemberIdAndSymbol(memberEntity.getId(), symbol);
-            walletContractEntity = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberEntity.getId(), CoinTypeConvert.convertContractTypeToCoin(symbol));
         }
 
         // 冻结保证金 -- 即委托单中的保证金之和
@@ -790,19 +792,11 @@
         ContractMoneyInfoVo contractMoneyInfoVo = new ContractMoneyInfoVo();
         // 权益
         BigDecimal equity = walletContractEntity.getTotalBalance().add(totalProfitOrLess);
-        // 全仓模式,可用余额需随着盈亏变动
-        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.setBeUsedBondAmount(beUsedBondAmount);
         contractMoneyInfoVo.setFrozenBondAmount(frozenBondAmount);
         contractMoneyInfoVo.setEquity(equity);
+        contractMoneyInfoVo.setAvailableBalance(walletContractEntity.getAvailableBalance());
         contractMoneyInfoVo.setFeeRatio(tradeSetting.getFeeRatio());
         contractMoneyInfoVo.setLeverAgeRatio(tradeSetting.getLeverageRatio());
         contractMoneyInfoVo.setNewPrice(newPriceSymbol);

--
Gitblit v1.9.1