From ab179533d6d4104875d6960b7661802c98b6ff1e Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Wed, 26 Aug 2020 10:49:29 +0800
Subject: [PATCH] modify
---
src/main/java/com/xcong/excoin/rabbit/producer/OrderProducer.java | 11 +++++
src/main/java/com/xcong/excoin/rabbit/pricequeue/OrderOperatePriceService.java | 2
src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractEntrustOrderServiceImpl.java | 4 +-
src/main/java/com/xcong/excoin/rabbit/consumer/WebsocketPriceConsumer.java | 11 +++++
src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java | 24 ++++++++++++
src/main/java/com/xcong/excoin/rabbit/pricequeue/WebsocketPriceService.java | 17 ++++++++
src/main/java/com/xcong/excoin/common/enumerates/RabbitPriceTypeEnum.java | 2 +
7 files changed, 67 insertions(+), 4 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/common/enumerates/RabbitPriceTypeEnum.java b/src/main/java/com/xcong/excoin/common/enumerates/RabbitPriceTypeEnum.java
index b3d568f..0fc175e 100644
--- a/src/main/java/com/xcong/excoin/common/enumerates/RabbitPriceTypeEnum.java
+++ b/src/main/java/com/xcong/excoin/common/enumerates/RabbitPriceTypeEnum.java
@@ -16,6 +16,8 @@
*/
ENTRUST_OPEN_MORE(2)
, ENTRUST_OPEN_LESS(3)
+ , ENTRUST_CLOSE_MORE(4)
+ , ENTRUST_CLOSE_LESS(5)
, CLOSE_MORE_BOMB(6)
, CLOSE_LESS_BOMB(7)
, CLOSE_MORE_STOP_PROFIT(9)
diff --git a/src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java b/src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java
index 0a791bf..0287e82 100644
--- a/src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java
+++ b/src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java
@@ -42,6 +42,9 @@
// 限价委托
public static final String QUEUE_LIMIT = "QUEUE_LIMIT_NEW";
+ // 委托平仓
+ public static final String QUEUE_LIMIT_CLOSE = "QUEUE_LIMIT_CLOSE_NEW";
+
// 爆仓队列
public static final String QUEUE_COINOUT = "QUEUE_COINOUT_NEW";
@@ -71,6 +74,9 @@
public static final String ROUTINGKEY_PRICEOPERATE = "ROUTINGKEY_PRICEOPERATE";
// 平仓路由
public static final String ROUTINGKEY_CLOSETRADE = "ROUTINGKEY_CLOSETRADE";
+
+ // 委托平仓
+ public static final String ROUTINGKEY_LIMIT_CLOSE = "ROUTINGKEY_LIMIT_CLOSE";
@Resource
private ConnectionFactory connectionFactory;
@@ -171,6 +177,16 @@
return new Queue(QUEUE_LIMIT, true);
}
+ /**
+ * 委托平仓
+ *
+ * @return
+ */
+ @Bean
+ public Queue queueLimitClose() {
+ return new Queue(QUEUE_LIMIT_CLOSE, true);
+ }
+
/**
* 爆仓
@@ -254,6 +270,14 @@
return BindingBuilder.bind(queueLimit()).to(orderExchange()).with(RabbitMqConfig.ROUTINGKEY_LIMIT);
}
+ /**
+ * 委托平仓
+ *
+ * @return
+ */
+ public Binding bindingLimitClose() {
+ return BindingBuilder.bind(queueLimitClose()).to(orderExchange()).with(RabbitMqConfig.QUEUE_LIMIT_CLOSE);
+ }
/**
* 爆仓
diff --git a/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractEntrustOrderServiceImpl.java b/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractEntrustOrderServiceImpl.java
index 53ce2f5..585b492 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractEntrustOrderServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractEntrustOrderServiceImpl.java
@@ -343,10 +343,10 @@
if (i > 0) {
// 发送委托消息
if (holdOrderEntity.getOpeningType() == ContractEntrustOrderEntity.ENTRUST_TYPE_OPEN_MORE) {
- OrderModel model = new OrderModel(holdOrderEntity.getId(), RabbitPriceTypeEnum.ENTRUST_OPEN_MORE.getValue(), submitCloseEntrustDto.getEntrustPrice().setScale(8, RoundingMode.HALF_UP).toPlainString(), holdOrderEntity.getSymbol());
+ OrderModel model = new OrderModel(holdOrderEntity.getId(), RabbitPriceTypeEnum.ENTRUST_CLOSE_MORE.getValue(), submitCloseEntrustDto.getEntrustPrice().setScale(8, RoundingMode.HALF_UP).toPlainString(), holdOrderEntity.getSymbol());
producer.sendPriceOperate(JSONObject.toJSONString(model));
} else {
- OrderModel model = new OrderModel(holdOrderEntity.getId(), RabbitPriceTypeEnum.ENTRUST_OPEN_LESS.getValue(), submitCloseEntrustDto.getEntrustPrice().setScale(8, RoundingMode.HALF_UP).toPlainString(), holdOrderEntity.getSymbol());
+ OrderModel model = new OrderModel(holdOrderEntity.getId(), RabbitPriceTypeEnum.ENTRUST_CLOSE_LESS.getValue(), submitCloseEntrustDto.getEntrustPrice().setScale(8, RoundingMode.HALF_UP).toPlainString(), holdOrderEntity.getSymbol());
producer.sendPriceOperate(JSONObject.toJSONString(model));
}
}
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 b959b0e..5043ef8 100644
--- a/src/main/java/com/xcong/excoin/rabbit/consumer/WebsocketPriceConsumer.java
+++ b/src/main/java/com/xcong/excoin/rabbit/consumer/WebsocketPriceConsumer.java
@@ -145,4 +145,15 @@
List<Long> ids = JSONArray.parseArray(content, Long.class);
orderService.cancelHoldOrder(ids);
}
+
+ /**
+ * 委托平仓
+ *
+ * @param message
+ * @param channel
+ */
+ public void onMessageLimitClose(Message message, Channel channel) {
+ String content = new String(message.getBody());
+ log.info("==message-price-consumer==我收到消息了委托平仓: {}", content);
+ }
}
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 d936325..f37ed36 100644
--- a/src/main/java/com/xcong/excoin/rabbit/pricequeue/OrderOperatePriceService.java
+++ b/src/main/java/com/xcong/excoin/rabbit/pricequeue/OrderOperatePriceService.java
@@ -26,7 +26,7 @@
// 【1:买入委托2:开多3:开空4:平多5:平空6:爆仓平多7:爆仓平空8:撤单9:止盈平多10:止盈平空11:止损平多12:止损平空】
int type = orderModel.getType();
Map<String, List<OrderModel>> orderMap = PricePriorityQueue.getOrderMap(orderModel.getSymbol(), type);
- if (type == 12 || type == 9 || type == 7 || type == 3) {
+ if (type == 12 || type == 9 || type == 7 || type == 3 || type == 4) {
// 需要价格涨的
PriorityBlockingQueue<AscBigDecimal> queue = PricePriorityQueue.getQueueAsc(orderModel.getSymbol());
dealPriceAsc(orderModel, orderMap, queue);
diff --git a/src/main/java/com/xcong/excoin/rabbit/pricequeue/WebsocketPriceService.java b/src/main/java/com/xcong/excoin/rabbit/pricequeue/WebsocketPriceService.java
index af91983..1aab16d 100644
--- a/src/main/java/com/xcong/excoin/rabbit/pricequeue/WebsocketPriceService.java
+++ b/src/main/java/com/xcong/excoin/rabbit/pricequeue/WebsocketPriceService.java
@@ -111,9 +111,14 @@
List<OrderModel> bcList = new ArrayList<OrderModel>();
// 开空
List<OrderModel> wtkkList = new ArrayList<OrderModel>();
+ // 委托平多
+ List<OrderModel> wtpdList = new ArrayList<>();
switch (model.getType()) {
case 3:
wtkkList.add(model);
+ break;
+ case 4:
+ wtpdList.add(model);
break;
case 7:
bcList.add(model);
@@ -143,6 +148,9 @@
}
if (CollectionUtils.isNotEmpty(wtkkList)) {
orderProducer.sendLimit(JSONObject.toJSONString(wtkkList));
+ }
+ if (CollectionUtils.isNotEmpty(wtpdList)) {
+ orderProducer.sendLimitClose(JSONObject.toJSONString(wtpdList));
}
}
}
@@ -184,9 +192,14 @@
List<OrderModel> bcList = new ArrayList<OrderModel>();
// 开多委托
List<OrderModel> wtkdList = new ArrayList<OrderModel>();
+ // 委托平空
+ List<OrderModel> wtpkList = new ArrayList<>();
switch (model.getType()) {
case 2:
wtkdList.add(model);
+ break;
+ case 5:
+ wtpkList.add(model);
break;
case 6:
bcList.add(model);
@@ -215,7 +228,9 @@
}
if (CollectionUtils.isNotEmpty(wtkdList)) {
orderProducer.sendLimit(JSONObject.toJSONString(wtkdList));
-
+ }
+ if (CollectionUtils.isNotEmpty(wtpkList)) {
+ orderProducer.sendLimitClose(JSONObject.toJSONString(wtpkList));
}
}
}
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 400cf46..d50e96f 100644
--- a/src/main/java/com/xcong/excoin/rabbit/producer/OrderProducer.java
+++ b/src/main/java/com/xcong/excoin/rabbit/producer/OrderProducer.java
@@ -137,5 +137,16 @@
}
}
+ /**
+ * 发送委托平仓
+ *
+ * @param content
+ */
+ public void sendLimitClose(String content) {
+ CorrelationData correlationData = new CorrelationData(UUID.randomUUID().toString());
+ log.info("发送委托平仓消息:{} == pid:{}", content, correlationData.getId());
+
+ rabbitTemplate.convertAndSend(RabbitMqConfig.EXCHANGE_A, RabbitMqConfig.ROUTINGKEY_LIMIT_CLOSE, content, correlationData);
+ }
}
--
Gitblit v1.9.1