From cdb183fd8a71dd4de62661432df46b03c98e7921 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Wed, 03 Mar 2021 17:03:16 +0800
Subject: [PATCH] 20210303   利润

---
 src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java |   17 ++++++++++++-----
 1 files changed, 12 insertions(+), 5 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 2057b81..5a3f774 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
@@ -320,7 +320,7 @@
         FollowTraderInfoEntity tradeInfo = null;
         if (MemberEntity.IS_TRADER_Y.equals(memberEntity.getIsTrader())) {
             tradeInfo = followTraderInfoDao.selectTraderInfoByMemberId(memberEntity.getId());
-            if (tradeInfo.getIsOpen().equals(FollowTraderInfoEntity.ISOPEN_Y)) {
+            if (FollowTraderInfoEntity.ISOPEN_Y.equals(tradeInfo.getIsOpen())) {
                 isOpenFollow = true;
             }
         }
@@ -506,7 +506,6 @@
                     canReduceMaxBond = BigDecimal.ZERO;
                 }
 
-                holdOrderListVo.setBondAmount(walletContractEntity.getTotalBalance());
                 holdOrderListVo.setCanReduceMaxBond(canReduceMaxBond);
                 holdOrderListVo.setCanAddMaxBond(walletContractEntity.getAvailableBalance());
                 holdOrderListVo.setReturnRate(returnRate);
@@ -526,7 +525,7 @@
                 BigDecimal totalEntrustAmount = BigDecimal.ZERO;
                 if (CollUtil.isNotEmpty(entrustOrder)) {
                     for (ContractEntrustOrderEntity contractEntrustOrderEntity : entrustOrder) {
-                        totalEntrustAmount.add(contractEntrustOrderEntity.getEntrustAmount());
+                        totalEntrustAmount = totalEntrustAmount.add(contractEntrustOrderEntity.getEntrustAmount());
                     }
                 }
                 BigDecimal riskRatio = totalHoldBond.divide(walletContractEntity.getTotalBalance().add(totalProfitOrLoss).subtract(totalEntrustAmount), 4, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(100));
@@ -825,6 +824,8 @@
 
         // 占用保证金 -- 即持仓单中的保证金之和
         BigDecimal beUsedBondAmount = BigDecimal.ZERO;
+        BigDecimal moreBondAmount = BigDecimal.ZERO;
+        BigDecimal lessBondAmount = BigDecimal.ZERO;
         // 总盈利
         BigDecimal totalProfitOrLess = BigDecimal.ZERO;
         if (CollUtil.isNotEmpty(holdOrderEntities)) {
@@ -838,9 +839,11 @@
                 BigDecimal profitOrLess = BigDecimal.ZERO;
                 // 开多
                 if (ContractHoldOrderEntity.OPENING_TYPE_MORE == holdOrderEntity.getOpeningType()) {
+                    moreBondAmount = moreBondAmount.add(holdOrderEntity.getBondAmount());
                     profitOrLess = newPrice.subtract(holdOrderEntity.getOpeningPrice()).multiply(new BigDecimal(holdOrderEntity.getSymbolCntSale())).multiply(lotNumber);
                     // 开空
                 } else {
+                    lessBondAmount = lessBondAmount.add(holdOrderEntity.getBondAmount());
                     profitOrLess = holdOrderEntity.getOpeningPrice().subtract(newPrice).multiply(new BigDecimal(holdOrderEntity.getSymbolCntSale())).multiply(lotNumber);
                 }
 
@@ -887,6 +890,8 @@
         contractMoneyInfoVo.setUpOrDown(upOrDown);
         contractMoneyInfoVo.setSymbolSku(cacheSettingUtils.getSymbolSku(symbol));
         contractMoneyInfoVo.setLeverRate(rateEntity.getLevelRateUp());
+        contractMoneyInfoVo.setMoreBondAmount(moreBondAmount);
+        contractMoneyInfoVo.setLessBondAmount(lessBondAmount);
         return Result.ok(contractMoneyInfoVo);
     }
 
@@ -1070,8 +1075,10 @@
                 holdOrderEntity.setOperateNo(holdOrderEntity.getOperateNo() + 1);
                 contractHoldOrderDao.updateById(holdOrderEntity);
 
-                // 发送爆仓消息
-                sendOrderBombMsg(holdOrderEntity.getId(), holdOrderEntity.getOpeningType(), newForcePrice, holdOrderEntity.getSymbol(), holdOrderEntity.getOperateNo(), 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