diff --git a/common-api/src/main/java/cn/lili/controller/common/FileDirectoryController.java b/common-api/src/main/java/cn/lili/controller/common/FileDirectoryController.java index fd82a9c3..1079ad54 100644 --- a/common-api/src/main/java/cn/lili/controller/common/FileDirectoryController.java +++ b/common-api/src/main/java/cn/lili/controller/common/FileDirectoryController.java @@ -1,5 +1,6 @@ package cn.lili.controller.common; +import cn.lili.common.enums.ResultCode; import cn.lili.common.enums.ResultUtil; import cn.lili.common.security.context.UserContext; import cn.lili.common.vo.ResultMessage; @@ -57,8 +58,10 @@ public class FileDirectoryController { @ApiOperation(value = "删除文件目录") @DeleteMapping("/{id}") public ResultMessage deleteSceneFileList(@PathVariable String id) { - //删除文件夹下面的图片 - fileService.batchDeleteByDirectory(id); + //检测文件夹下是否包含图片 + if(fileService.countByDirectory(id)){ + return ResultUtil.error(ResultCode.FILE_DIRECTORY_NOT_EMPTY); + } //删除目录 fileDirectoryService.removeById(id); return ResultUtil.success(); diff --git a/framework/src/main/java/cn/lili/common/enums/ResultCode.java b/framework/src/main/java/cn/lili/common/enums/ResultCode.java index 55d392a3..92cb4cff 100644 --- a/framework/src/main/java/cn/lili/common/enums/ResultCode.java +++ b/framework/src/main/java/cn/lili/common/enums/ResultCode.java @@ -42,6 +42,7 @@ public enum ResultCode { PLATFORM_NOT_SUPPORTED_IM(1006, "平台未开启IM"), STORE_NOT_SUPPORTED_IM(1007, "店铺未开启IM"), UNINITIALIZED_PASSWORD(1008, "非初始化密码,无法进行初始化设置"), + FILE_DIRECTORY_NOT_EMPTY(1012, "文件夹下有文件,请删除所有文件后删除文件夹!"), /** * 分类 */ diff --git a/framework/src/main/java/cn/lili/modules/file/service/FileService.java b/framework/src/main/java/cn/lili/modules/file/service/FileService.java index 9f539f18..ce3d7d70 100644 --- a/framework/src/main/java/cn/lili/modules/file/service/FileService.java +++ b/framework/src/main/java/cn/lili/modules/file/service/FileService.java @@ -31,6 +31,13 @@ public interface FileService extends IService { */ void batchDeleteByDirectory(String directoryId); + /** + * 根据文件夹ID查看是否有文件 + * @param directoryId 文件夹ID + * @return + */ + Boolean countByDirectory(String directoryId); + /** * 所有者批量删除 * diff --git a/framework/src/main/java/cn/lili/modules/file/serviceimpl/FileServiceImpl.java b/framework/src/main/java/cn/lili/modules/file/serviceimpl/FileServiceImpl.java index b860aa9f..cb9582bb 100644 --- a/framework/src/main/java/cn/lili/modules/file/serviceimpl/FileServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/file/serviceimpl/FileServiceImpl.java @@ -59,6 +59,11 @@ public class FileServiceImpl extends ServiceImpl implements Fi this.remove(queryWrapper); } + @Override + public Boolean countByDirectory(String directoryId) { + return this.count(new LambdaQueryWrapper().eq(File::getFileDirectoryId, directoryId))>0; + } + @Override public void batchDelete(List ids, AuthUser authUser) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();