From 8ef73a8875b9b618e471aafc383f85ba6ab7a154 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期三, 11 十二月 2024 19:17:10 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/produce/IotMessageProduce.java |   61 ++++++++++++++++++++++++++++++
 1 files changed, 60 insertions(+), 1 deletions(-)

diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/produce/IotMessageProduce.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/produce/IotMessageProduce.java
index 6e386cb..009e8f1 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/produce/IotMessageProduce.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/produce/IotMessageProduce.java
@@ -1,13 +1,72 @@
 package com.ruoyi.integration.iotda.utils.produce;
 
+import com.alibaba.fastjson2.JSONObject;
+import com.huaweicloud.sdk.core.exception.ConnectionException;
+import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
+import com.huaweicloud.sdk.core.exception.ServiceResponseException;
+import com.huaweicloud.sdk.iotda.v5.IoTDAClient;
+import com.huaweicloud.sdk.iotda.v5.model.CreateMessageRequest;
+import com.huaweicloud.sdk.iotda.v5.model.CreateMessageResponse;
+import com.huaweicloud.sdk.iotda.v5.model.DeviceMessageRequest;
+import com.ruoyi.common.core.utils.uuid.UUID;
+import com.ruoyi.integration.iotda.builder.IotBuilder;
+import com.ruoyi.integration.iotda.config.IotDAConfig;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RestController;
 
 /**
  * iotda消息发送
  */
 @Slf4j
-@Component
+@RestController
 public class IotMessageProduce {
+
+    @Autowired
+    private IotBuilder iotBuilder;
     
+    @Autowired
+    private IotDAConfig config;
+    
+
+    /**
+     * 设备消息下发
+     * @param name 消息名称
+     * @param message 消息内容
+     * @return
+     */
+    @PostMapping("/sendMessage")
+    public String sendMessage(String code, String name, JSONObject message){
+        CreateMessageRequest request = new CreateMessageRequest();
+        System.err.println(code);
+        System.err.println(JSONObject.toJSONString(config));
+        if(config.getTest() && code.equals(config.getTestDriverCode())){
+            request.withDeviceId(config.getTestDeviceId());
+        }else{
+            request.withDeviceId(config.getDeviceId());
+        }
+        DeviceMessageRequest body = new DeviceMessageRequest();
+        body.withMessageId(UUID.randomUUID().toString());
+        body.withName(name);
+        body.withMessage(message);
+        request.withBody(body);
+        try {
+            CreateMessageResponse response = iotBuilder.buildIot().createMessage(request);
+            System.out.println(response.toString());
+        } catch (ConnectionException e) {
+            e.printStackTrace();
+        } catch (RequestTimeoutException e) {
+            e.printStackTrace();
+        } catch (ServiceResponseException e) {
+            e.printStackTrace();
+            System.out.println(e.getHttpStatusCode());
+            System.out.println(e.getRequestId());
+            System.out.println(e.getErrorCode());
+            System.out.println(e.getErrorMsg());
+        }
+        return null;
+    }
+
 }
\ No newline at end of file

--
Gitblit v1.7.1