From 28526645c827a6160ea51d6d4e290e9a355d7e4f Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Thu, 04 Mar 2021 11:39:30 +0800 Subject: [PATCH] modify --- src/main/java/com/xcong/excoin/rabbit/producer/FollowProducer.java | 44 ++++++++++++++++++++++ src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java | 8 +++ src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java | 14 +++++++ src/main/java/com/xcong/excoin/rabbit/consumer/FollowConsumer.java | 31 +++++++++++++++ 4 files changed, 96 insertions(+), 1 deletions(-) diff --git a/src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java b/src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java index b8a2da2..5a0308f 100644 --- a/src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java +++ b/src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java @@ -79,6 +79,10 @@ // 全仓价格操作 public static final String QUEUE_WHOLE_PRICE = "QUEUE_WHOLE_PRCE"; + // 跟单下单 + public static final String QUEUE_FOLLOW_ORDER = "QUEUE_FOLLOW_ORDER"; + + public static final String ROUTINGKEY_FOLLOW_ORDER = "ROUTINGKEY_FOLLOW_ORDER"; // 开多止盈路由键 public static final String ROUTINGKEY_MOREPRO = "ROUTINGKEY_MOREPRO"; @@ -295,6 +299,16 @@ return new Queue(QUEUE_WHOLE_BOMB, true); } + @Bean + public Queue queueFollowOrder() { + return new Queue(QUEUE_FOLLOW_ORDER, true); + } + + @Bean + public Binding bindingFollowOrder() { + return BindingBuilder.bind(queueFollowOrder()).to(orderExchange()).with(RabbitMqConfig.ROUTINGKEY_FOLLOW_ORDER); + } + @Bean public Binding bindingWholePrice() { 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 5a3f774..c320ae7 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 @@ -37,11 +37,13 @@ import com.xcong.excoin.modules.member.entity.*; import com.xcong.excoin.modules.platform.dao.TradeSettingDao; import com.xcong.excoin.modules.platform.entity.PlatformTradeSettingEntity; +import com.xcong.excoin.rabbit.producer.FollowProducer; import com.xcong.excoin.rabbit.producer.OrderProducer; import com.xcong.excoin.utils.*; import com.xcong.excoin.rabbit.pricequeue.OrderModel; import jnr.a64asm.Mem; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import sun.rmi.runtime.Log; @@ -100,6 +102,9 @@ private FollowTraderInfoDao followTraderInfoDao; @Resource private FollowFollowerOrderRelationDao followFollowerOrderRelationDao; + + @Autowired + private FollowProducer followProducer; @Transactional(rollbackFor = Exception.class) @Override @@ -380,7 +385,8 @@ relationEntity.setTradeOrderNo(holdOrderEntity.getOrderNo()); followFollowerOrderRelationDao.insert(relationEntity); - ThreadPoolUtils.sendFollowOrderTask(holdOrderEntity.getId()); + followProducer.sendAddFollowOrder(holdOrderEntity.getId()); +// ThreadPoolUtils.sendFollowOrderTask(holdOrderEntity.getId()); } // 提交成功 return Result.ok(MessageSourceUtils.getString("member_service_0024")); diff --git a/src/main/java/com/xcong/excoin/rabbit/consumer/FollowConsumer.java b/src/main/java/com/xcong/excoin/rabbit/consumer/FollowConsumer.java new file mode 100644 index 0000000..d3c140b --- /dev/null +++ b/src/main/java/com/xcong/excoin/rabbit/consumer/FollowConsumer.java @@ -0,0 +1,31 @@ +package com.xcong.excoin.rabbit.consumer; + +import com.rabbitmq.client.Channel; +import com.xcong.excoin.configurations.RabbitMqConfig; +import com.xcong.excoin.modules.documentary.service.FollowOrderOperationService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.core.Message; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.stereotype.Component; + +/** + * @author wzy + * @date 2021-03-04 + **/ +@Slf4j +@Component +@ConditionalOnProperty(prefix = "app", name = "rabbit-consumer", havingValue = "true") +public class FollowConsumer { + + @Autowired + private FollowOrderOperationService followOrderOperationService; + + @RabbitListener(queues = RabbitMqConfig.QUEUE_FOLLOW_ORDER) + public void addFollowOrder(Message message, Channel channel) { + String content = new String(message.getBody()); + log.info("==收到跟单下单消息 : {}", content); + followOrderOperationService.addFollowerOrder(Long.parseLong(content)); + } +} diff --git a/src/main/java/com/xcong/excoin/rabbit/producer/FollowProducer.java b/src/main/java/com/xcong/excoin/rabbit/producer/FollowProducer.java new file mode 100644 index 0000000..2091602 --- /dev/null +++ b/src/main/java/com/xcong/excoin/rabbit/producer/FollowProducer.java @@ -0,0 +1,44 @@ +package com.xcong.excoin.rabbit.producer; + + +import com.xcong.excoin.configurations.RabbitMqConfig; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.rabbit.connection.CorrelationData; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.UUID; + +/** + * @author wzy + * @date 2021-03-04 + **/ +@Slf4j +@Component +public class FollowProducer implements RabbitTemplate.ConfirmCallback { + + private RabbitTemplate rabbitTemplate; + + @Autowired + public FollowProducer(RabbitTemplate rabbitTemplate) { + this.rabbitTemplate = rabbitTemplate; + rabbitTemplate.setConfirmCallback(this); + } + + @Override + public void confirm(CorrelationData correlationData, boolean b, String s) { + + } + + /** + * 发送跟单下单消息 + * + * @param id + */ + public void sendAddFollowOrder(Long id) { + CorrelationData correlationData = new CorrelationData(UUID.randomUUID().toString()); + log.info("发送跟单下单消息: {}, {}", id, correlationData.getId()); + rabbitTemplate.convertAndSend(RabbitMqConfig.EXCHANGE_A, RabbitMqConfig.ROUTINGKEY_FOLLOW_ORDER, id, correlationData); + } +} -- Gitblit v1.9.1