package com.matrix.config; 
 | 
  
 | 
  
 | 
import com.matrix.component.rabbitmq.MqTask; 
 | 
import com.matrix.component.rabbitmq.RabiitMqTemplate; 
 | 
import com.matrix.component.rabbitmq.RabiitMqTemplateFactory; 
 | 
import com.matrix.system.shopXcx.mqTask.*; 
 | 
import com.matrix.system.wechart.templateMsg.Task.UniformMsgSentTask; 
 | 
import org.springframework.beans.factory.annotation.Value; 
 | 
import org.springframework.context.annotation.Bean; 
 | 
import org.springframework.context.annotation.Configuration; 
 | 
  
 | 
import java.io.IOException; 
 | 
import java.util.ArrayList; 
 | 
import java.util.List; 
 | 
  
 | 
@Configuration 
 | 
public class RabbitMqConfig { 
 | 
  
 | 
    @Value("${rabbitmq.host}") 
 | 
    private String host; 
 | 
  
 | 
    @Value("${rabbitmq.port}") 
 | 
    private int port; 
 | 
  
 | 
    @Value("${rabbitmq.username}") 
 | 
    private String username; 
 | 
  
 | 
    @Value("${rabbitmq.password}") 
 | 
    private String password; 
 | 
  
 | 
    @Value("${evn}") 
 | 
    private String evn; 
 | 
  
 | 
    public static final String MQ_EXCHANGE_A = "hive_exchange_A"; 
 | 
  
 | 
    @Bean 
 | 
    VipCreateTask VipCreateTask() { 
 | 
        return new VipCreateTask(); 
 | 
    } 
 | 
  
 | 
    @Bean 
 | 
    OrderTask OrderrCreateTask() { 
 | 
        return new OrderTask(); 
 | 
    } 
 | 
  
 | 
    @Bean 
 | 
    TemplateMsgTask TemplateMsgTask(){ 
 | 
        return new TemplateMsgTask(); 
 | 
    } 
 | 
  
 | 
  @Bean 
 | 
  UniformMsgSentTask UniformMsgSentTask(){ 
 | 
        return new UniformMsgSentTask(); 
 | 
    } 
 | 
  
 | 
    @Bean 
 | 
    OrderOutSotoreTask OrderOutSotoreTask(){ 
 | 
        return new OrderOutSotoreTask(); 
 | 
    } 
 | 
  
 | 
  
 | 
    @Bean 
 | 
    public RabiitMqTemplate rabiitMqTemplate() throws IOException { 
 | 
  
 | 
        RabiitMqTemplate rabiitMqTemplate = RabiitMqTemplateFactory.buildTemplate(host, port, username, password); 
 | 
  
 | 
        //声明一个交换机 
 | 
        rabiitMqTemplate.exchangeDeclare(MQ_EXCHANGE_A+evn, "direct"); 
 | 
        rabiitMqTemplate.exchangeDeclare(MQ_EXCHANGE_A+"cf", "direct"); 
 | 
  
 | 
        List<MqTask> taskList = new ArrayList<>(); 
 | 
  
 | 
        //注册RabbitMq任务 
 | 
        taskList.add(new MqTask(MQ_EXCHANGE_A + evn, MQTaskRouting.CREATE_VIP + evn, MQTaskRouting.CREATE_VIP + evn, VipCreateTask())); 
 | 
        taskList.add(new MqTask(MQ_EXCHANGE_A + evn, MQTaskRouting.CREATE_ORDER + evn,MQTaskRouting.CREATE_ORDER + evn,OrderrCreateTask())); 
 | 
        taskList.add(new MqTask(MQ_EXCHANGE_A + evn, MQTaskRouting.SEND_TEMPLATE_MSG + evn,MQTaskRouting.SEND_TEMPLATE_MSG + evn, TemplateMsgTask())); 
 | 
        taskList.add(new MqTask(MQ_EXCHANGE_A + evn, MQTaskRouting.ORDER_OUT_SOTORE + evn,MQTaskRouting.ORDER_OUT_SOTORE + evn, OrderOutSotoreTask())); 
 | 
        taskList.add(new MqTask(MQ_EXCHANGE_A + evn, MQTaskRouting.SEND_UNIFORM_TEMPLATE_MSG + evn,MQTaskRouting.SEND_UNIFORM_TEMPLATE_MSG + evn, UniformMsgSentTask())); 
 | 
  
 | 
        rabiitMqTemplate.binding(taskList); 
 | 
  
 | 
        return rabiitMqTemplate; 
 | 
    } 
 | 
  
 | 
  
 | 
} 
 |