Commit e01d03eefb3fbe5d50fb67c44384bb7f6c88162c

Authored by YunaiV
1 parent f5803832

【代码评审】IoT:物模型日志

yudao-module-iot/yudao-module-iot-api/src/main/java/cn/iocoder/yudao/module/iot/enums/ErrorCodeConstants.java
@@ -14,7 +14,6 @@ public interface ErrorCodeConstants { @@ -14,7 +14,6 @@ public interface ErrorCodeConstants {
14 ErrorCode PRODUCT_KEY_EXISTS = new ErrorCode(1_050_001_001, "产品标识已经存在"); 14 ErrorCode PRODUCT_KEY_EXISTS = new ErrorCode(1_050_001_001, "产品标识已经存在");
15 ErrorCode PRODUCT_STATUS_NOT_DELETE = new ErrorCode(1_050_001_002, "产品状是发布状态,不允许删除"); 15 ErrorCode PRODUCT_STATUS_NOT_DELETE = new ErrorCode(1_050_001_002, "产品状是发布状态,不允许删除");
16 ErrorCode PRODUCT_STATUS_NOT_ALLOW_THING_MODEL = new ErrorCode(1_050_001_003, "产品状是发布状态,不允许操作物模型"); 16 ErrorCode PRODUCT_STATUS_NOT_ALLOW_THING_MODEL = new ErrorCode(1_050_001_003, "产品状是发布状态,不允许操作物模型");
17 - ErrorCode PRODUCT_DEVICE_NOT_EXISTS = new ErrorCode(1_050_001_004, "产品设备类型不存在");  
18 17
19 // ========== 产品物模型 1-050-002-000 ============ 18 // ========== 产品物模型 1-050-002-000 ============
20 ErrorCode THING_MODEL_NOT_EXISTS = new ErrorCode(1_050_002_000, "产品物模型不存在"); 19 ErrorCode THING_MODEL_NOT_EXISTS = new ErrorCode(1_050_002_000, "产品物模型不存在");
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/mq/consumer/simulatesend/SimulateSendConsumer.java
1 package cn.iocoder.yudao.module.iot.mq.consumer.simulatesend; 1 package cn.iocoder.yudao.module.iot.mq.consumer.simulatesend;
2 2
3 /** 3 /**
  4 + * TODO @alwayssuper:记得实现,还有类注释哈
  5 + *
4 * @author alwayssuper 6 * @author alwayssuper
5 - * @date 2024/12/20 8:04 7 + * @since 2024/12/20 8:04
6 */ 8 */
7 public class SimulateSendConsumer { 9 public class SimulateSendConsumer {
8 } 10 }
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/util/IotTdDatabaseUtils.java
1 package cn.iocoder.yudao.module.iot.util; 1 package cn.iocoder.yudao.module.iot.util;
2 2
  3 +import cn.hutool.core.lang.Assert;
3 import cn.hutool.core.util.StrUtil; 4 import cn.hutool.core.util.StrUtil;
4 import cn.iocoder.yudao.module.iot.enums.IotConstants; 5 import cn.iocoder.yudao.module.iot.enums.IotConstants;
5 import cn.iocoder.yudao.module.iot.enums.product.IotProductDeviceTypeEnum; 6 import cn.iocoder.yudao.module.iot.enums.product.IotProductDeviceTypeEnum;
6 -import org.springframework.beans.factory.annotation.Value;  
7 -import org.springframework.stereotype.Component;  
8 -  
9 -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;  
10 -import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.PRODUCT_DEVICE_NOT_EXISTS;  
11 7
12 // TODO @芋艿:可能要思索下,有没更好的处理方式 8 // TODO @芋艿:可能要思索下,有没更好的处理方式
13 // TODO @芋艿:怎么改成无状态 9 // TODO @芋艿:怎么改成无状态
@@ -34,20 +30,17 @@ public class IotTdDatabaseUtils { @@ -34,20 +30,17 @@ public class IotTdDatabaseUtils {
34 * @return 产品超级表表名 30 * @return 产品超级表表名
35 */ 31 */
36 public static String getProductSuperTableName(Integer deviceType, String productKey) { 32 public static String getProductSuperTableName(Integer deviceType, String productKey) {
37 - // TODO @alwayssuper:枚举字段,不要 1、2、3;不符合预期,抛出异常  
38 - if (deviceType == null) {  
39 - throw exception(PRODUCT_DEVICE_NOT_EXISTS);  
40 - } 33 + Assert.notNull(deviceType, "deviceType 不能为空");
41 if (IotProductDeviceTypeEnum.GATEWAY_SUB.getType().equals(deviceType)) { 34 if (IotProductDeviceTypeEnum.GATEWAY_SUB.getType().equals(deviceType)) {
42 return String.format(IotConstants.GATEWAY_SUB_STABLE_NAME_FORMAT, productKey).toLowerCase(); 35 return String.format(IotConstants.GATEWAY_SUB_STABLE_NAME_FORMAT, productKey).toLowerCase();
43 - } else if (IotProductDeviceTypeEnum.GATEWAY.getType().equals(deviceType)) { 36 + }
  37 + if (IotProductDeviceTypeEnum.GATEWAY.getType().equals(deviceType)) {
44 return String.format(IotConstants.GATEWAY_STABLE_NAME_FORMAT, productKey).toLowerCase(); 38 return String.format(IotConstants.GATEWAY_STABLE_NAME_FORMAT, productKey).toLowerCase();
45 - } else if (IotProductDeviceTypeEnum.DIRECT.getType().equals(deviceType)){  
46 - return String.format(IotConstants.DEVICE_STABLE_NAME_FORMAT, productKey).toLowerCase();  
47 } 39 }
48 - else{  
49 - throw exception(PRODUCT_DEVICE_NOT_EXISTS); 40 + if (IotProductDeviceTypeEnum.DIRECT.getType().equals(deviceType)){
  41 + return String.format(IotConstants.DEVICE_STABLE_NAME_FORMAT, productKey).toLowerCase();
50 } 42 }
  43 + throw new IllegalArgumentException("deviceType 不正确");
51 } 44 }
52 45
53 /** 46 /**
@@ -58,7 +51,6 @@ public class IotTdDatabaseUtils { @@ -58,7 +51,6 @@ public class IotTdDatabaseUtils {
58 * 51 *
59 */ 52 */
60 public static String getThingModelMessageSuperTableName(String productKey) { 53 public static String getThingModelMessageSuperTableName(String productKey) {
61 - // TODO @alwayssuper:是不是应该 + 拼接就好,不用 format  
62 return "thing_model_message_" + productKey.toLowerCase(); 54 return "thing_model_message_" + productKey.toLowerCase();
63 } 55 }
64 56
@@ -70,7 +62,8 @@ public class IotTdDatabaseUtils { @@ -70,7 +62,8 @@ public class IotTdDatabaseUtils {
70 * @return 物模型日志设备表名 62 * @return 物模型日志设备表名
71 */ 63 */
72 public static String getThingModelMessageDeviceTableName(String productKey, String deviceName) { 64 public static String getThingModelMessageDeviceTableName(String productKey, String deviceName) {
73 - return String.format(IotConstants.THING_MODEL_MESSAGE_TABLE_NAME_FORMAT, productKey.toLowerCase(), deviceName.toLowerCase()); 65 + return String.format(IotConstants.THING_MODEL_MESSAGE_TABLE_NAME_FORMAT,
  66 + productKey.toLowerCase(), deviceName.toLowerCase());
74 } 67 }
75 68
76 } 69 }
yudao-module-iot/yudao-module-iot-biz/src/main/resources/mapper/tdengine/TdThinkModelMessageMapper.xml
@@ -5,7 +5,6 @@ @@ -5,7 +5,6 @@
5 <mapper namespace="cn.iocoder.yudao.module.iot.dal.tdengine.TdThingModelMessageMapper"> 5 <mapper namespace="cn.iocoder.yudao.module.iot.dal.tdengine.TdThingModelMessageMapper">
6 6
7 <!-- 创建物模型消息日志超级表 --> 7 <!-- 创建物模型消息日志超级表 -->
8 - <!-- TODO @芋艿:捉摸下字段,特别是 sys、ts 这种缩写 -->  
9 <update id="createSuperTable"> 8 <update id="createSuperTable">
10 CREATE STABLE ${dataBaseName}.${superTableName}( 9 CREATE STABLE ${dataBaseName}.${superTableName}(
11 ts TIMESTAMP, 10 ts TIMESTAMP,