From c3822297d9cdcfdacf261ecf2d62f9cee22ee1a8 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Wed, 21 Feb 2024 15:38:10 +0800
Subject: [PATCH] 抽奖

---
 src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java |   93 +++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 83 insertions(+), 10 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java b/src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java
index 96a523b..a2c82db 100644
--- a/src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java
+++ b/src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java
@@ -3,10 +3,8 @@
 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;
@@ -33,18 +31,93 @@
         return new RabbitTemplate(connectionFactory);
     }
 
+
+    // === 延时  start ===
     @Bean
-    public DirectExchange defaultExchange() {
-        return new DirectExchange(ExchangeConstants.EXCHANGE_DEFAULT);
+    public DirectExchange delayExchangeTtl() {
+        return new DirectExchange(RabbitQueueEnum.CHOU_JIANG_TIME_TTL.getExchange());
+    }
+    @Bean
+    public Binding orderDelayBindTtl() {
+        return BindingBuilder.bind(orderDelayQueueTtl()).to(delayExchangeTtl()).with(RabbitQueueEnum.CHOU_JIANG_TIME_TTL.getRoute());
+    }
+    @Bean
+    public Queue orderDelayQueueTtl() {
+        return QueueBuilder.durable(RabbitQueueEnum.CHOU_JIANG_TIME_TTL.getQueue())
+                //到期后转发的交换机
+                .withArgument("x-dead-letter-exchange", RabbitQueueEnum.CHOU_JIANG_TIME.getExchange())
+                //到期后转发的路由键
+                .withArgument("x-dead-letter-routing-key", RabbitQueueEnum.CHOU_JIANG_TIME.getRoute())
+                .build();
+    }
+    @Bean
+    public DirectExchange orderDelayExchange() {
+        return new DirectExchange(RabbitQueueEnum.CHOU_JIANG_TIME.getExchange());
+    }
+    @Bean
+    public Queue orderDelayQueue() {
+        return new Queue(RabbitQueueEnum.CHOU_JIANG_TIME.getQueue());
+    }
+    @Bean
+    public Binding orderDelayBind() {
+        return BindingBuilder.bind(orderDelayQueue()).to(orderDelayExchange()).with(RabbitQueueEnum.CHOU_JIANG_TIME.getRoute());
+    }
+    // ===  延时  end ===
+
+
+    // === 延时  start ===
+    @Bean
+    public DirectExchange delayExchangeTtlNoTime() {
+        return new DirectExchange(RabbitQueueEnum.NO_TIME_TTL.getExchange());
+    }
+    @Bean
+    public Binding orderDelayBindTtlNoTime() {
+        return BindingBuilder.bind(orderDelayQueueTtlNoTime())
+                .to(delayExchangeTtlNoTime())
+                .with(RabbitQueueEnum.NO_TIME_TTL.getRoute());
+    }
+    @Bean
+    public Queue orderDelayQueueTtlNoTime() {
+        return QueueBuilder.durable(RabbitQueueEnum.NO_TIME_TTL.getQueue())
+                //到期后转发的交换机
+                .withArgument("x-dead-letter-exchange", RabbitQueueEnum.NO_TIME.getExchange())
+                //到期后转发的路由键
+                .withArgument("x-dead-letter-routing-key", RabbitQueueEnum.NO_TIME.getRoute())
+                .build();
+    }
+    @Bean
+    public DirectExchange orderDelayExchangeNoTime() {
+        return new DirectExchange(RabbitQueueEnum.NO_TIME.getExchange());
+    }
+    @Bean
+    public Queue orderDelayQueueNoTime() {
+        return new Queue(RabbitQueueEnum.NO_TIME.getQueue());
+    }
+    @Bean
+    public Binding orderDelayBindNoTime() {
+        return BindingBuilder.bind(orderDelayQueueNoTime())
+                .to(orderDelayExchangeNoTime())
+                .with(RabbitQueueEnum.NO_TIME.getRoute());
+    }
+    // ===  延时  end ===
+
+
+
+    // === 处理中奖  start ===
+    @Bean
+    public DirectExchange openPriceExchange() {
+        return new DirectExchange(RabbitQueueEnum.OPEN_PRICE.getExchange());
     }
 
     @Bean
-    public Queue defaultQueue() {
-        return new Queue(QueueConstants.QUEUE_DEFAULT);
+    public Queue openPriceQueue() {
+        return new Queue(RabbitQueueEnum.OPEN_PRICE.getQueue());
     }
 
     @Bean
-    public Binding defaultBind() {
-        return BindingBuilder.bind(defaultQueue()).to(defaultExchange()).with(RouteKeyConstants.ROUTE_KEY_DEFAULT);
+    public Binding openPriceBind() {
+        return BindingBuilder.bind(openPriceQueue()).to(openPriceExchange()).with(RabbitQueueEnum.OPEN_PRICE.getRoute());
     }
+    // ===  处理中奖  end ===
+
 }

--
Gitblit v1.9.1