Helius
2021-05-13 1b44a9a25a51324dba8e8640cb405440f2cf7d48
src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java
@@ -21,11 +21,106 @@
@Configuration
public class RabbitMqConfig {
    public static final String EXCHANGE_ONE = "excoin-exchange-one";
    public static final String EXCHANGE_ONE = "biue-exchange-one";
    public static final String QUEUE_TEST = "test-queue";
    public static final String ROUTING_KEY_TEST = "test-routingKey";
    public static final String EXCHANGE_A = "biue-exchange-A";
    public static final String EXCHANGE_USDT_UPDATE = "exchange_usdt_update";
    public static final String QUEUE_USDT_UPDATE = "queue_usdt_update";
    public static final String ROUTING_KEY_USDT_UPDATE = "routing_key_usdt_update";
    public static final String EXCHANGE_USDT_ADDRESS = "exchange_usdt_address";
    public static final String QUEUE_USDT_ADDRESS= "queue_usdt_address";
    public static final String ROUTING_KEY_USDT_ADDRESS = "routing_key_usdt_address";
    public static final String QUEUE_XCH_USDT_PRIFIT = "QUEUE_XCH_USDT_PRIFIT";
    public static final String ROUTING_KEE_XCH_USDT_PRIFIT = "ROUTING_KEE_XCH_USDT_PRIFIT";
    public static final String EXCHANGE_XCH = "EXCHANGE_XCH";
    /**
     * 撮合交易
     */
    public static final String EXCHANGE_B = "biue-exchange-B";
    // 开多止盈队列
    public static final String QUEUE_MOREPRO = "QUEUE_MOREPRO_NEW";
    // 开空止盈队列
    public static final String QUEUE_LESSPRO = "QUEUE_LESSPRO_NEW";
    // 开多止损队列
    public static final String QUEUE_MORELOSS = "QUEUE_MORELOSS_NEW";
    // 开空止损队列
    public static final String QUEUE_LESSLOSS = "QUEUE_LESSLOSS_NEW";
    // 限价委托
    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";
    //价格操作
    public static final String QUEUE_PRICEOPERATE = "QUEUE_PRICEOPERATE_NEW";
    // 平仓队列
    public static final String QUEUE_CLOSETRADE = "QUEUE_CLOSETRADE_NEW";
    // 全仓爆仓
    public static final String QUEUE_WHOLE_BOMB = "QUEUE_WHOLE_BOMB_NEW";
    // 全仓价格操作
    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 QUEUE_FOLLOW_CHANGE_BOND = "QUEUE_FOLLOW_CHANGE_BOND";
    public static final String ROUTINGKEY_FOLLOW_CHANGE_BOND = "ROUTINGKEY_FOLLOW_CHANGE_BOND";
    // 开多止盈路由键
    public static final String ROUTINGKEY_MOREPRO = "ROUTINGKEY_MOREPRO";
    // 开空止盈路由
    public static final String ROUTINGKEY_LESSPRO = "ROUTINGKEY_LESSPRO";
    // 开多止损路由
    public static final String ROUTINGKEY_MORELOSS = "ROUTINGKEY_MORELOSS";
    // 开空止损路由
    public static final String ROUTINGKEY_LESSLOSS = "ROUTINGKEY_LESSLOSS";
    // 限价委托
    public static final String ROUTINGKEY_LIMIT = "ROUTINGKEY_LIMIT";
    // 爆仓路由
    public static final String ROUTINGKEY_COINOUT = "ROUTINGKEY_COINOUT";
    // 价格操作
    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";
    // 全仓爆仓
    public static final String ROUTINGKEY_WHOLE_BOMB = "ROUTINGKEY_WHOLE_BOMB";
    // 全仓价格操作
    public static final String ROUTINGKEY_WHOLE_PRICE = "ROUTINGKEY_WHOLE_PRICE";
    @Resource
    private ConnectionFactory connectionFactory;
@@ -51,6 +146,21 @@
    }
    @Bean
    public DirectExchange xchExchange() {
        return new DirectExchange(EXCHANGE_XCH);
    }
    @Bean
    public Queue xchUsdtProfitQueue() {
        return new Queue(QUEUE_XCH_USDT_PRIFIT, true);
    }
    @Bean
    public Binding xchUsdtProfitBinding() {
        return BindingBuilder.bind(xchUsdtProfitQueue()).to(xchExchange()).with(ROUTING_KEE_XCH_USDT_PRIFIT);
    }
    @Bean
    public Queue testQueue() {
        return new Queue(QUEUE_TEST, true);
    }
