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