From 41db04adedf2eb42e8765ef91a582c905eef3bda Mon Sep 17 00:00:00 2001
From: 935090232@qq.com <ak473600000>
Date: Sun, 14 Mar 2021 08:43:47 +0800
Subject: [PATCH] 创建订单采用广播形式

---
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxCommonAction.java |    3 ++-
 zq-erp/src/test/java/com/matrix/SourceFlowTests.java                          |   15 +++++++++++++++
 zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/MQTaskRouting.java      |    1 +
 zq-erp/src/main/java/com/matrix/config/RabbitMqConfig.java                    |   16 +++++++++++++---
 4 files changed, 31 insertions(+), 4 deletions(-)

diff --git a/zq-erp/src/main/java/com/matrix/config/RabbitMqConfig.java b/zq-erp/src/main/java/com/matrix/config/RabbitMqConfig.java
index a1dac18..ce1ff16 100644
--- a/zq-erp/src/main/java/com/matrix/config/RabbitMqConfig.java
+++ b/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;
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxCommonAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxCommonAction.java
index ff78386..508d4e7 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxCommonAction.java
+++ b/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");
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/MQTaskRouting.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/MQTaskRouting.java
index 861de97..c80101b 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/MQTaskRouting.java
+++ b/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";
     /**
      * 发送微信消息
      */
diff --git a/zq-erp/src/test/java/com/matrix/SourceFlowTests.java b/zq-erp/src/test/java/com/matrix/SourceFlowTests.java
index 9c1a1bd..9d6d51a 100644
--- a/zq-erp/src/test/java/com/matrix/SourceFlowTests.java
+++ b/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

--
Gitblit v1.9.1