Bläddra i källkod

refactor(iot): 优化 OTA 升级记录查询方法

- 重写 getOtaUpgradeRecordCount 和 getOtaUpgradeRecordStatistics 方法,使用 MyBatis-Plus 的 LambdaQueryWrapperX
-移除 XML 中对应的 SQL 查询语句
- 提高代码可维护性和数据库兼容性
陈玄礼 5 månader sedan
förälder
incheckning
0302ebee99

+ 15 - 5
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/ota/IotOtaUpgradeRecordMapper.java

@@ -13,6 +13,7 @@ import org.apache.ibatis.annotations.Param;
 import java.util.List;
 
 // TODO @li:这里的注释,可以去掉哈,多了点点
+
 /**
  * OTA 升级记录 Mapper 接口
  */
@@ -43,9 +44,14 @@ public interface IotOtaUpgradeRecordMapper extends BaseMapperX<IotOtaUpgradeReco
      * @param status     状态,用于筛选特定状态的升级记录
      * @return 返回符合条件的OTA升级记录的数量
      */
-    Long getOtaUpgradeRecordCount(@Param("taskId") Long taskId,
-                                  @Param("deviceName") String deviceName,
-                                  @Param("status") Integer status);
+    default Long getOtaUpgradeRecordCount(@Param("taskId") Long taskId,
+                                          @Param("deviceName") String deviceName,
+                                          @Param("status") Integer status) {
+        return selectCount(new LambdaQueryWrapperX<IotOtaUpgradeRecordDO>()
+                .eqIfPresent(IotOtaUpgradeRecordDO::getTaskId, taskId)
+                .likeIfPresent(IotOtaUpgradeRecordDO::getDeviceId, deviceName)
+                .eqIfPresent(IotOtaUpgradeRecordDO::getStatus, status));
+    }
 
     /**
      * 获取OTA升级记录的统计信息
@@ -54,8 +60,12 @@ public interface IotOtaUpgradeRecordMapper extends BaseMapperX<IotOtaUpgradeReco
      * @param status     状态,用于筛选特定状态的升级记录
      * @return 返回符合条件的OTA升级记录的统计信息
      */
-    Long getOtaUpgradeRecordStatistics(@Param("firmwareId") Long firmwareId,
-                                       @Param("status") Integer status);
+    default Long getOtaUpgradeRecordStatistics(@Param("firmwareId") Long firmwareId,
+                                               @Param("status") Integer status) {
+        return selectCount(new LambdaQueryWrapperX<IotOtaUpgradeRecordDO>()
+                .eqIfPresent(IotOtaUpgradeRecordDO::getFirmwareId, firmwareId)
+                .eqIfPresent(IotOtaUpgradeRecordDO::getStatus, status));
+    }
 
 
     /**

+ 0 - 17
yudao-module-iot/yudao-module-iot-biz/src/main/resources/mapper/ota/IotOtaUpgradeRecordMapper.xml

@@ -4,21 +4,4 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="cn.iocoder.yudao.module.iot.dal.mysql.ota.IotOtaUpgradeRecordMapper">
 
-    <!-- TODO @li:看看是不是可以通过 mybatis plus 写哈,更好适配多 db -->
-    <select id="getOtaUpgradeRecordCount" resultType="java.lang.Long">
-        select count(*)
-        from iot_ota_upgrade_record
-        where task_id = #{taskId}
-          and device_name like concat('%', #{deviceName}, '%')
-          and status = #{status}
-    </select>
-
-    <!-- TODO @li:看看是不是可以通过 mybatis plus 写哈,更好适配多 db -->
-    <select id="getOtaUpgradeRecordStatistics" resultType="java.lang.Long">
-        select count(*)
-        from iot_ota_upgrade_record
-        where firmware_id = #{firmwareId}
-          and status = #{status}
-    </select>
-
 </mapper>