|  |  |  | 
|---|
|  |  |  | import cc.mrbird.febs.rabbit.constants.ExchangeConstants; | 
|---|
|  |  |  | import cc.mrbird.febs.rabbit.constants.QueueConstants; | 
|---|
|  |  |  | import cc.mrbird.febs.rabbit.constants.RouteKeyConstants; | 
|---|
|  |  |  | import org.springframework.amqp.core.Binding; | 
|---|
|  |  |  | import org.springframework.amqp.core.BindingBuilder; | 
|---|
|  |  |  | import org.springframework.amqp.core.DirectExchange; | 
|---|
|  |  |  | import org.springframework.amqp.core.Queue; | 
|---|
|  |  |  | import cc.mrbird.febs.rabbit.enumerates.RabbitQueueEnum; | 
|---|
|  |  |  | import org.springframework.amqp.core.*; | 
|---|
|  |  |  | import org.springframework.amqp.rabbit.connection.ConnectionFactory; | 
|---|
|  |  |  | import org.springframework.amqp.rabbit.core.RabbitTemplate; | 
|---|
|  |  |  | import org.springframework.beans.factory.config.ConfigurableBeanFactory; | 
|---|
|  |  |  | 
|---|
|  |  |  | public Binding defaultBind() { | 
|---|
|  |  |  | return BindingBuilder.bind(defaultQueue()).to(defaultExchange()).with(RouteKeyConstants.ROUTE_KEY_DEFAULT); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @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()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|