From d68d9e76c5143edd66a88a7202b83466d5470c7f Mon Sep 17 00:00:00 2001
From: simon <861719797@qq.com>
Date: Tue, 26 Sep 2023 11:51:41 +0800
Subject: [PATCH] =?UTF-8?q?mq=E8=B0=83=E8=AF=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../iot/data}/constants/YunxiRabbitConst.java | 2 +-
iot-common/iot-rabbit/pom.xml | 58 ---------
.../iot/rabbit/config/RunXiRabbitConfig.java | 29 -----
.../iot/rabbit/service/MqSendMsgService.java | 33 -----
iot-common/iot-third/pom.xml | 35 ++++--
.../qiuguo/iot/third/service/MqService.java | 67 ++++++++++
.../iot/third/IotThirdApplicationTests.java | 16 ---
.../iot/third/service/IpServiceTest.java | 1 -
iot-common/pom.xml | 1 -
.../http/api/controller/DemoController.java | 114 ------------------
iot-modules/iot-box-user-api/pom.xml | 5 +
.../user/api/IotBoxUserApiApplication.java | 4 +-
.../iot/user/api/config/MyMsgConverter.java | 15 +++
.../user/api/controller/mq/MqController.java | 35 ++++++
.../iot/user/api/listener/YunxiListener.java | 29 +++++
.../src/main/resources/bootstrap-dev.yml | 19 +++
16 files changed, 197 insertions(+), 266 deletions(-)
rename iot-common/{iot-rabbit/src/main/java/com/qiuguo/iot/rabbit => iot-data/src/main/java/com/qiuguo/iot/data}/constants/YunxiRabbitConst.java (91%)
delete mode 100644 iot-common/iot-rabbit/pom.xml
delete mode 100644 iot-common/iot-rabbit/src/main/java/com/qiuguo/iot/rabbit/config/RunXiRabbitConfig.java
delete mode 100644 iot-common/iot-rabbit/src/main/java/com/qiuguo/iot/rabbit/service/MqSendMsgService.java
create mode 100644 iot-common/iot-third/src/main/java/com/qiuguo/iot/third/service/MqService.java
delete mode 100644 iot-common/iot-third/src/test/java/com/qiuguo/iot/third/IotThirdApplicationTests.java
delete mode 100644 iot-modules/iot-admin-http-api/src/main/java/com/qiuguo/iot/admin/http/api/controller/DemoController.java
create mode 100644 iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/config/MyMsgConverter.java
create mode 100644 iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/controller/mq/MqController.java
create mode 100644 iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/listener/YunxiListener.java
diff --git a/iot-common/iot-rabbit/src/main/java/com/qiuguo/iot/rabbit/constants/YunxiRabbitConst.java b/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/constants/YunxiRabbitConst.java
similarity index 91%
rename from iot-common/iot-rabbit/src/main/java/com/qiuguo/iot/rabbit/constants/YunxiRabbitConst.java
rename to iot-common/iot-data/src/main/java/com/qiuguo/iot/data/constants/YunxiRabbitConst.java
index c53e4a5..d561e74 100644
--- a/iot-common/iot-rabbit/src/main/java/com/qiuguo/iot/rabbit/constants/YunxiRabbitConst.java
+++ b/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/constants/YunxiRabbitConst.java
@@ -1,4 +1,4 @@
-package com.qiuguo.iot.rabbit.constants;
+package com.qiuguo.iot.data.constants;
/**
* @author simon
diff --git a/iot-common/iot-rabbit/pom.xml b/iot-common/iot-rabbit/pom.xml
deleted file mode 100644
index 4f63e3c..0000000
--- a/iot-common/iot-rabbit/pom.xml
+++ /dev/null
@@ -1,58 +0,0 @@
-
-
- 4.0.0
-
- com.qiuguo.iot
- iot-common
- 0.0.1-SNAPSHOT
-
-
- iot-rabbit
- iot-rabbit
- mq类
-
-
- 1.8
-
-
-
- org.springframework.boot
- spring-boot-starter-amqp
-
-
- org.springframework.boot
- spring-boot-starter-webflux
-
-
-
-
- org.springframework.amqp
- spring-rabbit-test
- test
-
-
-
-
- ${project.artifactId}
-
-
- org.springframework.boot
- spring-boot-maven-plugin
- ${spring.boot.maven.plugin.version}
-
-
- true
-
-
-
-
- repackage
-
-
-
-
-
-
-
-
diff --git a/iot-common/iot-rabbit/src/main/java/com/qiuguo/iot/rabbit/config/RunXiRabbitConfig.java b/iot-common/iot-rabbit/src/main/java/com/qiuguo/iot/rabbit/config/RunXiRabbitConfig.java
deleted file mode 100644
index 11796f7..0000000
--- a/iot-common/iot-rabbit/src/main/java/com/qiuguo/iot/rabbit/config/RunXiRabbitConfig.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package com.qiuguo.iot.rabbit.config;
-
-import com.qiuguo.iot.rabbit.constants.YunxiRabbitConst;
-import org.springframework.amqp.core.Binding;
-import org.springframework.amqp.core.Exchange;
-import org.springframework.amqp.core.Queue;
-import org.springframework.amqp.core.TopicExchange;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-import java.util.HashMap;
-import java.util.Map;
-
-@Configuration
-public class RunXiRabbitConfig {
-
- /**
- * 交换机
- *
- * @return
- */
- @Bean
- public Exchange RunxiEventExchange() {
- return new TopicExchange(YunxiRabbitConst.EXCHANGE_YUNXI_EVENT,
- true,
- false,
- null);
- }
-}
diff --git a/iot-common/iot-rabbit/src/main/java/com/qiuguo/iot/rabbit/service/MqSendMsgService.java b/iot-common/iot-rabbit/src/main/java/com/qiuguo/iot/rabbit/service/MqSendMsgService.java
deleted file mode 100644
index 9370d11..0000000
--- a/iot-common/iot-rabbit/src/main/java/com/qiuguo/iot/rabbit/service/MqSendMsgService.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package com.qiuguo.iot.rabbit.service;
-
-import org.springframework.amqp.rabbit.core.RabbitTemplate;
-import org.springframework.stereotype.Service;
-import reactor.core.publisher.Mono;
-
-import javax.annotation.Resource;
-
-/**
- * @author simon
- * @date 2023/9/25
- * @description
- **/
-@Service
-public class MqSendMsgService {
- @Resource
- private RabbitTemplate rabbitTemplate;
- public Mono sendRabbitMsg(String exchange, String routingKey, Object message) {
- return Mono.create(sink -> {
- rabbitTemplate.setConfirmCallback((correlation, ack, cause) -> {
- if (ack) {
- // 消息发送成功
- sink.success(Boolean.TRUE);
- } else {
- // 消息发送失败
- sink.error(new RuntimeException("Message send failed: " + cause));
- }
- });
-
- rabbitTemplate.convertAndSend(exchange, routingKey, message);
- });
- }
-}
diff --git a/iot-common/iot-third/pom.xml b/iot-common/iot-third/pom.xml
index 3ecd44b..44e7320 100644
--- a/iot-common/iot-third/pom.xml
+++ b/iot-common/iot-third/pom.xml
@@ -20,15 +20,7 @@
tuya-spring-boot-starter
1.3.2
-
- org.springframework.boot
- spring-boot-starter-test
- test
-
-
- org.springframework.boot
- spring-boot-starter-webflux
-
+
com.qiuguo.iot
iot-base
@@ -42,10 +34,31 @@
compile
- io.projectreactor
- reactor-test
+ org.testng
+ testng
+ RELEASE
test
+
+ org.springframework.boot
+ spring-boot-test
+ test
+
+
+ junit
+ junit
+ test
+
+
+ org.junit.jupiter
+ junit-jupiter-api
+ test
+
+
+ org.springframework.amqp
+ spring-rabbit
+
+
diff --git a/iot-common/iot-third/src/main/java/com/qiuguo/iot/third/service/MqService.java b/iot-common/iot-third/src/main/java/com/qiuguo/iot/third/service/MqService.java
new file mode 100644
index 0000000..beb294e
--- /dev/null
+++ b/iot-common/iot-third/src/main/java/com/qiuguo/iot/third/service/MqService.java
@@ -0,0 +1,67 @@
+package com.qiuguo.iot.third.service;
+
+import org.springframework.amqp.rabbit.core.RabbitTemplate;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import reactor.core.publisher.Mono;
+
+import java.util.concurrent.atomic.AtomicBoolean;
+
+/**
+ * @author simon
+ * @date 2023/9/26
+ * @description
+ **/
+
+@Service
+public class MqService {
+ private final RabbitTemplate rabbitTemplate;
+ private final AtomicBoolean confirmationResult = new AtomicBoolean(false);
+
+
+ @Autowired
+ public MqService(RabbitTemplate rabbitTemplate) {
+ this.rabbitTemplate = rabbitTemplate;
+
+ // 设置 ConfirmCallback
+ rabbitTemplate.setConfirmCallback((correlation, ack, cause) -> {
+ if (ack) {
+ // 消息发送成功
+ confirmationResult.set(true);
+ System.out.println("消息发送成功");
+ } else {
+ // 消息发送失败
+ confirmationResult.set(false);
+ System.out.println("消息发送失败");
+ }
+ });
+ }
+
+ public Mono sendMessageWithConfirmation(String exchange, String routingKey, Object message) {
+ rabbitTemplate.convertAndSend(exchange, routingKey, message);
+
+ return Mono.defer(() -> {
+ boolean result = confirmationResult.get();
+ return Mono.just(result);
+ });
+ }
+
+ public Mono