xuhy
2024-08-22 ab51b6b68ff47c82337dddb9beae334bc28007c4
硬件消息
3个文件已修改
2个文件已添加
128 ■■■■■ 已修改文件
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/config/IotDAConfig.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/constant/ServiceIdConstant.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/listener/IotMessageListener.java 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/produce/IotMessageProduce.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/tools/MessageUtil.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/config/IotDAConfig.java
@@ -12,11 +12,11 @@
public class IotDAConfig {
    /**
     * ak配置
     * ak配置  SSD4HKIJPFO68W8QFSNG
     */
    private String ak;
    /**
     * sk配置
     * sk配置  8Obp0fPsyFQ3bQUIaO2kKrS3XVPMOlXZ1nqPgK2k
     */
    private String sk;
    /**
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/constant/ServiceIdConstant.java
New file
@@ -0,0 +1,9 @@
package com.ruoyi.integration.iotda.constant;
public class ServiceIdConstant {
    /**
     * 登录认证应答
     */
    public static final String ONLINE_REPLY = "online_reply";
}
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/listener/IotMessageListener.java
@@ -1,13 +1,32 @@
package com.ruoyi.integration.iotda.utils.listener;
import com.alibaba.fastjson.JSONObject;
import com.ruoyi.common.core.web.domain.AjaxResult;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import java.io.IOException;
/**
 * iotda消息监听
 */
@Slf4j
@Component
@RestController
public class IotMessageListener {
    /**
     * 设备消息监听
     * @param jsonObject
     * @return
     * @throws IOException
     */
    @PostMapping(value = "/message")
    public AjaxResult<Integer> add(@RequestBody JSONObject jsonObject) throws IOException {
        System.err.println(jsonObject);
        return AjaxResult.success();
    }
}
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/produce/IotMessageProduce.java
@@ -1,6 +1,17 @@
package com.ruoyi.integration.iotda.utils.produce;
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;
/**
@@ -9,5 +20,40 @@
@Slf4j
@Component
public class IotMessageProduce {
    @Autowired
    private IotBuilder iotBuilder;
    /**
     * 设备消息下发
     * @param deviceId 设备id
     * @param name 消息名称
     * @param message 消息内容
     * @return
     */
    public String sendMessage(String deviceId,String name,String message){
        CreateMessageRequest request = new CreateMessageRequest();
        request.withDeviceId(deviceId);
        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;
    }
}
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/tools/MessageUtil.java
New file
@@ -0,0 +1,42 @@
package com.ruoyi.integration.iotda.utils.tools;
import com.alibaba.fastjson2.JSONObject;
import com.ruoyi.integration.iotda.constant.ServiceIdConstant;
import java.util.HashMap;
import java.util.Map;
public class MessageUtil {
    /**
     * 登录认证应答
     * @param charging_pile_code  桩编码
     * @param online_result 登录结果(0:成功,1:失败)
     * @return
     */
    public static String onlineReply(String charging_pile_code,Integer online_result){
        Map<String,Object> map = new HashMap<>(3);
        map.put("service_id", ServiceIdConstant.ONLINE_REPLY);
        map.put("charging_pile_code",charging_pile_code);
        map.put("online_result",online_result);
        return JSONObject.toJSONString(map);
    }
    /**
     * 心跳包应答
     * @param charging_pile_code 桩编码
     * @param charging_gun_code 枪号
     * @param charging_gun_status 心跳应答(0)
     * @return
     */
    public static String pong(String charging_pile_code,String charging_gun_code,Integer charging_gun_status){
        Map<String,Object> map = new HashMap<>(3);
        map.put("service_id", ServiceIdConstant.ONLINE_REPLY);
        map.put("charging_pile_code",charging_pile_code);
        map.put("charging_gun_code",charging_gun_code);
        map.put("charging_gun_status",charging_gun_status);
        return JSONObject.toJSONString(map);
    }
}