Administrator
6 days ago 485c6557ae50afe6703c0b64169ce8eb634b1924
src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java
@@ -4,6 +4,7 @@
import cc.mrbird.febs.rabbit.constants.QueueConstants;
import cc.mrbird.febs.rabbit.constants.RouteKeyConstants;
import cc.mrbird.febs.rabbit.enumerates.RabbitQueueEnum;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.*;
import org.springframework.amqp.rabbit.connection.ConnectionFactory;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
@@ -19,6 +20,7 @@
 * @author wzy
 * @date 2021-09-25
 **/
@Slf4j
@Configuration
public class RabbitConfigure {
@@ -28,246 +30,29 @@
    @Bean
    @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
    public RabbitTemplate rabbitTemplate() {
        return new RabbitTemplate(connectionFactory);
        RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory);
        // 设置消息确认机制
        rabbitTemplate.setConfirmCallback((correlationData, ack, cause) -> {
            if (!ack) {
                log.error("消息发送失败: {}", cause);
            }
        });
        return rabbitTemplate;
    }
    @Bean
    public DirectExchange defaultExchange() {
        return new DirectExchange(ExchangeConstants.EXCHANGE_DEFAULT);
    public DirectExchange pcCompanyAddExchange() {
        return new DirectExchange(RabbitQueueEnum.PC_COMPANY_ADD_ALI.getExchange());
    }
    @Bean
    public Queue defaultQueue() {
        return new Queue(QueueConstants.QUEUE_DEFAULT);
    public Queue pcCompanyAddQueue() {
        return new Queue(RabbitQueueEnum.PC_COMPANY_ADD_ALI.getQueue());
    }
    @Bean
    public Binding defaultBind() {
        return BindingBuilder.bind(defaultQueue()).to(defaultExchange()).with(RouteKeyConstants.ROUTE_KEY_DEFAULT);
    public Binding pcCompanyAddBind() {
        return BindingBuilder.bind(pcCompanyAddQueue()).to(pcCompanyAddExchange()).with(RabbitQueueEnum.PC_COMPANY_ADD_ALI.getRoute());
    }
    @Bean
    public DirectExchange delayTtlExchangeClothes() {
        return new DirectExchange(RabbitQueueEnum.CLOTHES_ORDER_CANCEL_DELAY_TTL.getExchange());
    }
    @Bean
    public Queue orderDelayQueueTtlClothes() {
        return QueueBuilder.durable(RabbitQueueEnum.CLOTHES_ORDER_CANCEL_DELAY_TTL.getQueue())
                //到期后转发的交换机
                .withArgument("x-dead-letter-exchange", RabbitQueueEnum.CLOTHES_ORDER_CANCEL_DELAY.getExchange())
                //到期后转发的路由键
                .withArgument("x-dead-letter-routing-key", RabbitQueueEnum.CLOTHES_ORDER_CANCEL_DELAY.getRoute())
                .build();
    }
    @Bean
    public Binding orderDelayBindTtlClothes() {
        return BindingBuilder.bind(orderDelayQueueTtlClothes()).to(delayTtlExchangeClothes()).with(RabbitQueueEnum.CLOTHES_ORDER_CANCEL_DELAY_TTL.getRoute());
    }
    @Bean
    public DirectExchange orderDelayExchangeClothes() {
        return new DirectExchange(RabbitQueueEnum.CLOTHES_ORDER_CANCEL_DELAY.getExchange());
    }
    @Bean
    public Queue orderDelayQueueClothes() {
        return new Queue(RabbitQueueEnum.CLOTHES_ORDER_CANCEL_DELAY.getQueue());
    }
    @Bean
    public Binding orderDelayBindClothes() {
        return BindingBuilder.bind(orderDelayQueueClothes()).to(orderDelayExchangeClothes()).with(RabbitQueueEnum.CLOTHES_ORDER_CANCEL_DELAY.getRoute());
    }
    @Bean
    public DirectExchange delayTtlExchange() {
        return new DirectExchange(RabbitQueueEnum.ORDER_CANCEL_DELAY_TTL.getExchange());
    }
    @Bean
    public DirectExchange orderDelayExchange() {
        return new DirectExchange(RabbitQueueEnum.ORDER_CANCEL_DELAY.getExchange());
    }
    @Bean
    public Queue orderDelayQueue() {
        return new Queue(RabbitQueueEnum.ORDER_CANCEL_DELAY.getQueue());
    }
    @Bean
    public Queue orderDelayQueueTtl() {
        return QueueBuilder.durable(RabbitQueueEnum.ORDER_CANCEL_DELAY_TTL.getQueue())
                //到期后转发的交换机
                .withArgument("x-dead-letter-exchange", RabbitQueueEnum.ORDER_CANCEL_DELAY.getExchange())
                //到期后转发的路由键
                .withArgument("x-dead-letter-routing-key", RabbitQueueEnum.ORDER_CANCEL_DELAY.getRoute())
                .build();
    }
    @Bean
    public Binding orderDelayBind() {
        return BindingBuilder.bind(orderDelayQueue()).to(orderDelayExchange()).with(RabbitQueueEnum.ORDER_CANCEL_DELAY.getRoute());
    }
    @Bean
    public Binding orderDelayBindTtl() {
        return BindingBuilder.bind(orderDelayQueueTtl()).to(delayTtlExchange()).with(RabbitQueueEnum.ORDER_CANCEL_DELAY_TTL.getRoute());
    }
    @Bean
    public Queue autoLevelUpAgentQueue() {
        return new Queue(QueueConstants.AGENT_AUTO_LEVEL_UP);
    }
    @Bean
    public Binding autoLevelUpBind() {
        return BindingBuilder.bind(autoLevelUpAgentQueue()).to(defaultExchange()).with(RouteKeyConstants.ROUTE_KEY_DEFAULT);
    }
    @Bean
    public DirectExchange agentReturnMoneyExchange() {
        return new DirectExchange(RabbitQueueEnum.AGENT_REUTRN_MONEY.getExchange());
    }
    @Bean
    public Queue agentReturnMoneyQueue() {
        return new Queue(QueueConstants.AGENT_RETURN_MONEY);
    }
    @Bean
    public Binding agentReturnMoneyBind() {
        return BindingBuilder.bind(agentReturnMoneyQueue()).to(agentReturnMoneyExchange()).with(RabbitQueueEnum.AGENT_REUTRN_MONEY.getRoute());
    }
    @Bean
    public DirectExchange orderReturnMoneyExchange() {
        return new DirectExchange(RabbitQueueEnum.ORDER_RETURN_MONEY.getExchange());
    }
    @Bean
    public Queue orderReturnMoneyQueue() {
        return new Queue(QueueConstants.ORDER_RETURN_MONEY);
    }
    @Bean
    public Binding orderReturnMoneyBind() {
        return BindingBuilder.bind(orderReturnMoneyQueue()).to(orderReturnMoneyExchange()).with(RabbitQueueEnum.ORDER_RETURN_MONEY.getRoute());
    }
    @Bean
    public DirectExchange orderCouponExchange() {
        return new DirectExchange(RabbitQueueEnum.ORDER_COUPON.getExchange());
    }
    @Bean
    public Queue orderCouponQueue() {
        return new Queue(QueueConstants.ORDER_COUPON);
    }
    @Bean
    public Binding orderCouponBind() {
        return BindingBuilder.bind(orderCouponQueue()).to(orderCouponExchange()).with(RabbitQueueEnum.ORDER_COUPON.getRoute());
    }
    @Bean
    public DirectExchange getScoreMsgExchange() {
        return new DirectExchange(RabbitQueueEnum.GET_SCORE_MSG.getExchange());
    }
    @Bean
    public Queue getScoreMsgQueue() {
        return new Queue(QueueConstants.GET_SCORE_MSG);
    }
    @Bean
    public Binding getScoreMsgBind() {
        return BindingBuilder.bind(getScoreMsgQueue()).to(getScoreMsgExchange()).with(RabbitQueueEnum.GET_SCORE_MSG.getRoute());
    }
    @Bean
    public DirectExchange vipLevelUp() {
        return new DirectExchange(RabbitQueueEnum.VIP_LEVEL_UP.getExchange());
    }
    @Bean
    public Queue vipLevelUpQueue() {
        return new Queue(QueueConstants.VIP_LEVEL_UP);
    }
    @Bean
    public Binding vipLevelUpBind() {
        return BindingBuilder.bind(vipLevelUpQueue()).to(vipLevelUp()).with(RabbitQueueEnum.VIP_LEVEL_UP.getRoute());
    }
    @Bean
    public DirectExchange saleLevelUp() {
        return new DirectExchange(RabbitQueueEnum.SALE_LEVEL_UP.getExchange());
    }
    @Bean
    public Queue saleLevelUpQueue() {
        return new Queue(RabbitQueueEnum.SALE_LEVEL_UP.getQueue());
    }
    @Bean
    public Binding saleLevelUpBind() {
        return BindingBuilder.bind(saleLevelUpQueue()).to(saleLevelUp()).with(RabbitQueueEnum.SALE_LEVEL_UP.getRoute());
    }
    @Bean
    public DirectExchange activityOrderCheckExchange() {
        return new DirectExchange(RabbitQueueEnum.ACTIVITY_ORDER_ITEM_CHECK.getExchange());
    }
    @Bean
    public Queue activityOrderCheckQueue() {
        return new Queue(RabbitQueueEnum.ACTIVITY_ORDER_ITEM_CHECK.getQueue());
    }
    @Bean
    public Binding activityOrderCheckBind() {
        return BindingBuilder.bind(activityOrderCheckQueue()).to(activityOrderCheckExchange()).with(RabbitQueueEnum.ACTIVITY_ORDER_ITEM_CHECK.getRoute());
    }
    @Bean
    public DirectExchange clothesAddLikeExchange() {
        return new DirectExchange(RabbitQueueEnum.CLOTHES_ADD_LIKE.getExchange());
    }
    @Bean
    public Queue clothesAddLikeQueue() {
        return new Queue(RabbitQueueEnum.CLOTHES_ADD_LIKE.getQueue());
    }
    @Bean
    public Binding clothesAddLikeBind() {
        return BindingBuilder.bind(clothesAddLikeQueue()).to(clothesAddLikeExchange()).with(RabbitQueueEnum.CLOTHES_ADD_LIKE.getRoute());
    }
    @Bean
    public DirectExchange clothesAddCollectExchange() {
        return new DirectExchange(RabbitQueueEnum.CLOTHES_ADD_COLLECT.getExchange());
    }
    @Bean
    public Queue clothesAddCollectQueue() {
        return new Queue(RabbitQueueEnum.CLOTHES_ADD_COLLECT.getQueue());
    }
    @Bean
    public Binding clothesAddCollectBind() {
        return BindingBuilder.bind(clothesAddCollectQueue()).to(clothesAddCollectExchange()).with(RabbitQueueEnum.CLOTHES_ADD_COLLECT.getRoute());
    }
}