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

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;
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<Object> 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();

View File

@ -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, "文件夹下有文件,请删除所有文件后删除文件夹!"),
/**
* 分类
*/

View File

@ -31,6 +31,13 @@ public interface FileService extends IService<File> {
*/
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);
}
@Override
public Boolean countByDirectory(String directoryId) {
return this.count(new LambdaQueryWrapper<File>().eq(File::getFileDirectoryId, directoryId))>0;
}
@Override
public void batchDelete(List<String> ids, AuthUser authUser) {
LambdaQueryWrapper<File> queryWrapper = new LambdaQueryWrapper<>();