【代码评审】IoT:评审 ThingModel 的实现
This commit is contained in:
parent
92de5b1f09
commit
95067fd6c6
|
@ -6,13 +6,9 @@ import cn.iocoder.yudao.module.iot.enums.device.IotDeviceStatusEnum;
|
|||
import cn.iocoder.yudao.module.iot.enums.product.IotProductDeviceTypeEnum;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
|
||||
@Schema(description = "管理后台 - IoT 设备分页 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class IotDevicePageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "设备名称", example = "王五")
|
||||
|
|
|
@ -1,13 +1,12 @@
|
|||
package cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.dataType;
|
||||
|
||||
import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelProperty;
|
||||
import cn.iocoder.yudao.module.iot.controller.admin.thinkmodel.model.ThinkModelProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class ThinkModelArgument {
|
||||
public class ThingModelArgument {
|
||||
|
||||
public static final String DIRECTION_INPUT = "input";
|
||||
public static final String DIRECTION_OUTPUT = "output";
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
package cn.iocoder.yudao.module.iot.dal.tdengine;
|
||||
|
||||
import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
|
||||
import cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.TdTableDO;
|
||||
import cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.ThinkModelMessageDO;
|
||||
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
|
|
@ -7,8 +7,8 @@ import cn.iocoder.yudao.module.iot.controller.admin.product.vo.product.IotProduc
|
|||
import cn.iocoder.yudao.module.iot.dal.dataobject.product.IotProductDO;
|
||||
import cn.iocoder.yudao.module.iot.dal.mysql.product.IotProductMapper;
|
||||
import cn.iocoder.yudao.module.iot.enums.product.IotProductStatusEnum;
|
||||
import cn.iocoder.yudao.module.iot.service.tdengine.IotThinkModelMessageService;
|
||||
import cn.iocoder.yudao.module.iot.service.thinkmodel.IotProductThinkModelService;
|
||||
import cn.iocoder.yudao.module.iot.service.tdengine.IotThingModelMessageService;
|
||||
import cn.iocoder.yudao.module.iot.service.thingmodel.IotProductThingModelService;
|
||||
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
|
@ -35,10 +35,10 @@ public class IotProductServiceImpl implements IotProductService {
|
|||
|
||||
@Resource
|
||||
@Lazy // 延迟加载,解决循环依赖
|
||||
private IotProductThinkModelService thinkModelFunctionService;
|
||||
private IotProductThingModelService thingModelFunctionService;
|
||||
@Resource
|
||||
@Lazy // 延迟加载,解决循环依赖
|
||||
private IotThinkModelMessageService thinkModelMessageService;
|
||||
private IotThingModelMessageService thingModelMessageService;
|
||||
|
||||
@Override
|
||||
public Long createProduct(IotProductSaveReqVO createReqVO) {
|
||||
|
@ -119,9 +119,9 @@ public class IotProductServiceImpl implements IotProductService {
|
|||
// 3. 产品是发布状态
|
||||
if (Objects.equals(status, IotProductStatusEnum.PUBLISHED.getStatus())) {
|
||||
// 3.1 创建产品超级表数据模型
|
||||
thinkModelFunctionService.createSuperTableDataModel(id);
|
||||
thingModelFunctionService.createSuperTableDataModel(id);
|
||||
// 3.2 创建物模型日志超级表数据模型
|
||||
thinkModelMessageService.createSuperTable(id);
|
||||
thingModelMessageService.createSuperTable(id);
|
||||
}
|
||||
productMapper.updateById(updateObj);
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package cn.iocoder.yudao.module.iot.service.tdengine;
|
||||
|
||||
import cn.iocoder.yudao.module.iot.dal.dataobject.device.IotDeviceDO;
|
||||
import cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.ThinkModelMessage;
|
||||
import cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.ThingModelMessage;
|
||||
|
||||
/**
|
||||
* 物模型消息 Service
|
||||
|
@ -14,7 +14,7 @@ public interface IotThingModelMessageService {
|
|||
* @param device 设备
|
||||
* @param thingModelMessage 物模型消息
|
||||
*/
|
||||
void saveThinkModelMessage(IotDeviceDO device, ThinkModelMessage thingModelMessage);
|
||||
void saveThingModelMessage(IotDeviceDO device, ThingModelMessage thingModelMessage);
|
||||
|
||||
/**
|
||||
* 创建物模型消息日志超级表
|
||||
|
|
|
@ -14,7 +14,6 @@ import cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.ThingModelMessage;
|
|||
import cn.iocoder.yudao.module.iot.dal.dataobject.thingmodel.IotProductThingModelDO;
|
||||
import cn.iocoder.yudao.module.iot.dal.dataobject.product.IotProductDO;
|
||||
import cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.*;
|
||||
import cn.iocoder.yudao.module.iot.dal.dataobject.thinkmodel.IotProductThinkModelDO;
|
||||
import cn.iocoder.yudao.module.iot.dal.redis.deviceData.DeviceDataRedisDAO;
|
||||
import cn.iocoder.yudao.module.iot.dal.tdengine.TdEngineDDLMapper;
|
||||
import cn.iocoder.yudao.module.iot.dal.tdengine.TdEngineDMLMapper;
|
||||
|
@ -25,7 +24,6 @@ import cn.iocoder.yudao.module.iot.enums.thingmodel.IotProductThingModelTypeEnum
|
|||
import cn.iocoder.yudao.module.iot.service.device.IotDeviceService;
|
||||
import cn.iocoder.yudao.module.iot.service.thingmodel.IotProductThingModelService;
|
||||
import cn.iocoder.yudao.module.iot.service.product.IotProductService;
|
||||
import cn.iocoder.yudao.module.iot.service.thinkmodel.IotProductThinkModelService;
|
||||
import cn.iocoder.yudao.module.iot.util.IotTdDatabaseUtils;
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
@ -112,6 +110,8 @@ public class IotThingModelMessageServiceImpl implements IotThingModelMessageServ
|
|||
private List<IotProductThingModelDO> getValidThingModelList(String productKey) {
|
||||
return filterList(iotProductThingModelService.getProductThingModelListByProductKey(productKey),
|
||||
thingModel -> IotProductThingModelTypeEnum.PROPERTY.getType().equals(thingModel.getType()));
|
||||
}
|
||||
|
||||
@Override
|
||||
@TenantIgnore
|
||||
public void createSuperTable(Long productId) {
|
||||
|
@ -128,11 +128,12 @@ public class IotThingModelMessageServiceImpl implements IotThingModelMessageServ
|
|||
.setSuperTableName(superTableName));
|
||||
}
|
||||
|
||||
private List<IotProductThinkModelDO> getValidFunctionList(String productKey) {
|
||||
return iotProductThinkModelService
|
||||
.getProductThinkModelListByProductKey(productKey)
|
||||
private List<IotProductThingModelDO> getValidFunctionList(String productKey) {
|
||||
// TODO @puhui999:使用 convertList 会好点哈
|
||||
return iotProductThingModelService
|
||||
.getProductThingModelListByProductKey(productKey)
|
||||
.stream()
|
||||
.filter(function -> IotProductThinkModelTypeEnum.PROPERTY.getType().equals(function.getType()))
|
||||
.filter(function -> IotProductThingModelTypeEnum.PROPERTY.getType().equals(function.getType()))
|
||||
.toList();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue