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

This commit is contained in:
YunaiV 2024-12-21 16:33:50 +08:00
parent f580383267
commit e01d03eefb
4 changed files with 12 additions and 19 deletions

View File

@ -14,7 +14,6 @@ public interface ErrorCodeConstants {
ErrorCode PRODUCT_KEY_EXISTS = new ErrorCode(1_050_001_001, "产品标识已经存在"); ErrorCode PRODUCT_KEY_EXISTS = new ErrorCode(1_050_001_001, "产品标识已经存在");
ErrorCode PRODUCT_STATUS_NOT_DELETE = new ErrorCode(1_050_001_002, "产品状是发布状态,不允许删除"); ErrorCode PRODUCT_STATUS_NOT_DELETE = new ErrorCode(1_050_001_002, "产品状是发布状态,不允许删除");
ErrorCode PRODUCT_STATUS_NOT_ALLOW_THING_MODEL = new ErrorCode(1_050_001_003, "产品状是发布状态,不允许操作物模型"); ErrorCode PRODUCT_STATUS_NOT_ALLOW_THING_MODEL = new ErrorCode(1_050_001_003, "产品状是发布状态,不允许操作物模型");
ErrorCode PRODUCT_DEVICE_NOT_EXISTS = new ErrorCode(1_050_001_004, "产品设备类型不存在");
// ========== 产品物模型 1-050-002-000 ============ // ========== 产品物模型 1-050-002-000 ============
ErrorCode THING_MODEL_NOT_EXISTS = new ErrorCode(1_050_002_000, "产品物模型不存在"); ErrorCode THING_MODEL_NOT_EXISTS = new ErrorCode(1_050_002_000, "产品物模型不存在");

View File

@ -1,8 +1,10 @@
package cn.iocoder.yudao.module.iot.mq.consumer.simulatesend; package cn.iocoder.yudao.module.iot.mq.consumer.simulatesend;
/** /**
* TODO @alwayssuper记得实现还有类注释哈
*
* @author alwayssuper * @author alwayssuper
* @date 2024/12/20 8:04 * @since 2024/12/20 8:04
*/ */
public class SimulateSendConsumer { public class SimulateSendConsumer {
} }

View File

@ -1,13 +1,9 @@
package cn.iocoder.yudao.module.iot.util; package cn.iocoder.yudao.module.iot.util;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.module.iot.enums.IotConstants; import cn.iocoder.yudao.module.iot.enums.IotConstants;
import cn.iocoder.yudao.module.iot.enums.product.IotProductDeviceTypeEnum; import cn.iocoder.yudao.module.iot.enums.product.IotProductDeviceTypeEnum;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.PRODUCT_DEVICE_NOT_EXISTS;
// TODO @芋艿可能要思索下有没更好的处理方式 // TODO @芋艿可能要思索下有没更好的处理方式
// TODO @芋艿怎么改成无状态 // TODO @芋艿怎么改成无状态
@ -34,20 +30,17 @@ public class IotTdDatabaseUtils {
* @return 产品超级表表名 * @return 产品超级表表名
*/ */
public static String getProductSuperTableName(Integer deviceType, String productKey) { public static String getProductSuperTableName(Integer deviceType, String productKey) {
// TODO @alwayssuper枚举字段不要 123不符合预期抛出异常 Assert.notNull(deviceType, "deviceType 不能为空");
if (deviceType == null) {
throw exception(PRODUCT_DEVICE_NOT_EXISTS);
}
if (IotProductDeviceTypeEnum.GATEWAY_SUB.getType().equals(deviceType)) { if (IotProductDeviceTypeEnum.GATEWAY_SUB.getType().equals(deviceType)) {
return String.format(IotConstants.GATEWAY_SUB_STABLE_NAME_FORMAT, productKey).toLowerCase(); return String.format(IotConstants.GATEWAY_SUB_STABLE_NAME_FORMAT, productKey).toLowerCase();
} else if (IotProductDeviceTypeEnum.GATEWAY.getType().equals(deviceType)) { }
if (IotProductDeviceTypeEnum.GATEWAY.getType().equals(deviceType)) {
return String.format(IotConstants.GATEWAY_STABLE_NAME_FORMAT, productKey).toLowerCase(); return String.format(IotConstants.GATEWAY_STABLE_NAME_FORMAT, productKey).toLowerCase();
} else if (IotProductDeviceTypeEnum.DIRECT.getType().equals(deviceType)){ }
if (IotProductDeviceTypeEnum.DIRECT.getType().equals(deviceType)){
return String.format(IotConstants.DEVICE_STABLE_NAME_FORMAT, productKey).toLowerCase(); return String.format(IotConstants.DEVICE_STABLE_NAME_FORMAT, productKey).toLowerCase();
} }
else{ throw new IllegalArgumentException("deviceType 不正确");
throw exception(PRODUCT_DEVICE_NOT_EXISTS);
}
} }
/** /**
@ -58,7 +51,6 @@ public class IotTdDatabaseUtils {
* *
*/ */
public static String getThingModelMessageSuperTableName(String productKey) { public static String getThingModelMessageSuperTableName(String productKey) {
// TODO @alwayssuper是不是应该 + 拼接就好不用 format
return "thing_model_message_" + productKey.toLowerCase(); return "thing_model_message_" + productKey.toLowerCase();
} }
@ -70,7 +62,8 @@ public class IotTdDatabaseUtils {
* @return 物模型日志设备表名 * @return 物模型日志设备表名
*/ */
public static String getThingModelMessageDeviceTableName(String productKey, String deviceName) { public static String getThingModelMessageDeviceTableName(String productKey, String deviceName) {
return String.format(IotConstants.THING_MODEL_MESSAGE_TABLE_NAME_FORMAT, productKey.toLowerCase(), deviceName.toLowerCase()); return String.format(IotConstants.THING_MODEL_MESSAGE_TABLE_NAME_FORMAT,
productKey.toLowerCase(), deviceName.toLowerCase());
} }
} }

View File

@ -5,7 +5,6 @@
<mapper namespace="cn.iocoder.yudao.module.iot.dal.tdengine.TdThingModelMessageMapper"> <mapper namespace="cn.iocoder.yudao.module.iot.dal.tdengine.TdThingModelMessageMapper">
<!-- 创建物模型消息日志超级表 --> <!-- 创建物模型消息日志超级表 -->
<!-- TODO @芋艿:捉摸下字段,特别是 sys、ts 这种缩写 -->
<update id="createSuperTable"> <update id="createSuperTable">
CREATE STABLE ${dataBaseName}.${superTableName}( CREATE STABLE ${dataBaseName}.${superTableName}(
ts TIMESTAMP, ts TIMESTAMP,