在恢复文件时,新增了同名同后缀的判断。

This commit is contained in:
chenxudong 2025-03-24 14:18:32 +08:00
parent 5fd43452de
commit dd8f900bec
1 changed files with 13 additions and 0 deletions

View File

@ -153,6 +153,19 @@ public class FileRecycleServiceImpl implements FileRecycleService {
.eq(EdFileInfo::getFileId, fileId) .eq(EdFileInfo::getFileId, fileId)
.last("limit 1")); .last("limit 1"));
EdFileInfo edFileInfo = edFileInfos.get(0); EdFileInfo edFileInfo = edFileInfos.get(0);
String parentId = edFileInfo.getParentId();
Long count = this.edFileInfoMapper.selectCount(Wrappers.lambdaQuery(EdFileInfo.class).eq(EdFileInfo::getParentId, parentId)
.eq(EdFileInfo::getFileName, edFileInfo.getFileName())
.eq(EdFileInfo::getFileType, edFileInfo.getFileType())
.eq(EdFileInfo::getDataType, EleDataTypeEnum.FILE.code)
.eq(EdFileInfo::getAllDeleted, false)
.eq(EdFileInfo::getPermanentDeleted, false)
.eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code));
if (count > 0) {
return ElectromagneticResultUtil.fail("-1", "目录下存在相同名称和后缀的文件,恢复失败");
}
this.edFileInfoMapper.update(new EdFileInfo(), Wrappers.lambdaUpdate(EdFileInfo.class).set(EdFileInfo::getAllDeleted, false).eq(EdFileInfo::getFileId, fileId)); this.edFileInfoMapper.update(new EdFileInfo(), Wrappers.lambdaUpdate(EdFileInfo.class).set(EdFileInfo::getAllDeleted, false).eq(EdFileInfo::getFileId, fileId));
this.edFileInfoMapper.update(new EdFileInfo(), Wrappers.lambdaUpdate(EdFileInfo.class).set(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code).eq(EdFileInfo::getId, edFileInfo.getId())); this.edFileInfoMapper.update(new EdFileInfo(), Wrappers.lambdaUpdate(EdFileInfo.class).set(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code).eq(EdFileInfo::getId, edFileInfo.getId()));
UserThreadLocal.setSuccessInfo(edFileInfo.getParentId(), edFileInfo.getId(), "还原文件 {} 成功文件id为 {}", edFileInfo.getFileName() + "." + edFileInfo.getFileType(), fileId); UserThreadLocal.setSuccessInfo(edFileInfo.getParentId(), edFileInfo.getId(), "还原文件 {} 成功文件id为 {}", edFileInfo.getFileName() + "." + edFileInfo.getFileType(), fileId);