diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/firmware/IotOtaFirmwareCreateReqVO.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/firmware/IotOtaFirmwareCreateReqVO.java index 98b99351de..20cd19536d 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/firmware/IotOtaFirmwareCreateReqVO.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/firmware/IotOtaFirmwareCreateReqVO.java @@ -27,6 +27,7 @@ public class IotOtaFirmwareCreateReqVO { private String productId; @Schema(description = "签名方式", example = "MD5") + // TODO @li:是不是必传哈 private String signMethod; @Schema(description = "固件文件 URL", requiredMode = REQUIRED, example = "https://www.iocoder.cn/yudao-firmware.zip") diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/firmware/IotOtaFirmwareUpdateReqVO.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/firmware/IotOtaFirmwareUpdateReqVO.java index 88b7cde5cb..4a304338d8 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/firmware/IotOtaFirmwareUpdateReqVO.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/firmware/IotOtaFirmwareUpdateReqVO.java @@ -7,7 +7,7 @@ import lombok.Data; import static io.swagger.v3.oas.annotations.media.Schema.RequiredMode.REQUIRED; -@Schema(description = "管理后台 - OTA固件更新 Request VO") +@Schema(description = "管理后台 - OTA 固件更新 Request VO") @Data public class IotOtaFirmwareUpdateReqVO { @@ -15,6 +15,7 @@ public class IotOtaFirmwareUpdateReqVO { @NotNull(message = "固件编号不能为空") private Long id; + // TODO @li:name 是不是可以飞必传哈 @Schema(description = "固件名称", requiredMode = REQUIRED, example = "智能开关固件") @NotEmpty(message = "固件名称不能为空") private String name; diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/upgrade/record/IotOtaUpgradeRecordPageReqVO.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/upgrade/record/IotOtaUpgradeRecordPageReqVO.java index e28024085f..57335ddcbe 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/upgrade/record/IotOtaUpgradeRecordPageReqVO.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/upgrade/record/IotOtaUpgradeRecordPageReqVO.java @@ -8,16 +8,17 @@ import lombok.Data; import static io.swagger.v3.oas.annotations.media.Schema.RequiredMode.REQUIRED; @Data -@Schema(description = "管理后台 - OTA升级记录分页 Request VO") +@Schema(description = "管理后台 - OTA 升级记录分页 Request VO") public class IotOtaUpgradeRecordPageReqVO extends PageParam { + // TODO @li:已经有注解,不用重复注释 /** * 升级任务编号字段。 *
* 该字段用于标识升级任务的唯一编号,不能为空。
*/
- @NotNull(message = "升级任务编号不能为空")
@Schema(description = "升级任务编号", requiredMode = REQUIRED, example = "1024")
+ @NotNull(message = "升级任务编号不能为空")
private Long taskId;
/**
diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/upgrade/task/IotOtaUpgradeTaskSaveReqVO.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/upgrade/task/IotOtaUpgradeTaskSaveReqVO.java
index e2fbd8efe6..687cf2b255 100644
--- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/upgrade/task/IotOtaUpgradeTaskSaveReqVO.java
+++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/ota/vo/upgrade/task/IotOtaUpgradeTaskSaveReqVO.java
@@ -14,9 +14,12 @@ import java.util.List;
import static io.swagger.v3.oas.annotations.media.Schema.RequiredMode.REQUIRED;
@Data
-@Schema(description = "管理后台 - OTA升级任务创建/修改 Request VO")
+@Schema(description = "管理后台 - OTA 升级任务创建/修改 Request VO")
public class IotOtaUpgradeTaskSaveReqVO {
+ // TODO @li:已经有注解,不用重复注释
+ // TODO @li: @Schema 写在参数校验前面。先有定义;其他的,也检查下;
+
/**
* 任务名称
*/
diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/convert/ota/IotOtaUpgradeRecordConvert.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/convert/ota/IotOtaUpgradeRecordConvert.java
deleted file mode 100644
index fe5279b3c6..0000000000
--- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/convert/ota/IotOtaUpgradeRecordConvert.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package cn.iocoder.yudao.module.iot.convert.ota;
-
-import org.mapstruct.Mapper;
-import org.mapstruct.factory.Mappers;
-
-@Mapper
-public interface IotOtaUpgradeRecordConvert {
-
- IotOtaUpgradeRecordConvert INSTANCE = Mappers.getMapper(IotOtaUpgradeRecordConvert.class);
-
-}
diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/dataobject/ota/IotOtaFirmwareDO.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/dataobject/ota/IotOtaFirmwareDO.java
index 12e5147edd..af5d8ac359 100644
--- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/dataobject/ota/IotOtaFirmwareDO.java
+++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/dataobject/ota/IotOtaFirmwareDO.java
@@ -46,6 +46,7 @@ public class IotOtaFirmwareDO extends BaseDO {
*
* 关联 {@link cn.iocoder.yudao.module.iot.dal.dataobject.product.IotProductDO#getId()}
*/
+ // TODO @li:帮我改成 Long 哈,写错了
private String productId;
/**
* 产品标识
diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/ota/IotOtaFirmwareMapper.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/ota/IotOtaFirmwareMapper.java
index 9652942b22..7adf79349b 100644
--- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/ota/IotOtaFirmwareMapper.java
+++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/ota/IotOtaFirmwareMapper.java
@@ -9,11 +9,7 @@ import org.apache.ibatis.annotations.Mapper;
import java.util.List;
-/**
- * OTA固件 Mapper
- *
- * @author Shelly
- */
+// TODO @li:参考 IotOtaUpgradeRecordMapper 的写法
@Mapper
public interface IotOtaFirmwareMapper extends BaseMapperX
@@ -97,6 +98,7 @@ public interface IotOtaUpgradeRecordMapper extends BaseMapperX
diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/IotOtaUpgradeRecordService.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/IotOtaUpgradeRecordService.java
index 86bc18b845..cbf900ac0a 100644
--- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/IotOtaUpgradeRecordService.java
+++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/IotOtaUpgradeRecordService.java
@@ -8,6 +8,7 @@ import jakarta.validation.Valid;
import java.util.List;
import java.util.Map;
+// TODO @li:注释写的有点冗余,可以看看别的模块哈。= = AI 生成的注释,有的时候太啰嗦了,需要处理下的哈
/**
* IotOtaUpgradeRecordService 接口定义了与物联网设备OTA升级记录相关的操作。
* 该接口提供了创建、更新、查询、统计和重试升级记录的功能。
@@ -15,7 +16,7 @@ import java.util.Map;
public interface IotOtaUpgradeRecordService {
/**
- * 批量创建OTA升级记录。
+ * 批量创建 OTA 升级记录
* 该函数用于为指定的设备列表、固件ID和升级任务ID创建OTA升级记录。
*
* @param deviceIds 设备ID列表,表示需要升级的设备集合。
@@ -25,7 +26,7 @@ public interface IotOtaUpgradeRecordService {
void createOtaUpgradeRecordBatch(List
* 该函数用于根据给定的任务ID,取消与该任务相关的升级记录。通常用于在任务执行失败或用户手动取消时,
* 清理或标记相关的升级记录为取消状态。
@@ -71,6 +72,7 @@ public interface IotOtaUpgradeRecordService {
*/
void cancelUpgradeRecordByTaskId(Long taskId);
+ // TODO @li:不要的方法,可以删除下哈。
/**
* 根据升级状态获取升级记录列表
*
diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/IotOtaUpgradeRecordServiceImpl.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/IotOtaUpgradeRecordServiceImpl.java
index c04750e004..02ef39cdf1 100644
--- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/IotOtaUpgradeRecordServiceImpl.java
+++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/IotOtaUpgradeRecordServiceImpl.java
@@ -25,8 +25,8 @@ import java.util.stream.Collectors;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.*;
-import static cn.iocoder.yudao.module.iot.enums.ota.IotOtaUpgradeRecordStatusEnum.CANCELED;
+// TODO @li:@Service、@Validated、@Slf4j,先用关键注解;2)类注释,简单写
@Slf4j
@Service
@Validated
@@ -34,6 +34,7 @@ public class IotOtaUpgradeRecordServiceImpl implements IotOtaUpgradeRecordServic
@Resource
private IotOtaUpgradeRecordMapper upgradeRecordMapper;
+ // TODO @li:1)@Resource 写在 @Lazy 之前,先用关键注解;2)有必要的情况下,在写 @Lazy 注解。
@Lazy
@Resource
private IotDeviceService deviceService;
@@ -46,8 +47,10 @@ public class IotOtaUpgradeRecordServiceImpl implements IotOtaUpgradeRecordServic
@Override
public void createOtaUpgradeRecordBatch(List
@@ -189,13 +194,17 @@ public class IotOtaUpgradeRecordServiceImpl implements IotOtaUpgradeRecordServic
// 根据条件查询升级记录
IotOtaUpgradeRecordDO upgradeRecord = upgradeRecordMapper.selectByConditions(firmwareId, taskId, deviceId);
// 如果查询到升级记录且状态不是已取消,则抛出异常
+ // TODO @li:if return,减少括号层级;
+ // TODO @li:ObjUtil.notEquals,尽量不用 !取否逻辑;
if (upgradeRecord != null) {
- if (!CANCELED.getStatus().equals(upgradeRecord.getStatus())) {
+ if (!IotOtaUpgradeRecordStatusEnum.CANCELED.getStatus().equals(upgradeRecord.getStatus())) {
+ // TODO @li:提示的时候,需要把 deviceName 给提示出来,不然用户不知道哪个重复啦。
throw exception(OTA_UPGRADE_RECORD_DUPLICATE);
}
}
}
+ // TODO @li:注释有点冗余
/**
* 验证升级记录是否可以重试。
*
@@ -205,6 +214,7 @@ public class IotOtaUpgradeRecordServiceImpl implements IotOtaUpgradeRecordServic
* @param upgradeRecord 需要验证的升级记录对象,类型为 IotOtaUpgradeRecordDO
* @throws cn.iocoder.yudao.framework.common.exception.ServiceException,则抛出 OTA_UPGRADE_RECORD_CANNOT_RETRY 异常
*/
+ // TODO @li:这种一次性的方法(不复用的),其实一步一定要抽成小方法;
private void validateUpgradeRecordCanRetry(IotOtaUpgradeRecordDO upgradeRecord) {
// 检查升级记录的状态是否为 PENDING、PUSHED 或 UPGRADING
if (ObjectUtils.equalsAny(upgradeRecord.getStatus(),
diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/IotOtaUpgradeTaskServiceImpl.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/IotOtaUpgradeTaskServiceImpl.java
index ca74481ff2..cee3ba516b 100644
--- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/IotOtaUpgradeTaskServiceImpl.java
+++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/ota/IotOtaUpgradeTaskServiceImpl.java
@@ -27,6 +27,7 @@ import java.util.stream.Collectors;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.*;
+// TODO @li:完善注释、注解顺序
@Slf4j
@Service
@Validated
@@ -54,9 +55,11 @@ public class IotOtaUpgradeTaskServiceImpl implements IotOtaUpgradeTaskService {
IotOtaFirmwareDO firmware = firmwareService.validateFirmwareExists(createReqVO.getFirmwareId());
// 1.3 补全设备范围信息,并且校验是否又设备可以升级,如果没有设备可以升级,则报错
validateScopeAndDevice(createReqVO.getScope(), createReqVO.getDeviceIds(), firmware.getProductId());
+
// 2. 保存 OTA 升级任务信息到数据库
IotOtaUpgradeTaskDO upgradeTask = initOtaUpgradeTask(createReqVO, firmware.getProductId());
upgradeTaskMapper.insert(upgradeTask);
+
// 3. 生成设备升级记录信息并存储,等待定时任务轮询
upgradeRecordService.createOtaUpgradeRecordBatch(upgradeTask.getDeviceIds(), firmware.getId(), upgradeTask.getId());
return upgradeTask.getId();
@@ -68,15 +71,16 @@ public class IotOtaUpgradeTaskServiceImpl implements IotOtaUpgradeTaskService {
// 1.1 校验升级任务是否存在
IotOtaUpgradeTaskDO upgradeTask = validateUpgradeTaskExists(id);
// 1.2 校验升级任务是否可以取消
- // 检查升级任务的状态是否为进行中,只有此状态下的任务才允许取消
+ // TODO @li:ObjUtil notequals
if (!Objects.equals(upgradeTask.getStatus(), IotOtaUpgradeTaskStatusEnum.IN_PROGRESS.getStatus())) {
- // 只有进行中的任务才可以取消
throw exception(OTA_UPGRADE_TASK_CANNOT_CANCEL);
}
+
// 2. 更新 OTA 升级任务状态为已取消
upgradeTaskMapper.updateById(IotOtaUpgradeTaskDO.builder()
.id(id).status(IotOtaUpgradeTaskStatusEnum.CANCELED.getStatus())
.build());
+
// 3. 更新 OTA 升级记录状态为已取消
upgradeRecordService.cancelUpgradeRecordByTaskId(id);
}
@@ -98,11 +102,10 @@ public class IotOtaUpgradeTaskServiceImpl implements IotOtaUpgradeTaskService {
@Override
public void updateUpgradeTaskStatus(Long id, Integer status) {
- upgradeTaskMapper.updateById(IotOtaUpgradeTaskDO.builder()
- .id(id).status(status)
- .build());
+ upgradeTaskMapper.updateById(IotOtaUpgradeTaskDO.builder().id(id).status(status).build());
}
+ // TODO @li:注释有点冗余
/**
* 校验固件升级任务是否重复
*
@@ -123,6 +126,7 @@ public class IotOtaUpgradeTaskServiceImpl implements IotOtaUpgradeTaskService {
}
}
+ // TODO @li:注释有点冗余
/**
* 验证升级任务的范围和设备列表的有效性。
*
@@ -135,6 +139,7 @@ public class IotOtaUpgradeTaskServiceImpl implements IotOtaUpgradeTaskService {
* @throws cn.iocoder.yudao.framework.common.exception.ServiceException,抛出相应的异常
*/
private void validateScopeAndDevice(Integer scope, List
@@ -167,6 +173,7 @@ public class IotOtaUpgradeTaskServiceImpl implements IotOtaUpgradeTaskService {
return upgradeTask;
}
+ // TODO @li:注释有点冗余
/**
* 初始化升级任务
*
@@ -177,6 +184,7 @@ public class IotOtaUpgradeTaskServiceImpl implements IotOtaUpgradeTaskService {
* @param createReqVO 升级任务保存请求对象,包含创建升级任务所需的信息
* @return 返回初始化后的升级任务对象
*/
+ // TODO @li:一次性的方法,不用特别抽小方法
private IotOtaUpgradeTaskDO initOtaUpgradeTask(IotOtaUpgradeTaskSaveReqVO createReqVO, String productId) {
// 将请求参数转换为升级任务对象
IotOtaUpgradeTaskDO upgradeTask = BeanUtils.toBean(createReqVO, IotOtaUpgradeTaskDO.class);
diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/resources/mapper/ota/IotOtaUpgradeRecordMapper.xml b/yudao-module-iot/yudao-module-iot-biz/src/main/resources/mapper/ota/IotOtaUpgradeRecordMapper.xml
deleted file mode 100644
index 74fa85eaca..0000000000
--- a/yudao-module-iot/yudao-module-iot-biz/src/main/resources/mapper/ota/IotOtaUpgradeRecordMapper.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-