新增回收站文件还原接口

This commit is contained in:
马超 2021-01-20 17:40:41 +08:00
parent a3b4ec168b
commit 5253791bed
3 changed files with 87 additions and 1 deletions

View File

@ -90,4 +90,15 @@ public class PathUtil {
} }
return fileName.substring(fileName.lastIndexOf(".")); return fileName.substring(fileName.lastIndexOf("."));
} }
public static String getParentPath(String path) {
return path.substring(0, path.lastIndexOf("/"));
}
public static void main(String[] args) {
String path = "aaa/bbb/ccc";
System.out.println(getParentPath(path));
String fileName = path.substring(path.lastIndexOf("/"));
System.out.println(fileName);
}
} }

View File

@ -1,14 +1,20 @@
package com.qiwenshare.file.controller; package com.qiwenshare.file.controller;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.qiwenshare.common.cbb.DateUtil;
import com.qiwenshare.common.cbb.RestResult; import com.qiwenshare.common.cbb.RestResult;
import com.qiwenshare.common.util.PathUtil;
import com.qiwenshare.file.api.IRecoveryFileService; import com.qiwenshare.file.api.IRecoveryFileService;
import com.qiwenshare.file.api.IUserFileService; import com.qiwenshare.file.api.IUserFileService;
import com.qiwenshare.file.api.IUserService;
import com.qiwenshare.file.domain.RecoveryFile; import com.qiwenshare.file.domain.RecoveryFile;
import com.qiwenshare.file.domain.UserBean;
import com.qiwenshare.file.domain.UserFile; import com.qiwenshare.file.domain.UserFile;
import com.qiwenshare.file.dto.BatchDeleteRecoveryFileDTO; import com.qiwenshare.file.dto.BatchDeleteRecoveryFileDTO;
import com.qiwenshare.file.dto.DeleteRecoveryFileDTO; import com.qiwenshare.file.dto.DeleteRecoveryFileDTO;
import com.qiwenshare.file.service.RecoveryFileService; import com.qiwenshare.file.dto.recoveryfile.RestoreFileDto;
import com.qiwenshare.file.vo.file.RecoveryFileListVo; import com.qiwenshare.file.vo.file.RecoveryFileListVo;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
@ -27,6 +33,8 @@ public class RecoveryFileController {
IRecoveryFileService recoveryFileService; IRecoveryFileService recoveryFileService;
@Resource @Resource
IUserFileService userFileService; IUserFileService userFileService;
@Resource
IUserService userService;
@Operation(summary = "删除回收文件", description = "删除回收文件", tags = {"recoveryfile"}) @Operation(summary = "删除回收文件", description = "删除回收文件", tags = {"recoveryfile"})
@ -76,4 +84,62 @@ public class RecoveryFileController {
return restResult; return restResult;
} }
@Operation(summary = "还原文件", description = "还原文件", tags = {"recoveryfile"})
@RequestMapping(value = "/restorefile", method = RequestMethod.POST)
@ResponseBody
public RestResult restoreFile(RestoreFileDto restoreFileDto, @RequestHeader("token") String token) {
UserBean sessionUserBean = userService.getUserBeanByToken(token);
LambdaUpdateWrapper<UserFile> userFileLambdaUpdateWrapper = new LambdaUpdateWrapper<>();
userFileLambdaUpdateWrapper.set(UserFile::getDeleteFlag, 0)
.set(UserFile::getDeleteBatchNum, "")
.eq(UserFile::getDeleteBatchNum, restoreFileDto.getDeleteBatchNum());
userFileService.update(userFileLambdaUpdateWrapper);
String filePath = PathUtil.getParentPath(restoreFileDto.getFilePath());
while(filePath.indexOf("/") != -1) {
String fileName = filePath.substring(filePath.lastIndexOf("/") + 1);
filePath = PathUtil.getParentPath(filePath);
LambdaQueryWrapper<UserFile> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(UserFile::getFilePath, filePath)
.eq(UserFile::getDeleteFlag, 0)
.eq(UserFile::getUserId, sessionUserBean.getUserId());
List<UserFile> userFileList = userFileService.list(lambdaQueryWrapper);
if (userFileList.size() == 0) {
UserFile userFile = new UserFile();
userFile.setUserId(sessionUserBean.getUserId());
userFile.setFileName(fileName);
userFile.setFilePath(filePath);
userFile.setDeleteFlag(0);
userFile.setIsDir(1);
userFile.setUploadTime(DateUtil.getCurrentTime());
userFileService.save(userFile);
}
// else {
//
// LambdaUpdateWrapper<UserFile> updateUserfileWp = new LambdaUpdateWrapper<>();
// updateUserfileWp.set(UserFile::getDeleteBatchNum, "")
// .set(UserFile::getDeleteFlag, "0")
// .eq(UserFile::getFilePath, filePath).eq(UserFile::getUserId, sessionUserBean.getUserId());
// userFileService.update(updateUserfileWp);
// }
}
LambdaQueryWrapper<RecoveryFile> recoveryFileServiceLambdaQueryWrapper = new LambdaQueryWrapper<>();
recoveryFileServiceLambdaQueryWrapper.eq(RecoveryFile::getDeleteBatchNum, restoreFileDto.getDeleteBatchNum());
recoveryFileService.remove(recoveryFileServiceLambdaQueryWrapper);
return RestResult.success().message("还原成功!");
}
} }

View File

@ -0,0 +1,9 @@
package com.qiwenshare.file.dto.recoveryfile;
import lombok.Data;
@Data
public class RestoreFileDto {
private String deleteBatchNum;
private String filePath;
}