文件删除时并非真正的删除,将文件状态置为RECYCLE状态,如果是目录,将其中的文件置为DEL状态,目录则置为RECYCLE,查询时只查询RECYCLE状态的文件和目录。

找到com.swx.easypan.controller包下的 RecycleController,修改代码如下:

RecycleController
@LoginValidator
@Validated
@RestController
@ResponseResult
@RequestMapping("/recycle")
public class RecycleController {
}

只查询RECYCLE状态的文件和目录。

接口信息

路径地址 http://localhost:7090/api/recycle/loadRecycleList
请求方式 POST
请求参数 FileInfoQuery
返回结果 FileInfoVO

实体类

参数和返回结果实体类,在文件信息工程中有用到,这里直接复用即可

定义Service

Service直接使用获取文件列表的fileInfoService.pageInfo()即可,变更查询条件。

定义Controller

RecycleController
@LoginValidator
@Validated
@RestController
@ResponseResult
@RequestMapping("/recycle")
public class RecycleController {

private final FileInfoService fileInfoService;

public RecycleController(FileInfoService fileInfoService) {
this.fileInfoService = fileInfoService;
}

// 加载所有回收站数据
@GetMapping("/loadRecycleList")
public IPage<FileInfoVO> loadRecycleList(HttpSession session,
FileInfoQuery query) {
Page<FileInfo> pageParam = new Page<>(query.getPage(), query.getLimit());
query.setUserId(((SessionWebUserVO) session.getAttribute(Constants.SESSION_KEY)).getId());
query.setDeleted(FileDelFlagEnums.RECYCLE.getFlag());
query.setOrderBy("recovery_time desc");
return fileInfoService.pageInfo(pageParam, query);
}
}