src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/com/xcong/excoin/rabbit/consumer/FollowConsumer.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/com/xcong/excoin/rabbit/producer/FollowProducer.java | ●●●●● patch | view | raw | blame | history |
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() { src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java
@@ -39,11 +39,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; @@ -102,6 +104,9 @@ private FollowTraderInfoDao followTraderInfoDao; @Resource private FollowFollowerOrderRelationDao followFollowerOrderRelationDao; @Autowired private FollowProducer followProducer; @Transactional(rollbackFor = Exception.class) @Override @@ -382,7 +387,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")); src/main/java/com/xcong/excoin/rabbit/consumer/FollowConsumer.java
New file @@ -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)); } } src/main/java/com/xcong/excoin/rabbit/producer/FollowProducer.java
New file @@ -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); } }