新增导出工程时用户创建的空文件夹校验。
This commit is contained in:
parent
0dc0c1d658
commit
6c31cd0c42
|
|
@ -4,7 +4,9 @@ import com.baomidou.mybatisplus.annotation.IdType;
|
|||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@TableName("file_tag_relations")
|
||||
public class FileTagRelation extends BaseModel {
|
||||
|
|
|
|||
|
|
@ -873,6 +873,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
|||
maps.putAll(edFileInfos);
|
||||
}
|
||||
Set<EdFileInfo> resFiles = new HashSet<>(maps.values());
|
||||
|
||||
String prjId = resFiles.stream().findFirst().get().getFilePath().split(MYSQL_FILE_PATH_SPLIT)[0];
|
||||
List<EdFileInfo> prjFolders = this.baseMapper.selectList(Wrappers.lambdaQuery(EdFileInfo.class)
|
||||
.likeRight(EdFileInfo::getFilePath, prjId + MYSQL_FILE_PATH_SPLIT)
|
||||
|
|
@ -886,12 +887,22 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
|||
resFiles.clear();
|
||||
resFiles.addAll(tmps.values());
|
||||
resFiles.add(prjFileInfo);
|
||||
|
||||
List<EdFileInfo> files = resFiles.stream().filter(e -> e.getDataType().equals(EleDataTypeEnum.FILE.code)).toList();
|
||||
for (EdFileInfo edFileInfo : files) {
|
||||
String filePath = commonService.getFileSysPath(edFileInfo.getId()); // file
|
||||
String destPath = userDownloadDataDir + File.separator + EXPORT_PRJ_NAME + "_" + nowTimeStr + File.separator + EXPORT_PRJ_NAME + File.separator + edFileInfo.getId();
|
||||
fileSystemService.copyFile(filePath, destPath);
|
||||
}
|
||||
// 去除用户创建的空文件夹
|
||||
List<EdFileInfo> userFolders = resFiles.stream().filter(e ->
|
||||
e.getDataType().equals(EleDataTypeEnum.FOLDER.code) && DataOwnEnum.isFileCode(e.getDataOwn())
|
||||
).toList();
|
||||
List<String> userFolderIds = userFolders.stream().map(EdFileInfo::getId).collect(Collectors.toList());
|
||||
List<String> fileParentIds = files.stream().map(EdFileInfo::getParentId).toList();
|
||||
userFolderIds.removeAll(fileParentIds);
|
||||
resFiles = resFiles.stream().filter(e -> !userFolderIds.contains(e.getId())).collect(Collectors.toSet());
|
||||
|
||||
String json = JSONUtil.toJsonStr(resFiles);
|
||||
String mysqlFilePath = userDownloadDataDir + File.separator + EXPORT_PRJ_NAME + "_" + nowTimeStr + File.separator + PRJ_INFO + ".json";
|
||||
fileSystemService.writeStringToFile(mysqlFilePath, json);
|
||||
|
|
|
|||
Loading…
Reference in New Issue