935090232@qq.com
2021-03-14 41db04adedf2eb42e8765ef91a582c905eef3bda
创建订单采用广播形式
4 files modified
35 ■■■■ changed files
zq-erp/src/main/java/com/matrix/config/RabbitMqConfig.java 16 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxCommonAction.java 3 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/MQTaskRouting.java 1 ●●●● patch | view | raw | blame | history
zq-erp/src/test/java/com/matrix/SourceFlowTests.java 15 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/config/RabbitMqConfig.java
@@ -36,7 +36,7 @@
    public static final String MQ_EXCHANGE_A = "hive_exchange_A";
    //订阅模式
    public static final String MQ_EXCHANGE_FANOUT = "hive_exchange_fanout";
    public static final String MQ_EXCHANGE_TOPIC = "hive_exchange_fanout";
    @Bean
    VipCreateTask VipCreateTask() {
@@ -46,6 +46,10 @@
    @Bean
    OrderTask OrderrCreateTask() {
        return new OrderTask();
    }
    @Bean
    SalesOrderTask SalesOrderTask() {
        return new SalesOrderTask();
    }
    @Bean
@@ -71,18 +75,24 @@
        //声明一个交换机
        rabiitMqTemplate.exchangeDeclare(MQ_EXCHANGE_A+evn, "direct");
        rabiitMqTemplate.exchangeDeclare(MQ_EXCHANGE_FANOUT+evn, "fanout");
        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_FANOUT + 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()));
        //不同任务在不同的队列,但是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);
        return rabiitMqTemplate;
zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxCommonAction.java
@@ -4,6 +4,7 @@
import com.matrix.component.wechat.externalInterface.common.Signature;
import com.matrix.component.wechat.externalInterface.common.Util;
import com.matrix.component.wechat.externalInterface.protocol.queryProtocol.NotifyData;
import com.matrix.config.RabbitMqConfig;
import com.matrix.core.pojo.AjaxResult;
import com.matrix.core.tools.LogUtil;
import com.matrix.system.common.bean.BusParameterSettings;
@@ -192,7 +193,7 @@
                            }
                            // 根据订单类型创建不同的处理任务
                            rabiitMqTemplate.sendMsg(MQTaskRouting.CREATE_ORDER+evn, orderId);
                            rabiitMqTemplate.sendTopicMsg(RabbitMqConfig.MQ_EXCHANGE_TOPIC +evn, MQTaskRouting.CREATE_ORDER+evn, orderId);
                            threadResult.putInMap("status", "success");
zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/MQTaskRouting.java
@@ -8,6 +8,7 @@
    String CREATE_VIP = "CREATE_VIP";
    String CREATE_ORDER = "CREATE_ORDER";
    String SALES_ORDER = "SALES_ORDER";
    /**
     * 发送微信消息
     */
zq-erp/src/test/java/com/matrix/SourceFlowTests.java
@@ -1,11 +1,14 @@
package com.matrix;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.matrix.component.rabbitmq.RabiitMqTemplate;
import com.matrix.config.RabbitMqConfig;
import com.matrix.core.tools.StringUtils;
import com.matrix.system.fenxiao.dao.ShopSalesmanApplyDao;
import com.matrix.system.hive.bean.*;
import com.matrix.system.hive.dao.*;
import com.matrix.system.hive.service.CodeService;
import com.matrix.system.shopXcx.mqTask.MQTaskRouting;
import com.matrix.system.shopXcx.vo.SalesmanVo;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -49,8 +52,20 @@
    @Autowired
    private SysVipInfoDao vipInfoDao;
    @Autowired
    RabiitMqTemplate rabiitMqTemplate;
    /**
     * 发送订阅消息
     * @throws InterruptedException
     */
    @Test
    public void testTopic() throws InterruptedException {
        rabiitMqTemplate.sendTopicMsg(RabbitMqConfig.MQ_EXCHANGE_TOPIC +"dev", MQTaskRouting.CREATE_ORDER+"dev", "123");
        Thread.sleep(10000);
    }
    @Test
    @Transactional
    @Rollback