TRX 1 éve
szülő
commit
d921798eb5

+ 21 - 3
src/main/java/com/zswl/dataservice/controller/hardware/DeviceController.java

@@ -6,6 +6,7 @@ import com.zswl.dataservice.model.mqtt.DeviceInfoModel;
 import com.zswl.dataservice.model.mqtt.DeviceInfoSearchParam;
 import com.zswl.dataservice.model.mqtt.DeviceInfoUpdateRemark;
 import com.zswl.dataservice.service.mqtt.DeviceInfoService;
+import com.zswl.dataservice.type.FunctionType;
 import com.zswl.dataservice.utils.result.ResultContent;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
@@ -105,11 +106,28 @@ public class DeviceController {
     }
 
     @Operation(summary = "物模型数据")
-    @RequestMapping(value = "getDeviceIotMainData", method = {RequestMethod.GET})
-    public ResultContent<List<IotMainModel>> getDeviceIotMainData(
+    @RequestMapping(value = "getDeviceIotMainAttribute", method = {RequestMethod.GET})
+    public ResultContent<List<IotMainModel>> getDeviceIotMainAttribute(
             @Parameter(name = "deviceId", description = "数据ID", example = "")
             @RequestParam("deviceId") String deviceId) {
-        return deviceInfoService.getDeviceIotMain(deviceId);
+        return deviceInfoService.getDeviceIotMain(deviceId, FunctionType.Attribute);
     }
 
+    @Operation(summary = "事件管理")
+    @RequestMapping(value = "getDeviceIotMainEvent", method = {RequestMethod.GET})
+    public ResultContent<List<IotMainModel>> getDeviceIotMainEvent(
+            @Parameter(name = "deviceId", description = "数据ID", example = "")
+            @RequestParam("deviceId") String deviceId) {
+        return deviceInfoService.getDeviceIotMain(deviceId, FunctionType.Event);
+    }
+
+    @Operation(summary = "服务调用")
+    @RequestMapping(value = "getDeviceIotMainServer", method = {RequestMethod.GET})
+    public ResultContent<List<IotMainModel>> getDeviceIotMainServer(
+            @Parameter(name = "deviceId", description = "数据ID", example = "")
+            @RequestParam("deviceId") String deviceId) {
+        return deviceInfoService.getDeviceIotMain(deviceId, FunctionType.Server);
+    }
+
+
 }

+ 3 - 0
src/main/java/com/zswl/dataservice/dao/iot/IotMainDao.java

@@ -5,6 +5,7 @@ import com.zswl.dataservice.dao.iot.extend.IotMainDaoExtend;
 import com.zswl.dataservice.dao.mqtt.extend.DeviceInfoDaoExtend;
 import com.zswl.dataservice.domain.iot.IotMain;
 import com.zswl.dataservice.domain.iot.IotTemplate;
+import com.zswl.dataservice.type.FunctionType;
 
 import java.util.List;
 
@@ -18,4 +19,6 @@ public interface IotMainDao extends MongoDao<IotMain>, IotMainDaoExtend {
 
     List<IotMain> findByIotTemplateOrderByCreateTimeAsc(IotTemplate iotTemplate);
 
+    List<IotMain> findByIotTemplateAndFunctionTypeOrderByCreateTimeAsc(IotTemplate iotTemplate, FunctionType functionType);
+
 }

+ 5 - 0
src/main/java/com/zswl/dataservice/dao/mqtt/impl/OperationLogsDaoImpl.java

@@ -49,6 +49,11 @@ public class OperationLogsDaoImpl extends BaseImpl implements OperationLogsDaoEx
             criteria.and("level").is(param.getLevel());
         }
 
