From f5708bc8452444408cf3f94b9ed528ca4d58d628 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Fri, 04 Sep 2020 11:46:46 +0800
Subject: [PATCH] modify

---
 src/main/java/com/xcong/excoin/rabbit/producer/OrderProducer.java                              |   12 ++++++
 src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java |   22 +++++-----
 src/main/java/com/xcong/excoin/rabbit/consumer/WebsocketPriceConsumer.java                     |   11 +++++
 src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java                              |   24 ++++++++++++
 4 files changed, 58 insertions(+), 11 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java b/src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java
index da218eb..bc850b9 100644
--- a/src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java
+++ b/src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java
@@ -54,6 +54,9 @@
     // 平仓队列
     public static final String QUEUE_CLOSETRADE = "QUEUE_CLOSETRADE_NEW";
 
+    // 全仓爆仓
+    public static final String QUEUE_WHOLE_BOMB = "QUEUE_WHOLE_BOMB_NEW";
+
 
     // 开多止盈路由键
     public static final String ROUTINGKEY_MOREPRO = "ROUTINGKEY_MOREPRO";
@@ -77,6 +80,9 @@
 
     // 委托平仓
     public static final String ROUTINGKEY_LIMIT_CLOSE = "ROUTINGKEY_LIMIT_CLOSE";
+
+    // 全仓爆仓
+    public static final String ROUTINGKEY_WHOLE_BOMB = "ROUTINGKEY_WHOLE_BOMB";
 
     @Resource
     private ConnectionFactory connectionFactory;
@@ -218,6 +224,14 @@
         return new Queue(QUEUE_CLOSETRADE, true);
     }
 
+    /**
+     * 全仓爆仓
+     * @return
+     */
+    @Bean
+    public Queue queueWholeBomb() {
+        return new Queue(QUEUE_WHOLE_BOMB, true);
+    }
 
     /**
      * 开多止盈
@@ -311,4 +325,14 @@
         return BindingBuilder.bind(queueCloseTrade()).to(orderExchange()).with(RabbitMqConfig.ROUTINGKEY_CLOSETRADE);
     }
 
+    /**
+     * 全仓爆仓绑定
+     *
+     * @return
+     */
+    @Bean
+    public Binding bindingWholeBomb() {
+        return BindingBuilder.bind(queueWholeBomb()).to(orderExchange()).with(RabbitMqConfig.ROUTINGKEY_WHOLE_BOMB);
+    }
+
 }
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 57ace9c..16c9b8f 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
@@ -736,18 +736,18 @@
         PlatformTradeSettingEntity tradeSetting = cacheSettingUtils.getTradeSetting();
         BigDecimal newPriceSymbol = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(symbol)));
 
-        List<ContractEntrustOrderEntity> entrustOrderEntities;
-        List<ContractHoldOrderEntity> holdOrderEntities;
+        List<ContractEntrustOrderEntity> entrustOrderEntities = contractEntrustOrderDao.selectEntrustOrderListByMemberId(memberEntity.getId());
+        List<ContractHoldOrderEntity> holdOrderEntities = contractHoldOrderDao.selectHoldOrderListByMemberId(memberEntity.getId());
         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());
-        } else {
-            entrustOrderEntities = contractEntrustOrderDao.selectEntrustOrderListByMemberIdAndSymbol(memberEntity.getId(), symbol);
-            holdOrderEntities = contractHoldOrderDao.selectHoldOrderListForWholeByMemberIdAndSymbol(memberEntity.getId(), symbol);
-        }
+//        if (memberEntity.getContractPositionType().equals(ContractEntrustOrderEntity.POSITION_TYPE_ADD)) {
+//            // 当前合约委托单
+//            entrustOrderEntities = contractEntrustOrderDao.selectEntrustOrderListByMemberId(memberEntity.getId());
+//            // 当前持仓列表
+//            holdOrderEntities = contractHoldOrderDao.selectHoldOrderListByMemberId(memberEntity.getId());
+//        } else {
+//            entrustOrderEntities = contractEntrustOrderDao.selectEntrustOrderListByMemberIdAndSymbol(memberEntity.getId(), symbol);
+//            holdOrderEntities = contractHoldOrderDao.selectHoldOrderListForWholeByMemberIdAndSymbol(memberEntity.getId(), symbol);
+//        }
 
         // 冻结保证金 -- 即委托单中的保证金之和
         BigDecimal frozenBondAmount = BigDecimal.ZERO;
diff --git a/src/main/java/com/xcong/excoin/rabbit/consumer/WebsocketPriceConsumer.java b/src/main/java/com/xcong/excoin/rabbit/consumer/WebsocketPriceConsumer.java
index 891e512..60af4aa 100644
--- a/src/main/java/com/xcong/excoin/rabbit/consumer/WebsocketPriceConsumer.java
+++ b/src/main/java/com/xcong/excoin/rabbit/consumer/WebsocketPriceConsumer.java
@@ -159,4 +159,15 @@
         List<OrderModel> list = JSONArray.parseArray(content, OrderModel.class);
         orderService.entrustCloseOrder(list);
     }
+
+    /**
+     * 全仓爆仓
+     *
+     * @param message
+     * @param channel
+     */
+    @RabbitListener(queues = RabbitMqConfig.QUEUE_WHOLE_BOMB)
+    public void onMessageWholeBomb(Message message, Channel channel) {
+
+    }
 }
diff --git a/src/main/java/com/xcong/excoin/rabbit/producer/OrderProducer.java b/src/main/java/com/xcong/excoin/rabbit/producer/OrderProducer.java
index d50e96f..8424731 100644
--- a/src/main/java/com/xcong/excoin/rabbit/producer/OrderProducer.java
+++ b/src/main/java/com/xcong/excoin/rabbit/producer/OrderProducer.java
@@ -149,4 +149,16 @@
         rabbitTemplate.convertAndSend(RabbitMqConfig.EXCHANGE_A, RabbitMqConfig.ROUTINGKEY_LIMIT_CLOSE, content, correlationData);
     }
 
+    /**
+     * 发送全仓爆仓
+     *
+     * @param content
+     */
+    public void sendWholeBomb(String content) {
+        CorrelationData correlationData = new CorrelationData(UUID.randomUUID().toString());
+        log.info("发送全仓爆仓消息:{} == pid:{}", content, correlationData.getId());
+
+        rabbitTemplate.convertAndSend(RabbitMqConfig.EXCHANGE_A, RabbitMqConfig.ROUTINGKEY_WHOLE_BOMB, content, correlationData);
+    }
+
 }

--
Gitblit v1.9.1