From 742e80a99ae9e5116c1b1e106bdffd6fde2c22a5 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Thu, 08 Apr 2021 18:15:57 +0800
Subject: [PATCH] modify force price

---
 src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java       |    2 +-
 src/test/java/com/xcong/excoin/WholeTest.java                                                  |    2 +-
 src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java |    2 +-
 src/main/java/com/xcong/excoin/utils/CalculateUtil.java                                        |   11 ++++++++++-
 4 files changed, 13 insertions(+), 4 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 e649f61..70940c6 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
@@ -531,7 +531,7 @@
                 holdOrderListVo.setReturnRate(returnRate);
                 holdOrderListVo.setProfitOrLoss(rewardRatio);
                 if (ContractEntrustOrderEntity.POSITION_TYPE_ALL == memberEntity.getContractPositionType()) {
-                    BigDecimal forcePrice = CalculateUtil.calWholePriceTwo(memberEntity, holdOrderEntity);
+                    BigDecimal forcePrice = CalculateUtil.calWholePriceTwo(memberEntity, holdOrderEntity, 1);
 //                    contractHoldOrderDao.updateForcePriceBySymbolAndMemberId(forcePrice, memberEntity.getId(), holdOrderEntity.getSymbol());
                     holdOrderListVo.setForceClosingPrice(forcePrice);
                 }
diff --git a/src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java b/src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java
index 6116938..9ff4d66 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java
@@ -536,7 +536,7 @@
                     continue;
                 }
 
-                holdOrderEntity.setStopLossPrice(CalculateUtil.calWholePriceTwo(memberEntity, holdOrderEntity));
+                holdOrderEntity.setStopLossPrice(CalculateUtil.calWholePriceTwo(memberEntity, holdOrderEntity, 2));
                 contractHoldOrderDao.deleteById(holdOrderDataModel.getId());
 
                 ContractOrderEntity contractOrderEntity = ContractHoldOrderEntityMapper.INSTANCE.holdOrderToOrder(holdOrderEntity);
diff --git a/src/main/java/com/xcong/excoin/utils/CalculateUtil.java b/src/main/java/com/xcong/excoin/utils/CalculateUtil.java
index 76e886a..baf5769 100644
--- a/src/main/java/com/xcong/excoin/utils/CalculateUtil.java
+++ b/src/main/java/com/xcong/excoin/utils/CalculateUtil.java
@@ -211,7 +211,7 @@
      * @param contractHoldOrderEntity
      * @return
      */
-    public static BigDecimal calWholePriceTwo(MemberEntity memberEntity, ContractHoldOrderEntity contractHoldOrderEntity) {
+    public static BigDecimal calWholePriceTwo(MemberEntity memberEntity, ContractHoldOrderEntity contractHoldOrderEntity, int type) {
         ContractHoldOrderDao holdOrderDao = SpringContextHolder.getBean(ContractHoldOrderDao.class);
         MemberWalletContractDao walletContractDao = SpringContextHolder.getBean(MemberWalletContractDao.class);
         RedisUtils redisUtils = SpringContextHolder.getBean(RedisUtils.class);
@@ -255,6 +255,15 @@
             BigDecimal divideParent = contractHoldOrderEntity.getSymbolSku().multiply(new BigDecimal(contractHoldOrderEntity.getSymbolCntSale()));
 
             forcePrice = divideChild.divide(divideParent, 8, BigDecimal.ROUND_DOWN);
+            if (type == 2) {
+                log.info("=======全仓爆仓=======");
+                log.info("holdBond : {}", holdBond);
+                log.info("cost : {}", cost);
+                log.info("ratio : {}", ratio);
+                log.info("orderProfitOrLoss : {}", orderProfitOrLoss);
+                log.info("total : {}", walletContract.getTotalBalance());
+                log.info("qy : {}", qy);
+            }
         }
         return forcePrice;
     }
diff --git a/src/test/java/com/xcong/excoin/WholeTest.java b/src/test/java/com/xcong/excoin/WholeTest.java
index bf5a1d5..bf25ed8 100644
--- a/src/test/java/com/xcong/excoin/WholeTest.java
+++ b/src/test/java/com/xcong/excoin/WholeTest.java
@@ -203,7 +203,7 @@
         MemberEntity memberEntity = memberDao.selectById(15L);
         ContractHoldOrderEntity holdOrder = contractHoldOrderDao.selectById(724L);
 
-        System.out.println(CalculateUtil.calWholePriceTwo(memberEntity, holdOrder));
+        System.out.println(CalculateUtil.calWholePriceTwo(memberEntity, holdOrder, 2));
     }
 
     @Test

--
Gitblit v1.9.1