From 7bf61a945ae760e8d875ac620e14a4329009fef5 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Fri, 29 Jan 2021 16:04:32 +0800
Subject: [PATCH] Merge branch 'whole_new' of https://gitee.com/chonggaoxiao/new_excoin.git into whole_new

---
 src/test/java/com/xcong/excoin/WholeTest.java                                                  |   12 +++++++++---
 src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java |    3 +++
 src/main/java/com/xcong/excoin/rabbit/pricequeue/OrderOperatePriceService.java                 |    8 ++++++--
 3 files changed, 18 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 fcd2cd8..00e5277 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
@@ -250,6 +250,9 @@
         if (i > 0) {
             memberWalletContractDao.increaseWalletContractBalanceById(prePaymentAmount.negate(), openFeePrice.negate(), null, walletContract.getId());
 
+            // 全仓爆仓
+            ThreadPoolUtils.sendWholePrice(memberEntity.getId());
+
             // 发送预估强平价
             ThreadPoolUtils.sendWholeForceClosingPrice(submitOrderDto.getSymbol(), memberEntity);
             // 计算佣金
diff --git a/src/main/java/com/xcong/excoin/rabbit/pricequeue/OrderOperatePriceService.java b/src/main/java/com/xcong/excoin/rabbit/pricequeue/OrderOperatePriceService.java
index 357df80..3ae2459 100644
--- a/src/main/java/com/xcong/excoin/rabbit/pricequeue/OrderOperatePriceService.java
+++ b/src/main/java/com/xcong/excoin/rabbit/pricequeue/OrderOperatePriceService.java
@@ -151,6 +151,7 @@
      * @param memberId
      */
     public static void wholePriceDataOperation(Long memberId) {
+        Map<String, WholePriceDataModel> dataModelMap = WholeDataQueue.MAP;
         RedisUtils redisUtils = SpringContextHolder.getBean(RedisUtils.class);
 
         ContractHoldOrderDao contractHoldOrderDao = SpringContextHolder.getBean(ContractHoldOrderDao.class);
@@ -160,6 +161,11 @@
 
         List<ContractHoldOrderEntity> holdOrders = contractHoldOrderDao.selectHoldOrderListByMemberId(memberId);
         if (CollUtil.isEmpty(holdOrders)) {
+            if (dataModelMap.get(memberId.toString()) != null) {
+                dataModelMap.remove(memberId.toString());
+
+                redisUtils.set(AppContants.WHOLE_BOMB_MAP, JSONObject.toJSONString(dataModelMap));
+            }
             return;
         }
 
@@ -187,10 +193,8 @@
         wholePriceData.setBalance(wallet.getTotalBalance().subtract(totalAmount));
         wholePriceData.setMemberId(memberId);
 
-        Map<String, WholePriceDataModel> dataModelMap = WholeDataQueue.MAP;
         dataModelMap.put(wholePriceData.getMemberId().toString(), wholePriceData);
 
-        redisUtils.set(AppContants.WHOLE_BOMB_MAP, JSONObject.toJSONString(dataModelMap));
     }
 
 }
diff --git a/src/test/java/com/xcong/excoin/WholeTest.java b/src/test/java/com/xcong/excoin/WholeTest.java
index 8e7dbf8..2c7a5bb 100644
--- a/src/test/java/com/xcong/excoin/WholeTest.java
+++ b/src/test/java/com/xcong/excoin/WholeTest.java
@@ -177,10 +177,16 @@
 
     @Test
     public void wholeForceTest() {
-        // 3153.33181635
-//        System.out.println(new BigDecimal("9921.69458495").subtract(new BigDecimal("6768.36276860")));
+        // 8301.38608660
+//        System.out.println(new BigDecimal("9925.29996175").subtract(new BigDecimal("1623.91387515")));
 
-        // 33684.14725218
+        BigDecimal aa = new BigDecimal("1623.91387515").subtract(new BigDecimal("0.1").multiply(new BigDecimal(50)).multiply(new BigDecimal("32478.27750300")));
+        BigDecimal bb = new BigDecimal(50).multiply(new BigDecimal("0.1"));
+        BigDecimal divide = aa.divide(bb, 8, BigDecimal.ROUND_DOWN);
+        System.out.println(divide);
+        // -(账户权益-委托保证金-全仓维持保证金-全仓未实现盈利-数量*面值*开仓价格)/(数量*面值)
+        // 30818.00028568
+        // -32153.49472797
     }
 
 }

--
Gitblit v1.9.1