From c778ca5abcb7e5b59d3f94b546e17c6ee7e9c7e5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=A2=A8=E5=A4=A7=E5=8F=94?= <494979559@qq.com>
Date: Mon, 22 Jul 2024 17:45:59 +0800
Subject: [PATCH] =?UTF-8?q?debug:=E8=AE=BE=E5=A4=87=E6=93=8D=E4=BD=9C?=
 =?UTF-8?q?=E6=8F=90=E7=A4=BA=E4=BC=98=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../com/ruoyi/common/constant/HttpStatus.java | 117 +-----------------
 .../iot/domain/response/CommandResponse.java  |   3 +-
 .../com/ruoyi/iot/enums/IotHttpStatus.java    |  25 +++-
 .../com/ruoyi/iot/service/IotServiceImpl.java |  25 ++--
 4 files changed, 43 insertions(+), 127 deletions(-)

diff --git a/smart-switch-ruoyi/smart-switch-common/src/main/java/com/ruoyi/common/constant/HttpStatus.java b/smart-switch-ruoyi/smart-switch-common/src/main/java/com/ruoyi/common/constant/HttpStatus.java
index 61e7bd7a..b377d4bd 100644
--- a/smart-switch-ruoyi/smart-switch-common/src/main/java/com/ruoyi/common/constant/HttpStatus.java
+++ b/smart-switch-ruoyi/smart-switch-common/src/main/java/com/ruoyi/common/constant/HttpStatus.java
@@ -2,7 +2,7 @@ package com.ruoyi.common.constant;
 
 /**
  * 返回状态码
- * 
+ *
  * @author ruoyi
  */
 public class HttpStatus
@@ -92,119 +92,4 @@ public class HttpStatus
      */
     public static final int WARN = 601;
 
