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); } } 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; 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) { } } 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); } }