From ffc471147236a2586d09016e0de5ea8fd905dee0 Mon Sep 17 00:00:00 2001 From: chenxudong Date: Mon, 30 Dec 2024 17:06:41 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=90=8D=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/serviceimpl/CommonService.java | 3 ++- .../service/serviceimpl/EDDataServiceImpl.java | 4 ++-- .../serviceimpl/EdFileInfoServiceImpl.java | 6 +++++- .../service/serviceimpl/EdPrjServiceImpl.java | 18 +++++++++++------- .../common/cons/ElectromagneticConstants.java | 2 ++ .../common/enums/EleDataStatusEnum.java | 2 +- 6 files changed, 23 insertions(+), 12 deletions(-) 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 8b99c00..e149347 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 @@ -9,6 +9,7 @@ import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.electromagnetic.industry.software.common.cons.ElectromagneticConstants; import com.electromagnetic.industry.software.common.enums.EffectFlagEnum; import com.electromagnetic.industry.software.common.enums.EleDataSaveStatusEnum; import com.electromagnetic.industry.software.common.enums.EleDataStatusEnum; @@ -148,7 +149,7 @@ public class CommonService { public ElectromagneticResult addFolder(String parentId, String folderName, boolean maxLengthCheck, boolean isPrjDir, String folderId) { // 验证名称是否合法 - Assert.isTrue(EleCommonUtil.isFileNameValid(folderName), "文件名不符合规范,只能包含中文字符、下划线、连字符、加号、数字和英文字符且长度小于32。"); + Assert.isTrue(EleCommonUtil.isFileNameValid(folderName), NAME_VALID_MSG); // 检查名称是否存在 Assert.isTrue(checkSameFolder(parentId, folderName), "该名称已存在"); diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EDDataServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EDDataServiceImpl.java index 8bc5f51..a44b361 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EDDataServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EDDataServiceImpl.java @@ -116,7 +116,7 @@ public class EDDataServiceImpl implements EDDataService { public Boolean createDataInfo(EDDataInfo edDataInfo) throws Exception { // 获取上级目录的名称 String fileName = edDataInfo.getDataName(); - Assert.isTrue(EleCommonUtil.isFileNameValid(fileName), "文件名不符合规范,只能包含中文字符、下划线、连字符、加号、数字和英文字符且长度小于32。"); + Assert.isTrue(EleCommonUtil.isFileNameValid(fileName), ElectromagneticConstants.NAME_VALID_MSG); Category categoryParent = new Category(); categoryParent.setCategoryId(edDataInfo.getCategoryId()); @@ -316,7 +316,7 @@ public class EDDataServiceImpl implements EDDataService { String fileType = EleCommonUtil.getFileType(fileFullName); // 获取文件名称 String fileName = EleCommonUtil.getFileName(fileFullName); - Assert.isTrue(EleCommonUtil.isFileNameValid(fileName), "文件名不符合规范,只能包含中文字符、下划线、连字符、加号、数字和英文字符且长度小于32。"); + Assert.isTrue(EleCommonUtil.isFileNameValid(fileName), ElectromagneticConstants.NAME_VALID_MSG); // 判断文件名称是否存在 EDDataParams folderParames = new EDDataParams(); folderParames.setParentId(categoryId); 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 ccef5e6..92c982f 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 @@ -17,6 +17,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.electromagnetic.industry.software.common.cons.ElectromagneticConstants; import com.electromagnetic.industry.software.common.enums.*; import com.electromagnetic.industry.software.common.exception.BizException; import com.electromagnetic.industry.software.common.resp.ElectromagneticResult; @@ -144,6 +145,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl createFolder(String parentId, String newFolderName) { + Assert.isTrue(EleCommonUtil.isFileNameValid(newFolderName), NAME_VALID_MSG); String folderId = IdWorker.getSnowFlakeIdString(); return commonService.addFolder(parentId, newFolderName, false, false, folderId); } @@ -220,6 +222,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl updateFileInfo(UpdateFileInfoDTO updateFileInfoDTO) { + Assert.isTrue(EleCommonUtil.isFileNameValid(updateFileInfoDTO.getFileName()), NAME_VALID_MSG); try { // 首先检查新名称是否存在 EdFileInfo fileInfo = this.baseMapper.selectById(updateFileInfoDTO.getId()); @@ -608,6 +611,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl upload(String parentId, MultipartFile file, Integer strategy) { + Assert.isTrue(EleCommonUtil.isFileNameValid(file.getOriginalFilename()), NAME_VALID_MSG); EdFileInfo fileInfo = this.baseMapper.selectById(parentId); Assert.isTrue(fileInfo.getDataType().equals(EleDataTypeEnum.FOLDER.code) && !fileInfo.getPrjDir(), "层级目录不允许上传文件"); // 首先检查是否是同名文件 @@ -615,7 +619,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl @Transactional(rollbackFor = Exception.class) public ElectromagneticResult createNewPrj(String prjName) { - Assert.isTrue(EleCommonUtil.isFileNameValid(prjName), "文件名不符合规范,只能包含中文字符、下划线、连字符、加号、数字和英文字符且长度小于32。"); - if (!EleCommonUtil.isFileNameValid(prjName)) { - String info = StrFormatter.format("工程名称{}不符合要求", prjName); - log.error(info); - return ElectromagneticResultUtil.fail("-1", info); - } - + Assert.isTrue(EleCommonUtil.isFileNameValid(prjName), NAME_VALID_MSG); +// if (!EleCommonUtil.isFileNameValid(prjName)) { +// String info = StrFormatter.format("工程名称{}不符合要求", prjName); +// log.error(info); +// return ElectromagneticResultUtil.fail("-1", info); +// } // 首先检查工程是否存在 // TODO 一个项目如果被废除了,然后又新建了一个同名工程,这种情况怎么处理,需要产品确认。当前这里先按照同名如果存在则抛出异常处理。 Long count = this.baseMapper.selectCount(Wrappers.lambdaQuery(EdFileInfo.class) @@ -127,6 +127,7 @@ public class EdPrjServiceImpl extends ServiceImpl @Override @Transactional(rollbackFor = Exception.class) public ElectromagneticResult modifyPrjName(String prjId, String newPrjName) { + Assert.isTrue(EleCommonUtil.isFileNameValid(newPrjName), NAME_VALID_MSG); try { Long count = this.baseMapper.selectCount(Wrappers.lambdaQuery(EdFileInfo.class) .eq(EdFileInfo::getParentId, PRJ_PARENT_ID) @@ -208,6 +209,7 @@ public class EdPrjServiceImpl extends ServiceImpl @Override @Transactional(rollbackFor = Exception.class) public ElectromagneticResult addFolder(String parentId, String folderName) { + Assert.isTrue(EleCommonUtil.isFileNameValid(folderName), NAME_VALID_MSG); int id = Integer.parseInt(this.baseMapper.maxPrjId()); String folderId = String.valueOf(id + 1); return commonService.addFolder(parentId, folderName, true, true, folderId); @@ -371,6 +373,8 @@ public class EdPrjServiceImpl extends ServiceImpl @Override @Transactional(rollbackFor = Exception.class) public ElectromagneticResult modifyFolder(String id, String newFolderName) { + + Assert.isTrue(EleCommonUtil.isFileNameValid(newFolderName), NAME_VALID_MSG); try { String parentId = this.baseMapper.selectById(id).getParentId(); // 首先检查同层是否有同名目录 diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/cons/ElectromagneticConstants.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/cons/ElectromagneticConstants.java index c304a15..13bca37 100644 --- a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/cons/ElectromagneticConstants.java +++ b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/cons/ElectromagneticConstants.java @@ -11,4 +11,6 @@ public interface ElectromagneticConstants { String PRJ_PARENT_ID = "0"; String UPLOAD_FILE_CHUNK_SUFFIX = ".part"; + + String NAME_VALID_MSG = "文件名不符合规范,只能包含中文字符、下划线、连字符、加号、数字和英文字符且长度小于32。"; } diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/EleDataStatusEnum.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/EleDataStatusEnum.java index 5e36b87..f6955b8 100644 --- a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/EleDataStatusEnum.java +++ b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/EleDataStatusEnum.java @@ -8,7 +8,7 @@ public enum EleDataStatusEnum { NOT_PUBLISHED(0, "未发布"), PUBLISHED(1, "已发布"), OCCUPY(2, "占用"), - DELETED(3, "已删除"); + DELETED(3, "待删除"); public final int code; public final String desc; From 0ec69f5d8f1537bed582af9c898d4ba37987d45f Mon Sep 17 00:00:00 2001 From: chenxudong Date: Tue, 31 Dec 2024 10:16:57 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E8=B0=83=E9=80=9A=E4=BA=86=E5=B1=82?= =?UTF-8?q?=E7=BA=A7=E6=B2=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EdFileRelationServiceImpl.java | 2 ++ .../service/serviceimpl/EdPrjServiceImpl.java | 25 +++++++++++++------ 2 files changed, 19 insertions(+), 8 deletions(-) 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 ef05cfd..b364bbf 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 @@ -5,9 +5,11 @@ import com.electromagnetic.industry.software.common.util.UserThreadLocal; import com.electromagnetic.industry.software.manage.mapper.EdFileRelationMapper; import com.electromagnetic.industry.software.manage.pojo.models.EdFileRelation; import com.electromagnetic.industry.software.manage.service.EdFileRelationService; +import org.springframework.stereotype.Service; import javax.annotation.Resource; +@Service public class EdFileRelationServiceImpl implements EdFileRelationService { @Resource diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdPrjServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdPrjServiceImpl.java index 2f4a866..42208d5 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdPrjServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdPrjServiceImpl.java @@ -97,7 +97,7 @@ public class EdPrjServiceImpl extends ServiceImpl .setPrjDir(true) .setDataType(EleDataTypeEnum.FOLDER.code) .setDataStatus(EleDataStatusEnum.NOT_PUBLISHED.code) - .setEffectFlag(EffectFlagEnum.EFFECT.code) + .setEffectFlag(EffectFlagEnum.NOT_EFFECTIVE.code) .setSaveStatus(EleDataSaveStatusEnum.SUCCESS.code) .setFilePath(newPrjId) .setSort(1) @@ -268,7 +268,8 @@ public class EdPrjServiceImpl extends ServiceImpl // 其余置为发布状态 LambdaUpdateWrapper updateWrapper = Wrappers.lambdaUpdate(EdFileInfo.class) .set(EdFileInfo::getDataStatus, EleDataStatusEnum.NOT_PUBLISHED.code) - .eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code) + .set(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code) + .eq(EdFileInfo::getEffectFlag, EffectFlagEnum.NOT_EFFECTIVE.code) .likeRight(EdFileInfo::getFilePath, prjId); this.update(updateWrapper); return ElectromagneticResultUtil.success(true); @@ -300,6 +301,7 @@ public class EdPrjServiceImpl extends ServiceImpl * @return */ @Override + @Transactional(rollbackFor = Exception.class) public ElectromagneticResult follow(String sourceId, String targetId) { try { @@ -314,7 +316,10 @@ public class EdPrjServiceImpl extends ServiceImpl final int count = i; EdFileInfo targetParentFile = targetEdFileInfos.stream() .filter(e -> StrUtil.count(e.getFilePath(), MYSQL_FILE_PATH_SPLIT) == count - 1) - .collect(Collectors.toList()).get(0); + .collect(Collectors.toList()).stream().findFirst().orElse(null); + if (targetParentFile == null) { + continue; + } List sourceTmpEdFiles = sourceEdFileInfos.stream() .filter(e -> StrUtil.count(e.getFilePath(), MYSQL_FILE_PATH_SPLIT) == count) .collect(Collectors.toList()); @@ -323,6 +328,7 @@ public class EdPrjServiceImpl extends ServiceImpl .collect(Collectors.toList()); Map sourceFileNameMap = sourceTmpEdFiles.stream().collect(Collectors.toMap(EdFileInfo::getFileName, e -> e)); List targetFileNames = targetTmpEdFiles.stream().map(EdFileInfo::getFileName).collect(Collectors.toList()); + int sort = targetTmpEdFiles.size(); for (EdFileInfo edFileInfo : sourceTmpEdFiles) { String sourceFileName = edFileInfo.getFileName(); if (!targetFileNames.contains(sourceFileName)) { @@ -330,28 +336,31 @@ public class EdPrjServiceImpl extends ServiceImpl EdFileInfo targetFile = new EdFileInfo(); int maxFolderId = Integer.parseInt(this.baseMapper.maxPrjId()); String newFolderId = String.valueOf(maxFolderId + 1); + String nowTimeStr = EleCommonUtil.getNowTimeStr(); + String fileCode = commonService.createFileCode(targetParentFile.getId(), EleDataTypeEnum.FOLDER.desc, FILE_START_VERSION, nowTimeStr); Date now = new Date(); targetFile.setId(newFolderId) .setFileId(newFolderId) .setFileName(sourceFile.getFileName()) .setFileVersion(FILE_START_VERSION) .setPrjDir(true) - .setParentId(targetParentFile.getParentId()) - .setFileTime(EleCommonUtil.getNowTimeStr()) + .setParentId(targetParentFile.getId()) + .setFileTime(nowTimeStr) .setDataType(EleDataTypeEnum.FOLDER.code) .setDataStatus(EleDataStatusEnum.NOT_PUBLISHED.code) - .setEffectFlag(EffectFlagEnum.EFFECT.code) + .setEffectFlag(EffectFlagEnum.NOT_EFFECTIVE.code) + .setFileCode(fileCode) .setSaveStatus(EleDataSaveStatusEnum.SUCCESS.code) .setFilePath(targetParentFile.getFilePath() + MYSQL_FILE_PATH_SPLIT + newFolderId) - .setSort(targetTmpEdFiles.size() + 1) + .setSort(++sort) .setCreatedTime(now) .setUpdatedTime(now) .setCreatedBy(currentUserId) .setUpdatedBy(currentUserId); this.save(targetFile); + targetEdFileInfos.add(targetFile); String targetSysFilePath = commonService.getFileSysPath(targetFile.getFilePath()); fileSystemService.createDirectory(targetSysFilePath); - targetEdFileInfos = commonService.selectAllAdminFolder(targetId); } } } From 22e92702d17798b6e971ddec06827006802d8686 Mon Sep 17 00:00:00 2001 From: chenxudong Date: Tue, 31 Dec 2024 11:08:25 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=8F=91=E7=8E=B0?= =?UTF-8?q?=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manage/controller/ProjectController.java | 4 +- .../software/manage/service/EdPrjService.java | 3 +- .../service/serviceimpl/CommonService.java | 17 +++++---- .../serviceimpl/EdFileInfoServiceImpl.java | 4 +- .../service/serviceimpl/EdPrjServiceImpl.java | 38 +++++++++++-------- 5 files changed, 37 insertions(+), 29 deletions(-) diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/ProjectController.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/ProjectController.java index 74827a9..45612db 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/ProjectController.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/ProjectController.java @@ -50,8 +50,8 @@ public class ProjectController { } @RequestMapping("deleteFolder") - public ElectromagneticResult deleteFolder(@RequestParam String id, @RequestParam String parentId) { - return edPrjService.deleteFolder(id, parentId); + public ElectromagneticResult deleteFolder(@RequestParam String id) { + return edPrjService.deleteFolder(id); } @RequestMapping("folderResort") diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdPrjService.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdPrjService.java index 00a2d2a..d292763 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdPrjService.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdPrjService.java @@ -67,10 +67,9 @@ public interface EdPrjService { * 删除子集 * * @param id - * @param parentId * @return */ - ElectromagneticResult deleteFolder(String id, String parentId); + ElectromagneticResult deleteFolder(String id); /** * 层级沿用 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 e149347..d6f0bfd 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 @@ -9,7 +9,6 @@ import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.electromagnetic.industry.software.common.cons.ElectromagneticConstants; import com.electromagnetic.industry.software.common.enums.EffectFlagEnum; import com.electromagnetic.industry.software.common.enums.EleDataSaveStatusEnum; import com.electromagnetic.industry.software.common.enums.EleDataStatusEnum; @@ -91,14 +90,14 @@ public class CommonService { /** * 检查同层级是否有同名的文件夹 */ - public boolean checkSameFolder(String parentId, String newFolderName) { + public boolean notExistSameFolder(String parentId, String newFolderName) { Long count = edFileInfoMapper.selectCount(Wrappers.lambdaQuery(EdFileInfo.class) .eq(EdFileInfo::getDataType, EleDataTypeEnum.FOLDER.code) .eq(EdFileInfo::getParentId, parentId) .eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code) .eq(EdFileInfo::getFileName, newFolderName)); - return count > 0; + return count == 0; } public String getFileSysPath(String dbPath) { @@ -151,7 +150,7 @@ public class CommonService { // 验证名称是否合法 Assert.isTrue(EleCommonUtil.isFileNameValid(folderName), NAME_VALID_MSG); // 检查名称是否存在 - Assert.isTrue(checkSameFolder(parentId, folderName), "该名称已存在"); + Assert.isTrue(notExistSameFolder(parentId, folderName), "该名称已存在"); LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(EdFileInfo.class) .select(EdFileInfo::getId, EdFileInfo::getFilePath) @@ -189,7 +188,7 @@ public class CommonService { .setPrjDir(isPrjDir) .setDataType(EleDataTypeEnum.FOLDER.code) .setDataStatus(isPrjDir ? EleDataStatusEnum.NOT_PUBLISHED.code : EleDataStatusEnum.PUBLISHED.code) - .setEffectFlag(isPrjDir ? EffectFlagEnum.NOT_EFFECTIVE.code : EffectFlagEnum.EFFECT.code) + .setEffectFlag(EffectFlagEnum.EFFECT.code) .setSaveStatus(EleDataSaveStatusEnum.SUCCESS.code) .setFilePath(path) .setSort(names.size() + 1) @@ -209,13 +208,16 @@ public class CommonService { } } - public ElectromagneticResult queryAllPrjInfo() { + public ElectromagneticResult queryAllPrjInfo(boolean isAdminQuery) { try { LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(EdFileInfo.class) .select(EdFileInfo::getId) .eq(EdFileInfo::getParentId, PRJ_PARENT_ID) .eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code); + if (!isAdminQuery) { + queryWrapper.eq(EdFileInfo::getDataStatus, EleDataStatusEnum.PUBLISHED.code); + } List ids = edFileInfoMapper.selectList(queryWrapper).stream().map(EdFileInfo::getId).collect(Collectors.toList()); List projectVOS = new ArrayList<>(); @@ -248,11 +250,12 @@ public class CommonService { } } - public ElectromagneticResult deleteFolder(String id, String parentId) { + public ElectromagneticResult deleteFolder(String id) { // 如果文件夹下存在文件(包括文件夹和已经逻辑删除的文件),则不允许删除。后面管理员选择会有物理删除文件夹和文件的功能,此时MySQL和文件系统则会进行物理删除该文件。 try { // 这里要分两种情况,1是删除层级目录,2是删除用户创建的文件夹 EdFileInfo fileInfo = edFileInfoMapper.selectOne(Wrappers.lambdaQuery().eq(EdFileInfo::getId, id)); + String parentId = fileInfo.getParentId(); if (fileInfo.getPrjDir()) { // 删除的是层级目录 long count = edFileInfoMapper.selectCount(Wrappers.lambdaQuery() .eq(EdFileInfo::getPrjDir, false) 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 92c982f..a9fc237 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 @@ -157,7 +157,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl tree() { - return commonService.queryAllPrjInfo(); + return commonService.queryAllPrjInfo(false); } /** @@ -171,7 +171,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl .setPrjDir(true) .setDataType(EleDataTypeEnum.FOLDER.code) .setDataStatus(EleDataStatusEnum.NOT_PUBLISHED.code) - .setEffectFlag(EffectFlagEnum.NOT_EFFECTIVE.code) + .setEffectFlag(EffectFlagEnum.EFFECT.code) .setSaveStatus(EleDataSaveStatusEnum.SUCCESS.code) .setFilePath(newPrjId) .setSort(1) @@ -222,7 +221,7 @@ public class EdPrjServiceImpl extends ServiceImpl */ @Override public ElectromagneticResult queryAllPrjInfo() { - return commonService.queryAllPrjInfo(); + return commonService.queryAllPrjInfo(true); } /** @@ -267,9 +266,8 @@ public class EdPrjServiceImpl extends ServiceImpl .likeRight(EdFileInfo::getFilePath, prjId)); // 其余置为发布状态 LambdaUpdateWrapper updateWrapper = Wrappers.lambdaUpdate(EdFileInfo.class) - .set(EdFileInfo::getDataStatus, EleDataStatusEnum.NOT_PUBLISHED.code) - .set(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code) - .eq(EdFileInfo::getEffectFlag, EffectFlagEnum.NOT_EFFECTIVE.code) + .set(EdFileInfo::getDataStatus, EleDataStatusEnum.PUBLISHED.code) + .eq(EdFileInfo::getDataStatus, EleDataStatusEnum.NOT_PUBLISHED.code) .likeRight(EdFileInfo::getFilePath, prjId); this.update(updateWrapper); return ElectromagneticResultUtil.success(true); @@ -284,13 +282,12 @@ public class EdPrjServiceImpl extends ServiceImpl * 删除子集 * * @param fileId - * @param parentId * @return */ @Override @Transactional(rollbackFor = Exception.class) - public ElectromagneticResult deleteFolder(String fileId, String parentId) { - return commonService.deleteFolder(fileId, parentId); + public ElectromagneticResult deleteFolder(String fileId) { + return commonService.deleteFolder(fileId); } /** @@ -310,6 +307,7 @@ public class EdPrjServiceImpl extends ServiceImpl // 查找source的全部目录 List sourceEdFileInfos = commonService.selectAllAdminFolder(sourceId); List targetEdFileInfos = commonService.selectAllAdminFolder(targetId); + List needSavePaths = new ArrayList<>(); // 确定层级最大为prjFolderMaxLength层,现在逐层来处理。 for (int i = 1; i <= prjFolderMaxLength; ++i) { // 先查找source第i层下有那些子集 @@ -360,15 +358,22 @@ public class EdPrjServiceImpl extends ServiceImpl this.save(targetFile); targetEdFileInfos.add(targetFile); String targetSysFilePath = commonService.getFileSysPath(targetFile.getFilePath()); - fileSystemService.createDirectory(targetSysFilePath); + needSavePaths.add(targetSysFilePath); + } else { + String info = "存在相同子集"; + log.error(info); + throw new BizException(-1, info); } } } + for (String path : needSavePaths) { + fileSystemService.createDirectory(path); + } return ElectromagneticResultUtil.success(true); } catch (Exception e) { String info = StrFormatter.format("层级沿用失败"); log.error(info, e); - return ElectromagneticResultUtil.fail("-1", info); + throw new BizException(-1, info); } } @@ -387,11 +392,12 @@ public class EdPrjServiceImpl extends ServiceImpl try { String parentId = this.baseMapper.selectById(id).getParentId(); // 首先检查同层是否有同名目录 - if (commonService.checkSameFolder(parentId, newFolderName)) { - String info = "存在同名子集,禁止修改"; - log.error(info); - return ElectromagneticResultUtil.fail("-1", info); - } + Assert.isTrue(commonService.notExistSameFolder(parentId, newFolderName)); +// if (commonService.notExistSameFolder(parentId, newFolderName)) { +// String info = "存在同名子集,禁止修改"; +// log.error(info); +// return ElectromagneticResultUtil.fail("-1", info); +// } String currentUserId = UserThreadLocal.getUserId(); Date now = new Date(); EdFileInfo fileInfo = this.baseMapper.selectOne(Wrappers.lambdaQuery(EdFileInfo.class) From 895bbfc60025d31ecab2d21bc9dcb1c5c2afd025 Mon Sep 17 00:00:00 2001 From: chenxudong Date: Tue, 31 Dec 2024 14:28:27 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=8F=91=E7=8E=B0?= =?UTF-8?q?=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../software/manage/service/serviceimpl/CommonService.java | 4 +++- .../manage/service/serviceimpl/EdPrjServiceImpl.java | 5 ----- 2 files changed, 3 insertions(+), 6 deletions(-) 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 d6f0bfd..5a39bac 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 @@ -224,7 +224,9 @@ public class CommonService { for (String id : ids) { List edFileInfos = selectAllAdminFolder(id); - + if (!isAdminQuery) { + edFileInfos = edFileInfos.stream().filter(e -> e.getDataStatus().equals(EleDataStatusEnum.PUBLISHED.code)).collect(Collectors.toList()); + } // 转换为树 TreeNodeConfig config = new TreeNodeConfig(); config.setIdKey(EdFileInfo.Fields.id); diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdPrjServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdPrjServiceImpl.java index acb22e5..1c3e8a9 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdPrjServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdPrjServiceImpl.java @@ -393,11 +393,6 @@ public class EdPrjServiceImpl extends ServiceImpl String parentId = this.baseMapper.selectById(id).getParentId(); // 首先检查同层是否有同名目录 Assert.isTrue(commonService.notExistSameFolder(parentId, newFolderName)); -// if (commonService.notExistSameFolder(parentId, newFolderName)) { -// String info = "存在同名子集,禁止修改"; -// log.error(info); -// return ElectromagneticResultUtil.fail("-1", info); -// } String currentUserId = UserThreadLocal.getUserId(); Date now = new Date(); EdFileInfo fileInfo = this.baseMapper.selectOne(Wrappers.lambdaQuery(EdFileInfo.class)