-    /**----------------------------IOT错误码start----------------------------*/
-
-    /**
-     * 成功
-     */
-    public static final Integer IOT_SUCCESS = 0;
-    /**
-     * 错误码  新增设备失败:设备已存在
-     */
-    public static final String ERROR_CODE_DEVICE_ALREADY_EXISTS = "10406";
-
-    /**
-     * 错误码  设备不存在
-     */
-    public static final String ERROR_CODE_DEVICE_NON_EXISTENT = "10410";
-    /**
-     * 错误码  设备属性设置失败
-     */
-    public static final String ERROR_CODE_DEVICE_ATTRIBUTE_SET_FAIL = "10411";
-    /**
-     * 错误码  设备属性期望设置失败
-     */
-    public static final String ERROR_CODE_DEVICE_ATTRIBUTE_DESIRE_SET_FAIL = "10412";
-    /**
-     * 错误码  设备属性期望查询失败
-     */
-    public static final String ERROR_CODE_DEVICE_ATTRIBUTE_DESIRE_QUERY_FAIL = "10413";
-    /**
-     * 错误码  设备属性获取失败
-     */
-    public static final String ERROR_CODE_DEVICE_ATTRIBUTE_DESIRE_GET_FAIL = "10414";
-    /**
-     * 错误码  设备服务调用失败
-     */
-    public static final String ERROR_CODE_DEVICE_SERVICE_CALL_FAIL = "10415";
-    /**
-     * 错误码  设备属性期望删除失败
-     */
-    public static final String ERROR_CODE_DEVICE_ATTRIBUTE_DESIRE_DALETE_FAIL = "10416";
-    /**
-     * 错误码  设备最新数据查询失败
-     */
-    public static final String ERROR_CODE_DEVIE_NEW_DATA_QUERY_FAIL = "10417";
-    /**
-     * 错误码  设备属性历史数据查询失败
-     */
-    public static final String ERROR_CODE_DEVICE_ATTRIBUTE_HISTORY_QUERY_FAIL = "10418";
-    /**
-     * 错误码  设备事件历史数据查询失败
-     */
-    public static final String ERROR_CODE_DEVICE_EVENT_HISTORY_DATA_QUERY_FAIL = "10419";
-    /**
-     * 错误码  设备操作记录查询失败
-     */
-    public static final String ERROR_CODE_DEVICE_OPERATE_RECORD_QUERY_FAIL = "10420";
-    /**
-     * 错误码  设备不在线
-     */
-    public static final String ERROR_CODE_DEVICE_NOT_ONLINE = "10421";
-
-    /**
-     * 错误码  新增设备失败:设备已存在
-     */
-    public static final String ERROR_CODE_DEVICE_ALREADY_EXISTS_MSG = "10406";
-
-    /**
-     * 错误码  设备不存在
-     */
-    public static final String ERROR_CODE_DEVICE_NON_EXISTENT_MSG = "设备不存在";
-    /**
-     * 错误码  设备属性设置失败
-     */
-    public static final String ERROR_CODE_DEVICE_ATTRIBUTE_SET_FAIL_MSG = "设备属性设置失败";
-    /**
-     * 错误码  设备属性期望设置失败
-     */
-    public static final String ERROR_CODE_DEVICE_ATTRIBUTE_DESIRE_SET_FAIL_MSG = "设备属性期望设置失败";
-    /**
-     * 错误码  设备属性期望查询失败
-     */
-    public static final String ERROR_CODE_DEVICE_ATTRIBUTE_DESIRE_QUERY_FAIL_MSG = "设备属性期望查询失败";
-    /**
-     * 错误码  设备属性获取失败
-     */
-    public static final String ERROR_CODE_DEVICE_ATTRIBUTE_DESIRE_GET_FAIL_MSG = "设备属性获取失败";
-    /**
-     * 错误码  设备服务调用失败
-     */
-    public static final String ERROR_CODE_DEVICE_SERVICE_CALL_FAIL_MSG = "设备服务调用失败";
-    /**
-     * 错误码  设备属性期望删除失败
-     */
-    public static final String ERROR_CODE_DEVICE_ATTRIBUTE_DESIRE_DALETE_FAIL_MSG = "设备属性期望删除失败";
-    /**
-     * 错误码  设备最新数据查询失败
-     */
-    public static final String ERROR_CODE_DEVIE_NEW_DATA_QUERY_FAIL_MSG = "设备最新数据查询失败";
-    /**
-     * 错误码  设备属性历史数据查询失败
-     */
-    public static final String ERROR_CODE_DEVICE_ATTRIBUTE_HISTORY_QUERY_FAIL_MSG = "设备属性历史数据查询失败";
-    /**
-     * 错误码  设备事件历史数据查询失败
-     */
-    public static final String ERROR_CODE_DEVICE_EVENT_HISTORY_DATA_QUERY_FAIL_MSG = "设备事件历史数据查询失败";
-    /**
-     * 错误码  设备操作记录查询失败
-     */
-    public static final String ERROR_CODE_DEVICE_OPERATE_RECORD_QUERY_FAIL_MSG = "设备操作记录查询失败";
-    /**
-     * 错误码  设备不在线
-     */
-    public static final String ERROR_CODE_DEVICE_NOT_ONLINE_MSG = "设备不在线";
-
-    /**----------------------------IOT错误码end----------------------------*/
 }
diff --git a/smart-switch-service/src/main/java/com/ruoyi/iot/domain/response/CommandResponse.java b/smart-switch-service/src/main/java/com/ruoyi/iot/domain/response/CommandResponse.java
index c8b6fb7d..0f03d348 100644
--- a/smart-switch-service/src/main/java/com/ruoyi/iot/domain/response/CommandResponse.java
+++ b/smart-switch-service/src/main/java/com/ruoyi/iot/domain/response/CommandResponse.java
@@ -1,6 +1,7 @@
 package com.ruoyi.iot.domain.response;
 
 import com.ruoyi.common.constant.HttpStatus;
+import com.ruoyi.iot.enums.IotHttpStatus;
 import lombok.Data;
 
 import java.util.Objects;
@@ -17,7 +18,7 @@ public class CommandResponse extends BaseResponse {
     private String cmdResp;
 
     public boolean isSuccess() {
-        return Objects.equals(HttpStatus.IOT_SUCCESS, this.getCode());
+        return Objects.equals(IotHttpStatus.SUCCESS.getCode(), this.getCode());
     }
 
 }
