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); } }