【功能完善】IoT: 更新设备数据 API,重构保存设备数据方法以使用 DTO,新增参数校验依赖,优化插件管理功能,添加插件实例上报和状态更新接口,同时更新插件信息获取逻辑,删除不再使用的文件和配置。

This commit is contained in:
安浩浩
2025-01-07 17:44:55 +08:00
parent b5856c4cfc
commit cde6ebf921
21 changed files with 362 additions and 245 deletions

View File

@@ -33,6 +33,13 @@
</exclusion>
</exclusions>
</dependency>
<!-- 参数校验 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
</project>

View File

@@ -1,5 +1,8 @@
package cn.iocoder.yudao.module.iot.api.device;
import cn.iocoder.yudao.module.iot.api.device.dto.DeviceDataCreateReqDTO;
import jakarta.validation.Valid;
/**
* 设备数据 API
*
@@ -7,14 +10,11 @@ package cn.iocoder.yudao.module.iot.api.device;
*/
public interface DeviceDataApi {
// TODO @haohao最好搞成 dto 哈!
/**
* 保存设备数据
*
* @param productKey 产品 key
* @param deviceName 设备名称
* @param message 消息
* @param createDTO 设备数据
*/
void saveDeviceData(String productKey, String deviceName, String message);
void saveDeviceData(@Valid DeviceDataCreateReqDTO createDTO);
}

View File

@@ -0,0 +1,31 @@
package cn.iocoder.yudao.module.iot.api.device.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import jakarta.validation.constraints.NotNull;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class DeviceDataCreateReqDTO {
/**
* 产品标识
*/
@NotNull(message = "产品标识不能为空")
private String productKey;
/**
* 设备名称
*/
@NotNull(message = "设备名称不能为空")
private String deviceName;
/**
* 消息
*/
@NotNull(message = "消息不能为空")
private String message;
}

View File

@@ -13,8 +13,8 @@ import java.util.Arrays;
@Getter
public enum IotPluginDeployTypeEnum implements IntArrayValuable {
UPLOAD(0, "上传 jar"), // TODO @haohaoUPLOAD 和 ALONE 感觉有点冲突,前者是部署方式,后者是运行方式。这个后续再讨论下哈
ALONE(1, "独立运行");
DEPLOY_VIA_JAR(0, "通过 jar 部署"), // TODO @haohaoUPLOAD 和 ALONE 感觉有点冲突,前者是部署方式,后者是运行方式。这个后续再讨论下哈
DEPLOY_STANDALONE(1, "独立部署");
public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(IotPluginDeployTypeEnum::getDeployType).toArray();