From 50040f22165419012b375647189620cdd6a40d6f Mon Sep 17 00:00:00 2001 From: chenxudong Date: Thu, 17 Apr 2025 10:03:34 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E9=80=9A=E4=BA=86=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E7=9A=84=E7=9B=B8=E5=85=B3=E5=8A=9F=E8=83=BD=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manage/pojo/models/EdFileRelation.java | 41 +++++++++---------- .../service/serviceimpl/CommonService.java | 25 +++++++++++ .../serviceimpl/EdFileInfoServiceImpl.java | 8 ++-- .../EdFileRelationServiceImpl.java | 17 ++++---- 4 files changed, 56 insertions(+), 35 deletions(-) diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/EdFileRelation.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/EdFileRelation.java index 52a8bb7..f834312 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/EdFileRelation.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/EdFileRelation.java @@ -1,15 +1,14 @@ package com.electromagnetic.industry.software.manage.pojo.models; -import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; +import lombok.EqualsAndHashCode; -import java.util.Date; - +@EqualsAndHashCode(callSuper = true) @Data @TableName("ed_file_relation") -public class EdFileRelation { +public class EdFileRelation extends BaseModel { private String id; @@ -30,21 +29,21 @@ public class EdFileRelation { */ private String relationship; - /** - * 创建者 用户id - */ - @TableField(value = "created_by") - private String createdBy; - - @TableField(value = "created_at", fill = FieldFill.INSERT) - private Date createdAt; - - /** - * 更新者 用户id - */ - @TableField(value = "updated_by") - private String updatedBy; - - @TableField(value = "updated_at", fill = FieldFill.UPDATE) - private Date updatedAt; +// /** +// * 创建者 用户id +// */ +// @TableField(value = "created_by") +// private String createdBy; +// +// @TableField(value = "created_at", fill = FieldFill.INSERT) +// private Date createdAt; +// +// /** +// * 更新者 用户id +// */ +// @TableField(value = "updated_by") +// private String updatedBy; +// +// @TableField(value = "updated_at", fill = FieldFill.UPDATE) +// private Date updatedAt; } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/CommonService.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/CommonService.java index 0eb3b98..84d4130 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/CommonService.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/CommonService.java @@ -136,6 +136,31 @@ public class CommonService { return count == 0; } + public void resetFileInfoName(EdFileInfo fileInfo) { + String fileName = fileInfo.getFileName(); + String parentId = fileInfo.getParentId(); + for (int i = 0; i < 1000; ++i) { + long count = edFileInfoMapper.selectCount(Wrappers.lambdaQuery(EdFileInfo.class) + .eq(EdFileInfo::getFileName, fileName) + .eq(EdFileInfo::getFileType, fileInfo.getFileType()) + .eq(EdFileInfo::getParentId, parentId) + .eq(EdFileInfo::getDataType, EleDataTypeEnum.FILE.code) + .eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code)); + if (count > 0) { + fileName = fileName + APPEND_NEW_FILE_NAME; + } else { + fileInfo.setFileName(fileName); + return; + } + } + } + + public boolean isFolder(String id) { + EdFileInfo fileInfo = edFileInfoMapper.selectById(id); + Assert.notNull(fileInfo, StrFormatter.format("文件不存在,ID为{}", id)); + return fileInfo.getDataType().equals(EleDataTypeEnum.FOLDER.code); + } + public String getFileSysPath(String id) { EdFileInfo fileInfo = edFileInfoMapper.selectById(id); int dataOwnCode = fileInfo.getDataOwn(); diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileInfoServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileInfoServiceImpl.java index e322202..02a2a8b 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileInfoServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileInfoServiceImpl.java @@ -829,8 +829,8 @@ public class EdFileInfoServiceImpl extends ServiceImpl e)); maps.putAll(edFileInfos); } - List resFiles = new ArrayList<>(maps.values()); - String prjId = resFiles.get(0).getFilePath().split(MYSQL_FILE_PATH_SPLIT)[0]; + Set resFiles = new HashSet<>(maps.values()); + String prjId = resFiles.stream().findFirst().get().getFilePath().split(MYSQL_FILE_PATH_SPLIT)[0]; List prjFolders = this.baseMapper.selectList(Wrappers.lambdaQuery(EdFileInfo.class) .likeRight(EdFileInfo::getFilePath, prjId + MYSQL_FILE_PATH_SPLIT) .eq(EdFileInfo::getDataType, EleDataTypeEnum.FOLDER.code) @@ -846,10 +846,10 @@ public class EdFileInfoServiceImpl extends ServiceImpl 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 + commonService.getDbPath(edFileInfo.getFilePath()); + String destPath = userDownloadDataDir + File.separator + EXPORT_PRJ_NAME + "_" + nowTimeStr + File.separator + EXPORT_PRJ_NAME + File.separator + edFileInfo.getId(); fileSystemService.copyFile(filePath, destPath); } - String json = JSONUtil.toJsonStr(files); + String json = JSONUtil.toJsonStr(resFiles); String mysqlFilePath = userDownloadDataDir + File.separator + EXPORT_PRJ_NAME + "_" + nowTimeStr + File.separator + PRJ_INFO + ".json"; fileSystemService.writeStringToFile(mysqlFilePath, json); return files.stream().map(EdFileInfo::getId).toList(); diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileRelationServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileRelationServiceImpl.java index eb81d3f..34eadcb 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileRelationServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileRelationServiceImpl.java @@ -41,8 +41,6 @@ public class EdFileRelationServiceImpl extends ServiceImpl 0) { - edFileInfoService.resetFileInfoName(newEdFileInfo); + commonService.resetFileInfoName(newEdFileInfo); } - - edFileInfoService.saveOrUpdate(newEdFileInfo); + edFileInfoMapper.insertOrUpdate(newEdFileInfo); String fileDestPath = commonService.getFileSysPath(newEdFileInfo.getId()); FileUtil.writeFromStream(file.getInputStream(), fileDestPath); EleCommonUtil.encryptFile(fileDestPath, SecureUtil.aes(FILE_SEC_PASSWD.getBytes())); @@ -275,7 +272,7 @@ public class EdFileRelationServiceImpl extends ServiceImpl