diff --git a/smart-switch-service/src/main/java/com/ruoyi/iot/enums/IotHttpStatus.java b/smart-switch-service/src/main/java/com/ruoyi/iot/enums/IotHttpStatus.java
index ad5d8a4c..3a76d4d1 100644
--- a/smart-switch-service/src/main/java/com/ruoyi/iot/enums/IotHttpStatus.java
+++ b/smart-switch-service/src/main/java/com/ruoyi/iot/enums/IotHttpStatus.java
@@ -12,7 +12,20 @@ import lombok.Getter;
 public enum IotHttpStatus {
 
     SUCCESS(0, "成功"),
-    DEVICE_EXIST(10406, "设备已存在");
+    DEVICE_EXIST(10406, "设备已存在"),
+    DEVICE_NON_EXISTENT(10410, "设备不存在"),
+    DEVICE_ATTRIBUTE_SET_FAIL(10411, "设备属性设置失败"),
+    DEVICE_ATTRIBUTE_DESIRE_SET_FAIL(10412, "设备属性期望设置失败"),
+    DEVICE_ATTRIBUTE_DESIRE_QUERY_FAIL(10413, "设备属性期望查询失败"),
+    DEVICE_ATTRIBUTE_DESIRE_GET_FAIL(10414, "设备属性获取失败"),
+    DEVICE_SERVICE_CALL_FAIL(10415, "设备服务调用失败"),
+    DEVICE_ATTRIBUTE_DESIRE_DELETE_FAIL(10416, "设备属性期望删除失败"),
+    DEVICE_NEW_DATA_QUERY_FAIL(10417, "设备最新数据查询失败"),
+    DEVICE_ATTRIBUTE_HISTORY_QUERY_FAIL(10418, "设备属性历史数据查询失败"),
+    DEVICE_EVENT_HISTORY_DATA_QUERY_FAIL(10419, "设备事件历史数据查询失败"),
+    DEVICE_OPERATE_RECORD_QUERY_FAIL(10420, "设备操作记录查询失败"),
+    DEVICE_NOT_ONLINE(10421, "设备不在线"),
+    UNKNOWN_ERROR(null, "未知错误");
 
     private final Integer code;
     private final String msg;
@@ -20,4 +33,14 @@ public enum IotHttpStatus {
     public boolean equalCode(int code) {
         return this.code == code;
     }
+
+    // 将code转换为枚举
+    public static IotHttpStatus convertByCode(int code) {
+        for (IotHttpStatus status : IotHttpStatus.values()) {
+            if (status.getCode() == code) {
+                return status;
+            }
+        }
+        return UNKNOWN_ERROR;
+    }
 }
diff --git a/smart-switch-service/src/main/java/com/ruoyi/iot/service/IotServiceImpl.java b/smart-switch-service/src/main/java/com/ruoyi/iot/service/IotServiceImpl.java
index bf5a6c17..2fe9f2d2 100644
--- a/smart-switch-service/src/main/java/com/ruoyi/iot/service/IotServiceImpl.java
+++ b/smart-switch-service/src/main/java/com/ruoyi/iot/service/IotServiceImpl.java
@@ -14,6 +14,7 @@ import com.ruoyi.iot.domain.response.CommandResponse;
 import com.ruoyi.iot.domain.response.CurrentDataPointResponse;
 import com.ruoyi.iot.domain.response.DetailResponse;
 import com.ruoyi.iot.domain.response.HistoryDataPointResponse;
+import com.ruoyi.iot.enums.IotHttpStatus;
 import com.ruoyi.iot.util.CommandBuilder;
 import com.ruoyi.ss.device.domain.Device;
 import com.ruoyi.ss.device.domain.enums.DeviceOnlineStatus;
@@ -67,7 +68,7 @@ public class IotServiceImpl implements IotService {
             return DeviceOnlineStatus.OFFLINE;
         }
 //        CommandResponse response = sendCommand(deviceName, "111");
-//        return HttpStatus.IOT_SUCCESS.equals(response.getCode()) ? DeviceOnlineStatus.ONLINE : DeviceOnlineStatus.OFFLINE;
+//        return IotHttpStatus.SUCCESS.getCode().equals(response.getCode()) ? DeviceOnlineStatus.ONLINE : DeviceOnlineStatus.OFFLINE;
 
         IotDeviceDetail detail = this.getDeviceDetail(deviceName);
         if (detail == null) {
@@ -81,16 +82,22 @@ public class IotServiceImpl implements IotService {
     @Override
     public boolean open(String deviceName) {
         CommandResponse response = sendCommand(deviceName, IotConstants.COMMAND_OPEN);
-        ServiceUtil.assertion(!HttpStatus.IOT_SUCCESS.equals(response.getCode()), "通电发生异常:" + response.getMsg());
-        return HttpStatus.IOT_SUCCESS.equals(response.getCode());
+        IotHttpStatus status = IotHttpStatus.convertByCode(response.getCode());
+        if (!IotHttpStatus.SUCCESS.equals(status)) {
+            throw new ServiceException("通电发生异常:" + status.getMsg());
+        }
+        return true;
     }
 
     // 断电
     @Override
     public boolean close(String deviceName) {
         CommandResponse response = sendCommand(deviceName, IotConstants.COMMAND_CLOSE);
-        ServiceUtil.assertion(!HttpStatus.IOT_SUCCESS.equals(response.getCode()), "断电发生异常:" + response.getMsg());
-        return HttpStatus.IOT_SUCCESS.equals(response.getCode());
+        IotHttpStatus status = IotHttpStatus.convertByCode(response.getCode());
+        if (!IotHttpStatus.SUCCESS.equals(status)) {
+            throw new ServiceException("断电发生异常:" + status.getMsg());
+        }
+        return true;
     }
 
     // 获取历史设备数据点信息
@@ -109,7 +116,7 @@ public class IotServiceImpl implements IotService {
             return null;
         }
         HistoryDataPointResponse response = JSONObject.parseObject(result, HistoryDataPointResponse.class);
-        if (!HttpStatus.IOT_SUCCESS.equals(response.getCode())) {
+        if (!IotHttpStatus.SUCCESS.getCode().equals(response.getCode())) {
             log.error("获取历史设备数据点信息出错:" + response.getMsg());
             return null;
         }
@@ -130,7 +137,7 @@ public class IotServiceImpl implements IotService {
             return Collections.emptyList();
         }
         CurrentDataPointResponse response = JSONObject.parseObject(result, CurrentDataPointResponse.class);
-        if (!HttpStatus.IOT_SUCCESS.equals(response.getCode())) {
+        if (!IotHttpStatus.SUCCESS.getCode().equals(response.getCode())) {
             log.error("获取当前设备数据点信息出错:" + response.getMsg());
             return Collections.emptyList();
         }
@@ -162,7 +169,7 @@ public class IotServiceImpl implements IotService {
             return null;
         }
         DetailResponse response = JSONObject.parseObject(result, DetailResponse.class);
-        if (!HttpStatus.IOT_SUCCESS.equals(response.getCode())) {
+        if (!IotHttpStatus.SUCCESS.getCode().equals(response.getCode())) {
             log.error("获取当前设备数据点信息出错:{}", response.getMsg());
             return null;
         }
@@ -204,7 +211,7 @@ public class IotServiceImpl implements IotService {
                 .setIfNull(IotConstants.COMMAND_OUTAGE_WAY, deviceOutageWay.getValue() , DeviceOutageWay.IMMEDIATE.getValue())
                 .build();
         CommandResponse response = sendCommand(device.getMac(), command);
-        ServiceUtil.assertion(!Objects.equals(HttpStatus.IOT_SUCCESS, response.getCode()), "修改设备设置发生异常:" + response.getMsg());
+        ServiceUtil.assertion(!Objects.equals(IotHttpStatus.SUCCESS.getCode(), response.getCode()), "修改设备设置发生异常:" + response.getMsg());
         return true;
     }