删除文件夹需判断,优化删除逻辑。是否文件夹下存在图片。

This commit is contained in:
pikachu1995@126.com 2024-07-18 14:28:59 +08:00
parent 57ee156798
commit aaa0748409
4 changed files with 18 additions and 2 deletions

View File

@ -1,5 +1,6 @@
package cn.lili.controller.common; package cn.lili.controller.common;
import cn.lili.common.enums.ResultCode;
import cn.lili.common.enums.ResultUtil; import cn.lili.common.enums.ResultUtil;
import cn.lili.common.security.context.UserContext; import cn.lili.common.security.context.UserContext;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
@ -57,8 +58,10 @@ public class FileDirectoryController {
@ApiOperation(value = "删除文件目录") @ApiOperation(value = "删除文件目录")
@DeleteMapping("/{id}") @DeleteMapping("/{id}")
public ResultMessage<Object> deleteSceneFileList(@PathVariable String id) { public ResultMessage<Object> deleteSceneFileList(@PathVariable String id) {
//删除文件夹下面的图片 //检测文件夹下是否包含图片
fileService.batchDeleteByDirectory(id); if(fileService.countByDirectory(id)){
return ResultUtil.error(ResultCode.FILE_DIRECTORY_NOT_EMPTY);
}
//删除目录 //删除目录
fileDirectoryService.removeById(id); fileDirectoryService.removeById(id);
return ResultUtil.success(); return ResultUtil.success();

View File

@ -42,6 +42,7 @@ public enum ResultCode {
PLATFORM_NOT_SUPPORTED_IM(1006, "平台未开启IM"), PLATFORM_NOT_SUPPORTED_IM(1006, "平台未开启IM"),
STORE_NOT_SUPPORTED_IM(1007, "店铺未开启IM"), STORE_NOT_SUPPORTED_IM(1007, "店铺未开启IM"),
UNINITIALIZED_PASSWORD(1008, "非初始化密码,无法进行初始化设置"), UNINITIALIZED_PASSWORD(1008, "非初始化密码,无法进行初始化设置"),
FILE_DIRECTORY_NOT_EMPTY(1012, "文件夹下有文件,请删除所有文件后删除文件夹!"),
/** /**
* 分类 * 分类
*/ */

View File

@ -31,6 +31,13 @@ public interface FileService extends IService<File> {
*/ */
void batchDeleteByDirectory(String directoryId); void batchDeleteByDirectory(String directoryId);
/**
* 根据文件夹ID查看是否有文件
* @param directoryId 文件夹ID
* @return
*/
Boolean countByDirectory(String directoryId);
/** /**
* 所有者批量删除 * 所有者批量删除
* *

View File

@ -59,6 +59,11 @@ public class FileServiceImpl extends ServiceImpl<FileMapper, File> implements Fi
this.remove(queryWrapper); this.remove(queryWrapper);
} }
@Override
public Boolean countByDirectory(String directoryId) {
return this.count(new LambdaQueryWrapper<File>().eq(File::getFileDirectoryId, directoryId))>0;
}
@Override @Override
public void batchDelete(List<String> ids, AuthUser authUser) { public void batchDelete(List<String> ids, AuthUser authUser) {
LambdaQueryWrapper<File> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<File> queryWrapper = new LambdaQueryWrapper<>();