diff --git a/yudao-module-iot/yudao-module-iot-api/src/main/java/cn/iocoder/yudao/module/iot/enums/device/IotDeviceMessageIdentifierEnum.java b/yudao-module-iot/yudao-module-iot-api/src/main/java/cn/iocoder/yudao/module/iot/enums/device/IotDeviceMessageIdentifierEnum.java index 6de9359ba0..a06b43ce96 100644 --- a/yudao-module-iot/yudao-module-iot-api/src/main/java/cn/iocoder/yudao/module/iot/enums/device/IotDeviceMessageIdentifierEnum.java +++ b/yudao-module-iot/yudao-module-iot-api/src/main/java/cn/iocoder/yudao/module/iot/enums/device/IotDeviceMessageIdentifierEnum.java @@ -11,7 +11,7 @@ import lombok.RequiredArgsConstructor; @RequiredArgsConstructor public enum IotDeviceMessageIdentifierEnum { - PROPERTY_GET("get"), // 下行 TODO 芋艿:【讨论】貌似这个“上行”更合理?device 主动拉取配置。和 IotDevicePropertyGetReqDTO 一样的配置 + PROPERTY_GET("get"), // 下行 PROPERTY_SET("set"), // 下行 PROPERTY_REPORT("report"), // 上行 diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/device/vo/data/IotDeviceLogPageReqVO.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/device/vo/data/IotDeviceLogPageReqVO.java index fcf36994fc..234869993e 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/device/vo/data/IotDeviceLogPageReqVO.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/device/vo/data/IotDeviceLogPageReqVO.java @@ -9,6 +9,7 @@ import lombok.Data; @Data public class IotDeviceLogPageReqVO extends PageParam { + // TODO @芋艿:【优先级:中】改成通过 deviceId 查询;然后转换下; @Schema(description = "设备标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "device123") @NotEmpty(message = "设备标识不能为空") private String deviceKey; diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/dataobject/device/IotDeviceLogDO.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/dataobject/device/IotDeviceLogDO.java index 55cfb19d4e..deb353f75d 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/dataobject/device/IotDeviceLogDO.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/dataobject/device/IotDeviceLogDO.java @@ -1,10 +1,10 @@ package cn.iocoder.yudao.module.iot.dal.dataobject.device; import cn.hutool.core.util.IdUtil; +import cn.iocoder.yudao.module.iot.core.mq.message.IotDeviceMessage; import cn.iocoder.yudao.module.iot.dal.dataobject.product.IotProductDO; import cn.iocoder.yudao.module.iot.enums.device.IotDeviceMessageIdentifierEnum; import cn.iocoder.yudao.module.iot.enums.device.IotDeviceMessageTypeEnum; -import cn.iocoder.yudao.module.iot.mq.message.IotDeviceMessage; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -31,11 +31,11 @@ public class IotDeviceLogDO { private String id; /** - * 请求编号 + * 消息编号 * - * 对应 {@link IotDeviceMessage#getRequestId()} 字段 + * 对应 {@link IotDeviceMessage#getMessageId()} 字段 */ - private String requestId; + private String messageId; /** * 产品标识 @@ -50,11 +50,11 @@ public class IotDeviceLogDO { */ private String deviceName; /** - * 设备标识 - *

- * 关联 {@link IotDeviceDO#getDeviceKey()}} + * 设备编号 + * + * 关联 {@link IotDeviceDO#getId()} */ - private String deviceKey; // 非存储字段,用于 TDengine 的 TAG + private Long deviceId; /** * 日志类型 @@ -87,6 +87,11 @@ public class IotDeviceLogDO { */ private Long reportTime; + /** + * 租户编号 + */ + private Long tenantId; + /** * 时序时间 */ diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/mq/consumer/device/IotDeviceLogMessageSubscriber.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/mq/consumer/device/IotDeviceLogMessageSubscriber.java index 279e422d7e..ff8c220c23 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/mq/consumer/device/IotDeviceLogMessageSubscriber.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/mq/consumer/device/IotDeviceLogMessageSubscriber.java @@ -39,11 +39,10 @@ public class IotDeviceLogMessageSubscriber implements IotMessageSubscriber CREATE STABLE IF NOT EXISTS device_log ( - ts TIMESTAMP, - id NCHAR(50), - product_key NCHAR(50), - device_name NCHAR(50), - type NCHAR(50), - identifier NCHAR(255), - content NCHAR(1024), - code INT, - report_time TIMESTAMP - ) TAGS ( - device_key NCHAR(50) - ) + ts TIMESTAMP, + id NCHAR(50), + message_id NCHAR(50), + type NCHAR(50), + identifier NCHAR(255), + content NCHAR(1024), + code INT, + report_time TIMESTAMP, + tenant_id BIGINT + ) TAGS ( + product_key NCHAR(50), + device_name NCHAR(50) + ) - INSERT INTO device_log_${deviceKey} (ts, id, product_key, device_name, type, identifier, content, code, report_time) + INSERT INTO device_log_${productKey}_${deviceName} ( + ts, id, message_id, type, identifier, + content, code, report_time, tenant_id + ) USING device_log - TAGS ('${deviceKey}') + TAGS ('${productKey}', '${deviceName}') VALUES ( - NOW, - #{id}, - #{productKey}, - #{deviceName}, - #{type}, - #{identifier}, - #{content}, - #{code}, - #{reportTime} + NOW, #{id}, #{messageId}, #{type}, #{identifier}, + #{content}, #{code}, #{reportTime}, #{tenantId} )