@@ -60,4 +170,285 @@
        return BindingBuilder.bind(testQueue()).to(defaultExchange()).with(ROUTING_KEY_TEST);
    }
   @Bean
    public DirectExchange usdtUpdateExchange() {
        return new DirectExchange(EXCHANGE_USDT_UPDATE);
    }
    @Bean
    public Queue usdtUpdateQueue() {
        return new Queue(QUEUE_USDT_UPDATE, true);
    }
    @Bean
    public Binding usdtUpdatebinding() {
        return BindingBuilder.bind(usdtUpdateQueue()).to(usdtUpdateExchange()).with(ROUTING_KEY_USDT_UPDATE);
    }
    @Bean
    public DirectExchange usdtAddressExchange() {
        return new DirectExchange(EXCHANGE_USDT_ADDRESS);
    }
    @Bean
    public Queue usdtAddressQueue() {
        return new Queue(QUEUE_USDT_ADDRESS, true);
    }
    @Bean
    public Binding usdtAddressbinding() {
        return BindingBuilder.bind(usdtAddressQueue()).to(usdtAddressExchange()).with(ROUTING_KEY_USDT_ADDRESS);
    }
    /**
     * 交换器A 可以继续添加交换器B C
     *
     * @return
     */
    @Bean
    public DirectExchange orderExchange() {
        return new DirectExchange(EXCHANGE_A);
    }
    /**
     * 开多止盈队列
     *
     * @return
     */
    @Bean
    public Queue queueMorePro() {
        // 定义一个名称为QUEUE_A,持久化的队列
        return new Queue(QUEUE_MOREPRO, true);
    }
    /**
     * 开空止盈队列
     *
     * @return
     */
    @Bean
    public Queue queueLessPro() {
        // 定义一个名称为QUEUE_A,持久化的队列
        return new Queue(QUEUE_LESSPRO, true);
    }
    /**
     * 开多止损
     *
     * @return
     */
    @Bean
    public Queue queueMoreLoss() {
        // 定义一个名称为QUEUE_A,持久化的队列
        return new Queue(QUEUE_MORELOSS, true);
    }
    /**
     * 开空止损
     *
     * @return
     */
    @Bean
    public Queue queueLessLoss() {
        // 定义一个名称为QUEUE_A,持久化的队列
        return new Queue(QUEUE_LESSLOSS, true);
    }
    /**
     * 限价委托
     *
     * @return
     */
    @Bean
    public Queue queueLimit() {
        return new Queue(QUEUE_LIMIT, true);
    }
    /**
     * 委托平仓
     *
     * @return
     */
    @Bean
    public Queue queueLimitClose() {
        return new Queue(QUEUE_LIMIT_CLOSE, true);
    }
    /**
     * 爆仓
     *
     * @return
     */
    @Bean
    public Queue queueCoinout() {
        return new Queue(QUEUE_COINOUT, true);
    }
    /**
     * 价格操作
     *
     * @return
     */
    @Bean
    public Queue queuePriceoperate() {
        return new Queue(QUEUE_PRICEOPERATE, true);
    }
    /**
     * 价格操作
     *
     * @return
     */
    @Bean
    public Queue queueCloseTrade() {
        return new Queue(QUEUE_CLOSETRADE, true);
    }
    @Bean
    public Queue queueWholePrice() {
        return new Queue(QUEUE_WHOLE_PRICE, true);
    }
    /**
     * 全仓爆仓
     * @return
     */
    @Bean
    public Queue queueWholeBomb() {
        return new Queue(QUEUE_WHOLE_BOMB, true);
    }
    @Bean
    public Queue queueFollowOrder() {
        return new Queue(QUEUE_FOLLOW_ORDER, true);
    }
    @Bean
    public Queue queueFollowChangeBond() {
        return new Queue(QUEUE_FOLLOW_CHANGE_BOND, true);
    }
    @Bean
    public Binding bindingFollowChangeBond() {
        return BindingBuilder.bind(queueFollowChangeBond()).to(orderExchange()).with(ROUTINGKEY_FOLLOW_CHANGE_BOND);
    }
    @Bean
    public Binding bindingFollowOrder() {
        return BindingBuilder.bind(queueFollowOrder()).to(orderExchange()).with(RabbitMqConfig.ROUTINGKEY_FOLLOW_ORDER);
    }
    @Bean
    public Binding bindingWholePrice() {
        return BindingBuilder.bind(queueWholePrice()).to(orderExchange()).with(RabbitMqConfig.ROUTINGKEY_WHOLE_PRICE);
    }
    /**
     * 开多止盈
     *
     * @return
     */
    @Bean
    public Binding bindingMroPro() {
        return BindingBuilder.bind(queueMorePro()).to(orderExchange()).with(RabbitMqConfig.ROUTINGKEY_MOREPRO);
    }
    /**
     * 开空止盈
     *
     * @return
     */
    @Bean
    public Binding bindingLessPro() {
        return BindingBuilder.bind(queueLessPro()).to(orderExchange()).with(RabbitMqConfig.ROUTINGKEY_LESSPRO);
    }
    /**
     * 开多止损
     *
     * @return
     */
    @Bean
    public Binding bindingMroLoss() {
        return BindingBuilder.bind(queueMoreLoss()).to(orderExchange()).with(RabbitMqConfig.ROUTINGKEY_MORELOSS);
    }
    /**
     * 开空止损
     *
     * @return
     */
    @Bean
    public Binding bindingLessLoss() {
        return BindingBuilder.bind(queueLessLoss()).to(orderExchange()).with(RabbitMqConfig.ROUTINGKEY_LESSLOSS);
    }
    /**
     * 委托
     *
     * @return
     */
    @Bean
    public Binding bindingLimit() {
        return BindingBuilder.bind(queueLimit()).to(orderExchange()).with(RabbitMqConfig.ROUTINGKEY_LIMIT);
    }
    /**
     * 委托平仓
     *
     * @return
     */
    @Bean
    public Binding bindingLimitClose() {
        return BindingBuilder.bind(queueLimitClose()).to(orderExchange()).with(RabbitMqConfig.ROUTINGKEY_LIMIT_CLOSE);
    }
    /**
     * 爆仓
     *
     * @return
     */
    @Bean
    public Binding bindingCoinout() {
        return BindingBuilder.bind(queueCoinout()).to(orderExchange()).with(RabbitMqConfig.ROUTINGKEY_COINOUT);
    }
    /**
     * 价格操作
     *
     * @return
     */
    @Bean
    public Binding bindingPriceoperate() {
        return BindingBuilder.bind(queuePriceoperate()).to(orderExchange()).with(RabbitMqConfig.ROUTINGKEY_PRICEOPERATE);
    }
    /**
     * 平仓绑定
     *
     * @return
     */
    @Bean
    public Binding bindingCloseTrade() {
        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);
    }
}