+        // 日志关联数据ID
+        if (StringUtils.isNotEmpty(param.getDataId())) {
+            criteria.and("dataId").is(param.getDataId());
+        }
+
         // 模糊搜索
         List<Criteria> criterias = new ArrayList<>();
         if (StringUtils.isNotEmpty(param.getContent())) {

+ 4 - 0
src/main/java/com/zswl/dataservice/domain/iot/IotMain.java

@@ -3,6 +3,7 @@ package com.zswl.dataservice.domain.iot;
 import com.zswl.dataservice.domain.base.SuperEntity;
 import com.zswl.dataservice.type.DataType;
 import com.zswl.dataservice.type.FunctionType;
+import com.zswl.dataservice.type.OperationType;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -43,6 +44,9 @@ public class IotMain extends SuperEntity {
     @Schema(description = "物模型Topic")
     private String iotTopic;
 
+    @Schema(description = "设备操作权限")
+    private OperationType operationType;
+
     @Schema(description = "所属模版")
     @DBRef(lazy = true)
     IotTemplate iotTemplate;

+ 7 - 0
src/main/java/com/zswl/dataservice/domain/mqtt/OperationLogs.java

@@ -1,10 +1,13 @@
 package com.zswl.dataservice.domain.mqtt;
 
 import com.zswl.dataservice.domain.base.SuperEntity;
+import com.zswl.dataservice.type.MessageType;
+import com.zswl.dataservice.type.ResponseCode;
 import com.zswl.dataservice.utils.mqtt.type.LoginType;
 import com.zswl.dataservice.utils.mqtt.type.LogsLevel;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
+import okhttp3.Response;
 
 /**
  * @author TRX
@@ -46,5 +49,9 @@ public class OperationLogs extends SuperEntity {
     @Schema(description = "关联保存关联信息")
     private Object backObj;
 
+    @Schema(description = "消息类型")
+    private MessageType messageType;
 
+    @Schema(description = "响应姿态")
+    private ResponseCode responseCode;
 }

+ 31 - 0
src/main/java/com/zswl/dataservice/model/iot/IotMainModel.java

@@ -4,6 +4,7 @@ import com.zswl.dataservice.domain.iot.IotTemplate;
 import com.zswl.dataservice.model.baseParam.SuperModel;
 import com.zswl.dataservice.type.DataType;
 import com.zswl.dataservice.type.FunctionType;
+import com.zswl.dataservice.type.OperationType;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotEmpty;
 import lombok.AllArgsConstructor;
@@ -27,12 +28,30 @@ public class IotMainModel extends SuperModel {
     @Schema(description = "功能类型")
     FunctionType functionType;
 
+    private String functionTypeStr;
+
+    public String getFunctionTypeStr() {
+        if (functionType != null) {
+            return functionType.getRemark();
+        }
+        return "";
+    }
+
     @Schema(description = "标识符")
     private String identifier;
 
     @Schema(description = "数据类型")
     private DataType dataType;
 
+    private String dataTypeStr;
+
+    public String getDataTypeStr() {
+        if (dataType != null) {
+            return dataType.getRemark();
+        }
+        return "";
+    }
+
     @Schema(description = "数据定义")
     private LinkedHashMap<String, Object> data;
 
@@ -41,4 +60,16 @@ public class IotMainModel extends SuperModel {
 
     @Schema(description = "所属模版")
     IotTemplateModel iotTemplate;
+
+    @Schema(description = "设备操作权限")
+    private OperationType operationType;
+
+    private String operationTypeStr;
+
+    public String getOperationTypeStr() {
+        if (operationType != null) {
+            return operationType.getRemark();
+        }
+        return "";
+    }
 }

+ 44 - 0
src/main/java/com/zswl/dataservice/model/operLogs/OperationLogsModel.java

@@ -1,6 +1,8 @@
 package com.zswl.dataservice.model.operLogs;
 
 import com.zswl.dataservice.model.baseParam.SuperModel;
+import com.zswl.dataservice.type.MessageType;
+import com.zswl.dataservice.type.ResponseCode;
 import com.zswl.dataservice.utils.mqtt.type.LoginType;
 import com.zswl.dataservice.utils.mqtt.type.LogsLevel;
 import io.swagger.v3.oas.annotations.media.Schema;
@@ -31,9 +33,51 @@ public class OperationLogsModel extends SuperModel {
     @Schema(description = "日志操作端类型")
     private LoginType loginType;
 
+    private String loginTypeStr;
+
+    public String getLoginTypeStr() {
+        if (loginType != null) {
+            return loginType.getRemark();
+        }
+        return "";
+    }
+
     @Schema(description = "日志内容")
     private String content;
 
     @Schema(description = "日志级别,重要程度")
     private LogsLevel level;
+
+    private String levelStr;
+
+    public String getLevelStr() {
+        if (level != null) {
+            return level.getRemark();
+        }
+        return "";
+    }
+
+    @Schema(description = "消息类型")
+    private MessageType messageType;
+
+    private String messageTypeStr;
+
+    public String getMessageTypeStr() {
+        if (messageType != null) {
+            return messageType.getRemark();
+        }
+        return "";
+    }
+
+    @Schema(description = "响应姿态")
+    private ResponseCode responseCode;
+
+    private String responseCodeStr;
+
+    public String getResponseCodeStr() {
+        if (responseCode != null) {
+            return responseCode.getRemark();
+        }
+        return "";
+    }
 }

+ 3 - 0
src/main/java/com/zswl/dataservice/model/operLogs/OperationLogsSearchParam.java

@@ -33,6 +33,9 @@ public class OperationLogsSearchParam extends SuperSearchParam {
     @Schema(description = "日志级别,重要程度")
     private LogsLevel level;
 
+    @Schema(description = "数据ID")
+    private String dataId;
+
     @Schema(description = "日志内容")
     private String content;
 }

+ 3 - 2
src/main/java/com/zswl/dataservice/service/iot/IotServiceImpl.java

@@ -13,6 +13,7 @@ import com.zswl.dataservice.model.iot.*;
 import com.zswl.dataservice.model.mqtt.DeviceInfoModel;
 import com.zswl.dataservice.model.mqtt.DeviceInfoSearchParam;
 import com.zswl.dataservice.service.base.SuperService;
+import com.zswl.dataservice.type.FunctionType;
 import com.zswl.dataservice.utils.bean.BeanUtil;
 import com.zswl.dataservice.utils.bean.BeanUtils;
 import com.zswl.dataservice.utils.page.PageEntityUtil;
@@ -221,8 +222,8 @@ public class IotServiceImpl extends SuperService {
      * @param templateId
      * @return
      */
-    public ResultContent<List<IotMainModel>> getTemplateIotMainList(String templateId) {
-        List<IotMain> list = iotMainDao.findByIotTemplateOrderByCreateTimeAsc(IotTemplate.build(templateId));
+    public ResultContent<List<IotMainModel>> getTemplateIotMainList(String templateId, FunctionType functionType) {
+        List<IotMain> list = iotMainDao.findByIotTemplateAndFunctionTypeOrderByCreateTimeAsc(IotTemplate.build(templateId), functionType);
         List<IotMainModel> models = new ArrayList<>();
         if (ObjectUtils.isNotEmpty(list)) {
             models = list.stream().map(this::toModel).collect(Collectors.toList());

+ 10 - 8
src/main/java/com/zswl/dataservice/service/mqtt/DeviceInfoService.java

@@ -13,6 +13,7 @@ import com.zswl.dataservice.model.mqtt.DeviceInfoModel;
 import com.zswl.dataservice.model.mqtt.DeviceInfoSearchParam;
 import com.zswl.dataservice.model.mqtt.DeviceInfoUpdateRemark;
 import com.zswl.dataservice.service.iot.IotServiceImpl;
+import com.zswl.dataservice.type.FunctionType;
 import com.zswl.dataservice.utils.bean.BeanUtils;
 import com.zswl.dataservice.utils.mqtt.type.LogsLevel;
 import com.zswl.dataservice.utils.page.PageEntityUtil;
@@ -192,23 +193,24 @@ public class DeviceInfoService {
     /**
      * 得到设备关联的物模型定义
      *
-     * @param id
+     * @param deviceId
      * @return
      */
-    public ResultContent<List<IotMainModel>> getDeviceIotMain(String id) {
-        DeviceInfo deviceInfo = deviceInfoDao.findTopById(id);
+    public ResultContent<List<IotMainModel>> getDeviceIotMain(String deviceId, FunctionType functionType) {
+        DeviceInfo deviceInfo = deviceInfoDao.findTopByDeviceId(deviceId);
         if (ObjectUtils.isEmpty(deviceInfo)) {
-            return ResultContent.buildFail(String.format(ResultMessage.DATA_NOT_EXIST, id));
+            return ResultContent.buildFail(String.format(ResultMessage.DATA_NOT_EXIST, deviceId));
         }
         List<IotMainModel> models = new ArrayList<>();
         if (deviceInfo.getIotTemplate() != null) {
-            ResultContent<List<IotMainModel>> resultContent = iotService.getTemplateIotMainList(deviceInfo.getIotTemplate().getId());
+            ResultContent<List<IotMainModel>> resultContent = iotService.getTemplateIotMainList(deviceInfo.getIotTemplate().getId(), functionType);
             models = resultContent.getContent();
         }
-
         return ResultContent.buildSuccess(models);
     }
 
+
+
     /**
      * 删除设备
      *
@@ -225,9 +227,9 @@ public class DeviceInfoService {
         return ResultContent.buildSuccess();
     }
 
-    public ResultContent<DeviceInfoModel> getDeviceById(String id) {
+    public ResultContent<DeviceInfoModel> getDeviceById(String deviceId) {
         DeviceInfoModel model = null;
-        DeviceInfo deviceInfo = deviceInfoDao.findTopById(id);
+        DeviceInfo deviceInfo = deviceInfoDao.findTopByDeviceId(deviceId);
         if (ObjectUtils.isNotEmpty(deviceInfo)) {
             model = toModel(deviceInfo);
         }

+ 7 - 3
src/main/java/com/zswl/dataservice/type/DataType.java

@@ -3,11 +3,15 @@ package com.zswl.dataservice.type;
 import lombok.Getter;
 
 /**
- *
+ * 数据类型
  */
 public enum DataType {
-    Number("订阅"),
-    Psh("发布"),
+    Number("数字"),
+    Bool("布尔值"),
+    Text("字符串"),
+    Date("日期"),
+    Time("时间"),
+    DateTime("日期时间"),
     ;
 
     @Getter

+ 2 - 1
src/main/java/com/zswl/dataservice/type/FunctionType.java

@@ -3,11 +3,12 @@ package com.zswl.dataservice.type;
 import lombok.Getter;
 
 /**
- *
+ * 功能类型
  */
 public enum FunctionType {
     Attribute("属性"),
     Event("事件"),
+    Server("服务"),
     ;
 
     @Getter

+ 20 - 0
src/main/java/com/zswl/dataservice/type/MessageType.java

@@ -0,0 +1,20 @@
+package com.zswl.dataservice.type;
+
+import lombok.Getter;
+
+/**
+ * 数据类型
+ */
+public enum MessageType {
+    Info("消息"),
+    Warn("警告"),
+    Error("故障"),
+    ;
+
+    @Getter
+    private String remark;
+
+    MessageType(String remark) {
+        this.remark = remark;
+    }
+}

+ 1 - 0
src/main/java/com/zswl/dataservice/type/OperationType.java

@@ -8,6 +8,7 @@ import lombok.Getter;
 public enum OperationType {
     Sub("订阅"),
     Psh("发布"),
+    PshAndSub("发布和发布"),
     ;
 
     @Getter

+ 18 - 0
src/main/java/com/zswl/dataservice/type/ResponseCode.java

@@ -0,0 +1,18 @@
+package com.zswl.dataservice.type;
+
+import lombok.Getter;
+
+/**
+ * 响应类型
+ */
+public enum ResponseCode {
+    C200("200"),
+    ;
+
+    @Getter
+    private String remark;
+
+    ResponseCode(String remark) {
+        this.remark = remark;
+    }
+}