Bläddra i källkod

修复批量更新文件分类

tsurumure 3 månader sedan
förälder
incheckning
c185f00451

+ 2 - 5
src/main/java/com/backendsys/modules/upload/entity/SysFile.java

@@ -1,9 +1,6 @@
 package com.backendsys.modules.upload.entity;
 
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.*;
 import jakarta.validation.constraints.NotEmpty;
 import jakarta.validation.constraints.NotNull;
 import jakarta.validation.constraints.Size;
@@ -29,7 +26,7 @@ public class SysFile {
     @Size(min = 1, message = "ids 的数量必须大于 0", groups = { UpdateBatch.class })
     private List<Long> ids;
 
-    @NotNull(message = "文件分类不能为空", groups = { UpdateBatch.class })
+    @TableField(updateStrategy = FieldStrategy.NOT_NULL)
     private Long category_id;
 
     @TableField(exist = false)

+ 10 - 11
src/main/java/com/backendsys/modules/upload/service/impl/SysFileServiceImpl.java

@@ -25,6 +25,8 @@ import com.backendsys.utils.response.PageEntity;
 import com.backendsys.utils.response.PageInfoResult;
 import com.backendsys.utils.v2.PageUtils;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -412,19 +414,16 @@ public class SysFileServiceImpl extends ServiceImpl<SysFileDao, SysFile> impleme
         Long category_id = sysFile.getCategory_id();
 
         // 判断 文件分类ID 是否存在
-        Boolean isExist = sysFileCategoryDao.exists(new LambdaQueryWrapper<SysFileCategory>().eq(SysFileCategory::getId, category_id));
-        if (!isExist) throw new CustException("文件分类不存在");
+        if (category_id != null) {
+            Boolean isExist = sysFileCategoryDao.exists(new LambdaQueryWrapper<SysFileCategory>().eq(SysFileCategory::getId, category_id));
+            if (!isExist) throw new CustException("文件分类不存在");
+        }
 
         // [DB] 批量更新 分类ID
-        SysFile entity = new SysFile();
-        entity.setCategory_id(category_id);
-
-        // 查询条件 (当前用户, ids)
-        LambdaQueryWrapper<SysFile> wrapperFile = new LambdaQueryWrapper<>();
-        wrapperFile.eq(SysFile::getUser_id, sysFile.getUser_id());
-        wrapperFile.in(SysFile::getId, ids);
-
-        sysFileDao.update(entity, wrapperFile);
+        LambdaUpdateWrapper<SysFile> wrapper = new LambdaUpdateWrapper<>();
+        wrapper.eq(SysFile::getUser_id, sysFile.getUser_id()).in(SysFile::getId, ids);
+        wrapper.set(SysFile::getCategory_id, category_id);
+        sysFileDao.update(null, wrapper);
 
         return Map.of("ids", ids);
     }