xiaoyong931011
2021-03-04 6bfa9de6c86de3b6de5d59e0dc9eebbba13bdb1f
Merge branch 'whole_new' of http://120.27.238.55:7000/r/exchange into whole_new
2 files added
2 files modified
97 ■■■■■ changed files
src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java 14 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java 8 ●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/rabbit/consumer/FollowConsumer.java 31 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/rabbit/producer/FollowProducer.java 44 ●●●●● 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);
    }
}