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

---
 src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java       |    3 +++
 src/test/java/com/xcong/excoin/WholeTest.java                                                  |    6 +++---
 src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java |   12 ++++++------
 src/main/java/com/xcong/excoin/rabbit/pricequeue/OrderOperatePriceService.java                 |    5 ++++-
 4 files changed, 16 insertions(+), 10 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 11d154e..72c565f 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
@@ -197,9 +197,6 @@
             if (i > 0) {
                 memberWalletContractDao.increaseWalletContractBalanceById(prePaymentAmount.negate(), openFeePrice.negate(), null, walletContract.getId());
 
-                // 全仓爆仓
-                ThreadPoolUtils.sendWholePrice(memberEntity.getId());
-
                 // 发送预估强平价
                 ThreadPoolUtils.sendWholeForceClosingPrice(submitOrderDto.getSymbol(), memberEntity);
                 // 计算佣金
@@ -211,6 +208,9 @@
                 } else {
                     LogRecordUtils.insertMemberAccountFlow(memberEntity.getId(), prePaymentAmount, walletContract.getAvailableBalance().subtract(prePaymentAmount), submitOrderDto.getSymbol(), "买跌持仓", "买跌:" + submitOrderDto.getSymbol());
                 }
+
+                // 全仓爆仓
+                ThreadPoolUtils.sendWholePrice(memberEntity.getId());
 
                 // 提交成功
                 return Result.ok(MessageSourceUtils.getString("member_service_0024"));
@@ -250,9 +250,6 @@
         if (i > 0) {
             memberWalletContractDao.increaseWalletContractBalanceById(prePaymentAmount.negate(), openFeePrice.negate(), null, walletContract.getId());
 
-            // 全仓爆仓
-            ThreadPoolUtils.sendWholePrice(memberEntity.getId());
-
             // 发送预估强平价
             ThreadPoolUtils.sendWholeForceClosingPrice(submitOrderDto.getSymbol(), memberEntity);
             // 计算佣金
@@ -265,6 +262,9 @@
                 LogRecordUtils.insertMemberAccountFlow(memberEntity.getId(), prePaymentAmount, walletContract.getAvailableBalance().subtract(prePaymentAmount), submitOrderDto.getSymbol(), "买跌持仓", "买跌:" + submitOrderDto.getSymbol());
             }
 
+            // 全仓爆仓
+            ThreadPoolUtils.sendWholePrice(memberEntity.getId());
+
             // 提交成功
             return Result.ok(MessageSourceUtils.getString("member_service_0024"));
         }
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 b2fd665..c316708 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
@@ -487,6 +487,9 @@
         if (CollUtil.isNotEmpty(list)) {
             for (HoldOrderDataModel holdOrderDataModel : list) {
                 ContractHoldOrderEntity holdOrderEntity = contractHoldOrderDao.selectById(holdOrderDataModel.getId());
+                if (holdOrderEntity == null) {
+                    continue;
+                }
 
                 contractHoldOrderDao.deleteById(holdOrderDataModel.getId());
 
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 503b23e..ca987b9 100644
--- a/src/main/java/com/xcong/excoin/rabbit/pricequeue/OrderOperatePriceService.java
+++ b/src/main/java/com/xcong/excoin/rabbit/pricequeue/OrderOperatePriceService.java
@@ -152,6 +152,7 @@
      */
     public static void wholePriceDataOperation(Long memberId) {
         Map<String, WholePriceDataModel> dataModelMap = WholeDataQueue.MAP;
+        log.info("操作前:{}", dataModelMap);
         RedisUtils redisUtils = SpringContextHolder.getBean(RedisUtils.class);
 
         ContractHoldOrderDao contractHoldOrderDao = SpringContextHolder.getBean(ContractHoldOrderDao.class);
@@ -160,8 +161,10 @@
         MemberWalletContractDao memberWalletContractDao = SpringContextHolder.getBean(MemberWalletContractDao.class);
 
         List<ContractHoldOrderEntity> holdOrders = contractHoldOrderDao.selectHoldOrderListByMemberId(memberId);
+        log.info("持仓数量:{}", holdOrders.size());
         if (CollUtil.isEmpty(holdOrders)) {
             if (dataModelMap.get(memberId.toString()) != null) {
+                log.info("平仓后执行");
                 dataModelMap.remove(memberId.toString());
 
                 redisUtils.set(AppContants.WHOLE_BOMB_MAP, JSONObject.toJSONString(dataModelMap));
@@ -194,8 +197,8 @@
         wholePriceData.setMemberId(memberId);
 
         dataModelMap.put(wholePriceData.getMemberId().toString(), wholePriceData);
-
         redisUtils.set(AppContants.WHOLE_BOMB_MAP, JSONObject.toJSONString(dataModelMap));
+        log.info("dataModelMap为:{}", dataModelMap);
     }
 
 }
diff --git a/src/test/java/com/xcong/excoin/WholeTest.java b/src/test/java/com/xcong/excoin/WholeTest.java
index a9f7f72..708ff9d 100644
--- a/src/test/java/com/xcong/excoin/WholeTest.java
+++ b/src/test/java/com/xcong/excoin/WholeTest.java
@@ -182,13 +182,13 @@
         // 8301.38608660
 //        System.out.println(new BigDecimal("9925.29996175").subtract(new BigDecimal("1623.91387515")));
 
-        BigDecimal aa = new BigDecimal("1623.91387515").subtract(new BigDecimal("0.1").multiply(new BigDecimal(50)).multiply(new BigDecimal("32478.27750300")));
+        BigDecimal aa = new BigDecimal("9925.29996175").subtract(new BigDecimal("8301.38608660").negate()).subtract(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
+        // 30818.00028568 --
+        // 29157.72306836 --
     }
 
 }

--
Gitblit v1.9.1