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