From febb0e226406f82f2d12b79e46481b24594cb3a4 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Fri, 10 May 2024 11:47:33 +0800
Subject: [PATCH] 合约监听

---
 src/main/java/cc/mrbird/febs/rabbit/RabbitConfiguration.java |  122 +++++++++++++++++++++++++++++++++++++++-
 1 files changed, 118 insertions(+), 4 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/rabbit/RabbitConfiguration.java b/src/main/java/cc/mrbird/febs/rabbit/RabbitConfiguration.java
index 8c44b0d..31025f2 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/RabbitConfiguration.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/RabbitConfiguration.java
@@ -1,9 +1,6 @@
 package cc.mrbird.febs.rabbit;
 
-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 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;
@@ -43,4 +40,121 @@
     public Binding defaultBind() {
         return BindingBuilder.bind(onlineTransferQueue()).to(onlineTransferExchange()).with(QueueEnum.ONLINE_TRANSFER.getRoute());
     }
+
+    @Bean
+    public DirectExchange distribProfitExchange() {
+        return new DirectExchange(QueueEnum.DISTRIB_PROFIT.getExchange());
+    }
+
+    @Bean
+    public Queue distribProfitQueue() {
+        return new Queue(QueueEnum.DISTRIB_PROFIT.getQueue());
+    }
+
+    @Bean
+    public Binding distribProfitBind() {
+        return BindingBuilder.bind(distribProfitQueue()).to(distribProfitExchange()).with(QueueEnum.DISTRIB_PROFIT.getRoute());
+    }
+
+    // === 用户购买奖励 start ===
+    @Bean
+    public DirectExchange userBuyRewardExchange() {
+        return new DirectExchange(QueueEnum.USER_BUY_REWARD.getExchange());
+    }
+
+    @Bean
+    public Queue userBuyRewardQueue() {
+        return new Queue(QueueEnum.USER_BUY_REWARD.getQueue());
+    }
+
+    @Bean
+    public Binding userBuyRewardBind() {
+        return BindingBuilder.bind(userBuyRewardQueue()).to(userBuyRewardExchange()).with(QueueEnum.USER_BUY_REWARD.getRoute());
+    }
+    // === 用户购买奖励 end ===
+
+
+    // === 延时产出  start ===
+    @Bean
+    public DirectExchange delayExchangeTtl() {
+        return new DirectExchange(QueueEnum.GFA_ZY_TIME_TTL.getExchange());
+    }
+    @Bean
+    public Binding orderDelayBindTtl() {
+        return BindingBuilder.bind(orderDelayQueueTtl()).to(delayExchangeTtl()).with(QueueEnum.GFA_ZY_TIME_TTL.getRoute());
+    }
+    @Bean
+    public Queue orderDelayQueueTtl() {
+        return QueueBuilder.durable(QueueEnum.GFA_ZY_TIME_TTL.getQueue())
+                //到期后转发的交换机
+                .withArgument("x-dead-letter-exchange", QueueEnum.GFA_ZY_TIME.getExchange())
+                //到期后转发的路由键
+                .withArgument("x-dead-letter-routing-key", QueueEnum.GFA_ZY_TIME.getRoute())
+                .build();
+    }
+    @Bean
+    public DirectExchange orderDelayExchange() {
+        return new DirectExchange(QueueEnum.GFA_ZY_TIME.getExchange());
+    }
+    @Bean
+    public Queue orderDelayQueue() {
+        return new Queue(QueueEnum.GFA_ZY_TIME.getQueue());
+    }
+    @Bean
+    public Binding orderDelayBind() {
+        return BindingBuilder.bind(orderDelayQueue()).to(orderDelayExchange()).with(QueueEnum.GFA_ZY_TIME.getRoute());
+    }
+    // ===  延时产出  end ===
+
+
+    // === 延时产出  start ===
+    @Bean
+    public DirectExchange delayExchangeTtlFlow() {
+        return new DirectExchange(QueueEnum.GFA_ZY_TIME_TTL_FLOW.getExchange());
+    }
+    @Bean
+    public Binding orderDelayBindTtlFlow() {
+        return BindingBuilder.bind(orderDelayQueueTtlFlow()).to(delayExchangeTtlFlow()).with(QueueEnum.GFA_ZY_TIME_TTL_FLOW.getRoute());
+    }
+    @Bean
+    public Queue orderDelayQueueTtlFlow() {
+        return QueueBuilder.durable(QueueEnum.GFA_ZY_TIME_TTL_FLOW.getQueue())
+                //到期后转发的交换机
+                .withArgument("x-dead-letter-exchange", QueueEnum.GFA_ZY_TIME_FLOW.getExchange())
+                //到期后转发的路由键
+                .withArgument("x-dead-letter-routing-key", QueueEnum.GFA_ZY_TIME_FLOW.getRoute())
+                .build();
+    }
+    @Bean
+    public DirectExchange orderDelayExchangeFlow() {
+        return new DirectExchange(QueueEnum.GFA_ZY_TIME_FLOW.getExchange());
+    }
+    @Bean
+    public Queue orderDelayQueueFlow() {
+        return new Queue(QueueEnum.GFA_ZY_TIME_FLOW.getQueue());
+    }
+    @Bean
+    public Binding orderDelayBindFlow() {
+        return BindingBuilder.bind(orderDelayQueueFlow()).to(orderDelayExchangeFlow()).with(QueueEnum.GFA_ZY_TIME_FLOW.getRoute());
+    }
+    // ===  延时产出  end ===
+
+
+
+    //滑点 start
+    @Bean
+    public DirectExchange gfaZhiYaHuaDianExchange() {
+        return new DirectExchange(QueueEnum.GFA_ZY_HUA_DIAN.getExchange());
+    }
+
+    @Bean
+    public Queue gfaZhiYaHuaDianQueue() {
+        return new Queue(QueueEnum.GFA_ZY_HUA_DIAN.getQueue());
+    }
+
+    @Bean
+    public Binding gfaZhiYaHuaDianBind() {
+        return BindingBuilder.bind(gfaZhiYaHuaDianQueue()).to(gfaZhiYaHuaDianExchange()).with(QueueEnum.GFA_ZY_HUA_DIAN.getRoute());
+    }
+    //滑点 end
 }

--
Gitblit v1.9.1