|
@@ -461,35 +461,33 @@ public class SysFileServiceImpl extends ServiceImpl<SysFileDao, SysFile> impleme
|
|
|
// 判断 target_object 是否存在于 object_keys 中
|
|
|
boolean exists = CollectionUtil.contains(object_keys, target_object_key);
|
|
|
if (!exists) throw new CustException("合并目标文件ID不存在于列表中");
|
|
|
-
|
|
|
// 判断权限 (需要子权限或超级管理员)
|
|
|
if (!SecurityUtil.isSuper() && !securityUtil.hasPermission("1.1.5")) {
|
|
|
throw new CustException(SecurityEnum.NOAUTH);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-
|
|
|
- // --------------------------------------------------------------------------------
|
|
|
- // 更新文件命名
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- // --------------------------------------------------------------------------------
|
|
|
+ // [DB] 查询文件列表 (不包含 target_object_key、当前用户ID、upload_id 为空)
|
|
|
+ LambdaQueryWrapper<SysFile> selectWrapper = new LambdaQueryWrapper<>();
|
|
|
+ selectWrapper.in(SysFile::getUser_id, user_id);
|
|
|
// 过滤一个没有 target_object_key 的 object_keys 集合
|
|
|
List<String> file_object_keys_without_target = object_keys.stream().filter(object_key -> !object_key.equals(target_object_key)).collect(Collectors.toList());
|
|
|
+ selectWrapper.in(SysFile::getObject_key, file_object_keys_without_target);
|
|
|
+ selectWrapper.isNull(SysFile::getUpload_id);
|
|
|
+ List<SysFile> querySysFileList = sysFileDao.selectList(selectWrapper);
|
|
|
+ if (querySysFileList.size() == 0) {
|
|
|
+ throw new CustException("选中的文件不存在", ResultEnum.PARAMETER_EXCEPTION.getCode(), "Field: object_keys");
|
|
|
+ }
|
|
|
|
|
|
- // 查询文件列表 (不包含 target_object_key、当前用户ID、upload_id 为空)
|
|
|
- LambdaQueryWrapper<SysFile> wrapperFile = new LambdaQueryWrapper<>();
|
|
|
- wrapperFile.in(SysFile::getUser_id, user_id);
|
|
|
- wrapperFile.in(SysFile::getObject_key, file_object_keys_without_target);
|
|
|
- wrapperFile.isNull(SysFile::getUpload_id);
|
|
|
- List<SysFile> querySysFileList = sysFileDao.selectList(wrapperFile);
|
|
|
+ // [DB] 更新文件命名
|
|
|
+ LambdaQueryWrapper<SysFile> updateWrapper = new LambdaQueryWrapper<>();
|
|
|
+ updateWrapper.eq(SysFile::getObject_key, target_object_key);
|
|
|
+ SysFile updateEntity = new SysFile();
|
|
|
+ updateEntity.setName(target_file_name);
|
|
|
+ sysFileDao.update(updateEntity, updateWrapper);
|
|
|
|
|
|
- // 筛选出待删除的文件 object_key
|
|
|
+ // [DB] 批量删除 (除了 target_object_key 外的文件)
|
|
|
List<String> delete_object_keys = querySysFileList.stream().map(entity -> entity.getObject_key()).collect(Collectors.toList());
|
|
|
-
|
|
|
- // [Delete] 批量删除
|
|
|
+ System.out.println(delete_object_keys);
|
|
|
sysFileDao.delete(new LambdaQueryWrapper<SysFile>().in(SysFile::getObject_key, delete_object_keys));
|
|
|
|
|
|
// [异步任务] 创建一个 CompletableFuture 来执行异步任务
|
|
@@ -498,12 +496,10 @@ public class SysFileServiceImpl extends ServiceImpl<SysFileDao, SysFile> impleme
|
|
|
deleteObject(entity.getObject_key(), entity.getTarget());
|
|
|
});
|
|
|
});
|
|
|
- // --------------------------------------------------------------------------------
|
|
|
|
|
|
Map<String, Object> resp = new LinkedHashMap<>();
|
|
|
resp.put("delete_object_keys", delete_object_keys);
|
|
|
resp.put("target_object_key", target_object_key);
|
|
|
-
|
|
|
return resp;
|
|
|
}
|
|
|
|