package cc.mrbird.febs.common.configure;
|
|
import cc.mrbird.febs.rabbit.constants.ExchangeConstants;
|
import cc.mrbird.febs.rabbit.constants.QueueConstants;
|
import cc.mrbird.febs.rabbit.constants.RouteKeyConstants;
|
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;
|
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Scope;
|
import org.springframework.stereotype.Component;
|
|
import javax.annotation.Resource;
|
|
/**
|
* @author wzy
|
* @date 2021-09-25
|
**/
|
@Configuration
|
public class RabbitConfigure {
|
|
@Resource
|
private ConnectionFactory connectionFactory;
|
|
@Bean
|
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
|
public RabbitTemplate rabbitTemplate() {
|
return new RabbitTemplate(connectionFactory);
|
}
|
|
@Bean
|
public DirectExchange defaultExchange() {
|
return new DirectExchange(ExchangeConstants.EXCHANGE_DEFAULT);
|
}
|
|
@Bean
|
public Queue defaultQueue() {
|
return new Queue(QueueConstants.QUEUE_DEFAULT);
|
}
|
|
@Bean
|
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());
|
}
|
|
/**
|
* 补贴金额
|
* @return
|
*/
|
//补贴金额 start
|
@Bean
|
public DirectExchange perkMoneyExchange() {
|
return new DirectExchange(RabbitQueueEnum.PERK_MONEY.getExchange());
|
}
|
|
@Bean
|
public Queue perkMoneyQueue() {
|
return new Queue(QueueConstants.PERK_MONEY);
|
}
|
|
@Bean
|
public Binding perkMoneyBind() {
|
return BindingBuilder.bind(perkMoneyQueue()).to(perkMoneyExchange()).with(RabbitQueueEnum.PERK_MONEY.getRoute());
|
}
|
//补贴金额 end
|
|
/**
|
* 强制卖出
|
* @return
|
*/
|
//强制卖出 start
|
@Bean
|
public DirectExchange forceVoucherSaleExchange() {
|
return new DirectExchange(RabbitQueueEnum.FORCE_VOUCHER_SALE.getExchange());
|
}
|
|
@Bean
|
public Queue forceVoucherSaleQueue() {
|
return new Queue(QueueConstants.FORCE_VOUCHER_SALE);
|
}
|
|
@Bean
|
public Binding forceVoucherSaleBind() {
|
return BindingBuilder.bind(forceVoucherSaleQueue()).to(forceVoucherSaleExchange()).with(RabbitQueueEnum.FORCE_VOUCHER_SALE.getRoute());
|
}
|
//强制卖出 end
|
|
// === 机器人自动抢红包 延时 start ===
|
@Bean
|
public DirectExchange buyTimeDelayTtlExchange() {
|
return new DirectExchange(RabbitQueueEnum.FCMPAY_BUY_TIME_TTL.getExchange());
|
}
|
@Bean
|
public Binding buyTimeDelayBindTtl() {
|
return BindingBuilder.bind(buyTimeDelayQueueTtl()).to(buyTimeDelayTtlExchange()).with(RabbitQueueEnum.FCMPAY_BUY_TIME_TTL.getRoute());
|
}
|
@Bean
|
public Queue buyTimeDelayQueueTtl() {
|
return QueueBuilder.durable(RabbitQueueEnum.FCMPAY_BUY_TIME_TTL.getQueue())
|
//到期后转发的交换机
|
.withArgument("x-dead-letter-exchange", RabbitQueueEnum.FCMPAY_BUY_TIME.getExchange())
|
//到期后转发的路由键
|
.withArgument("x-dead-letter-routing-key", RabbitQueueEnum.FCMPAY_BUY_TIME.getRoute())
|
.build();
|
}
|
@Bean
|
public DirectExchange buyTimeDelayExchange() {
|
return new DirectExchange(RabbitQueueEnum.FCMPAY_BUY_TIME.getExchange());
|
}
|
@Bean
|
public Queue buyTimeDelayQueue() {
|
return new Queue(RabbitQueueEnum.FCMPAY_BUY_TIME.getQueue());
|
}
|
@Bean
|
public Binding buyTimeDelayBind() {
|
return BindingBuilder.bind(buyTimeDelayQueue()).to(buyTimeDelayExchange()).with(RabbitQueueEnum.FCMPAY_BUY_TIME.getRoute());
|
}
|
// === 机器人自动抢红包 延时 end ===
|
|
//强制卖出 start
|
@Bean
|
public DirectExchange fcmNFTExchangeExchange() {
|
return new DirectExchange(RabbitQueueEnum.FCMPAY_FCM_NFT_EXCHANGE.getExchange());
|
}
|
|
@Bean
|
public Queue fcmNFTExchangeQueue() {
|
return new Queue(RabbitQueueEnum.FCMPAY_FCM_NFT_EXCHANGE.getQueue());
|
}
|
|
@Bean
|
public Binding fcmNFTExchangeBind() {
|
return BindingBuilder.bind(fcmNFTExchangeQueue()).to(fcmNFTExchangeExchange()).with(RabbitQueueEnum.FCMPAY_FCM_NFT_EXCHANGE.getRoute());
|
}
|
//强制卖出 end
|
|
//卖单用户确认 start
|
@Bean
|
public DirectExchange fcmOrderSellInsureExchange() {
|
return new DirectExchange(RabbitQueueEnum.FCMPAY_FCM_ORDER_SELL_INSURE.getExchange());
|
}
|
|
@Bean
|
public Queue fcmOrderSellInsureQueue() {
|
return new Queue(RabbitQueueEnum.FCMPAY_FCM_ORDER_SELL_INSURE.getQueue());
|
}
|
|
@Bean
|
public Binding fcmOrderSellInsureBind() {
|
return BindingBuilder.bind(fcmOrderSellInsureQueue()).to(fcmOrderSellInsureExchange()).with(RabbitQueueEnum.FCMPAY_FCM_ORDER_SELL_INSURE.getRoute());
|
}
|
//卖单用户确认 end
|
|
}
|