935090232@qq.com
2021-03-18 5d43370b99a03391c9271d04d3f351f0fd734dae
zq-erp/src/main/java/com/matrix/config/RabbitMqConfig.java
@@ -4,6 +4,7 @@
import com.matrix.component.rabbitmq.MqTask;
import com.matrix.component.rabbitmq.RabiitMqTemplate;
import com.matrix.component.rabbitmq.RabiitMqTemplateFactory;
import com.matrix.core.tools.LogUtil;
import com.matrix.system.shopXcx.mqTask.*;
import com.matrix.system.wechart.templateMsg.Task.UniformMsgSentTask;
import org.springframework.beans.factory.annotation.Value;
@@ -34,6 +35,9 @@
    public static final String MQ_EXCHANGE_A = "hive_exchange_A";
    //订阅模式
    public static final String MQ_EXCHANGE_TOPIC = "hive_exchange_fanout";
    @Bean
    VipCreateTask VipCreateTask() {
        return new VipCreateTask();
@@ -42,6 +46,14 @@
    @Bean
    OrderTask OrderrCreateTask() {
        return new OrderTask();
    }
    @Bean
    SalesOrderTask SalesOrderTask() {
        return new SalesOrderTask();
    }
    @Bean
    SalesOrderRefundTask SalesOrderRefundTask() {
        return new SalesOrderRefundTask();
    }
    @Bean
@@ -62,21 +74,29 @@
    @Bean
    public RabiitMqTemplate rabiitMqTemplate() throws IOException {
        LogUtil.info("rabbitmq: {}, {}, {}, {}", host, port, username, password);
        RabiitMqTemplate rabiitMqTemplate = RabiitMqTemplateFactory.buildTemplate(host, port, username, password);
        //声明一个交换机
        rabiitMqTemplate.exchangeDeclare(MQ_EXCHANGE_A+evn, "direct");
        rabiitMqTemplate.exchangeDeclare(MQ_EXCHANGE_A+"cf", "direct");
        rabiitMqTemplate.exchangeDeclare(MQ_EXCHANGE_TOPIC +evn, "topic");
        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()));
        taskList.add(new MqTask(MQ_EXCHANGE_A + evn, MQTaskRouting.SHOP_ORDER_REFUND + evn,MQTaskRouting.SHOP_ORDER_REFUND + evn, SalesOrderRefundTask()));
        //不同任务在不同的队列,但是routingKey一样则可以收到生产者消息
        taskList.add(new MqTask(MQ_EXCHANGE_TOPIC + evn, MQTaskRouting.CREATE_ORDER + evn,MQTaskRouting.CREATE_ORDER + evn,SalesOrderTask()));
        taskList.add(new MqTask(MQ_EXCHANGE_TOPIC + evn, MQTaskRouting.SALES_ORDER + evn,MQTaskRouting.CREATE_ORDER + evn,OrderrCreateTask()));
        rabiitMqTemplate.binding(taskList);