保存分享文件到网盘功能优化

This commit is contained in:
MAC 2023-05-28 18:26:41 +08:00
parent f62bc605cb
commit d4b66e96ed
2 changed files with 34 additions and 22 deletions

View File

@ -5,6 +5,7 @@ import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.RandomUtil;
import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.qiwenshare.common.anno.MyLog; import com.qiwenshare.common.anno.MyLog;
import com.qiwenshare.common.result.RestResult; import com.qiwenshare.common.result.RestResult;
import com.qiwenshare.common.util.DateUtil; import com.qiwenshare.common.util.DateUtil;
@ -117,34 +118,43 @@ public class ShareController {
public RestResult saveShareFile(@RequestBody SaveShareFileDTO saveShareFileDTO) { public RestResult saveShareFile(@RequestBody SaveShareFileDTO saveShareFileDTO) {
JwtUser sessionUserBean = SessionUtil.getSession(); JwtUser sessionUserBean = SessionUtil.getSession();
List<ShareFile> fileList = JSON.parseArray(saveShareFileDTO.getFiles(), ShareFile.class); // List<ShareFile> fileList = JSON.parseArray(saveShareFileDTO.getFiles(), ShareFile.class);
String savefilePath = saveShareFileDTO.getFilePath(); String savefilePath = saveShareFileDTO.getFilePath();
String userId = sessionUserBean.getUserId(); String userId = sessionUserBean.getUserId();
String[] userFileIdArr = saveShareFileDTO.getUserFileIds().split(",");
List<UserFile> saveUserFileList = new ArrayList<>(); List<UserFile> saveUserFileList = new ArrayList<>();
for (ShareFile shareFile : fileList) { for (String userFileId : userFileIdArr) {
UserFile userFile = userFileService.getById(shareFile.getUserFileId());
UserFile userFile = userFileService.getById(userFileId);
String fileName = userFile.getFileName(); String fileName = userFile.getFileName();
String filePath = userFile.getFilePath();
UserFile userFile2 = new UserFile();
BeanUtil.copyProperties(userFile, userFile2);
String savefileName = fileDealComp.getRepeatFileName(userFile, savefilePath); String savefileName = fileDealComp.getRepeatFileName(userFile, savefilePath);
if (userFile.getIsDir() == 1) { if (userFile.getIsDir() == 1) {
List<UserFile> userfileList = userFileService.selectUserFileByLikeRightFilePath(new QiwenFile(userFile.getFilePath(), userFile.getFileName(), true).getPath(), userFile.getUserId()); ShareFile shareFile = shareFileService.getOne(new QueryWrapper<ShareFile>().lambda().eq(ShareFile::getUserFileId, userFileId).eq(ShareFile::getShareBatchNum, saveShareFileDTO.getShareBatchNum()));
log.info("查询文件列表:" + JSON.toJSONString(userfileList)); List<ShareFile> shareFileList = shareFileService.list(new QueryWrapper<ShareFile>().lambda().eq(ShareFile::getShareBatchNum, saveShareFileDTO.getShareBatchNum()).likeRight(ShareFile::getShareFilePath, QiwenFile.formatPath(shareFile.getShareFilePath() +"/"+ fileName)));
String filePath = userFile.getFilePath();
userfileList.forEach(p->{
p.setUserFileId(IdUtil.getSnowflakeNextIdStr());
p.setUserId(userId);
p.setFilePath(p.getFilePath().replaceFirst(filePath + "/" + fileName, savefilePath + "/" + savefileName));
saveUserFileList.add(p);
log.info("当前文件:" + JSON.toJSONString(p));
});
for (ShareFile shareFile1 : shareFileList) {
UserFile userFile1 = userFileService.getById(shareFile1.getUserFileId());
userFile1.setUserFileId(IdUtil.getSnowflakeNextIdStr());
userFile1.setUserId(userId);
userFile1.setFilePath(userFile1.getFilePath().replaceFirst(QiwenFile.formatPath(filePath + "/" + fileName), QiwenFile.formatPath(savefilePath + "/" + savefileName)));
saveUserFileList.add(userFile1);
log.info("当前文件:" + JSON.toJSONString(userFile1));
} }
userFile.setUserFileId(IdUtil.getSnowflakeNextIdStr()); }
userFile.setUserId(userId); userFile2.setUserFileId(IdUtil.getSnowflakeNextIdStr());
userFile.setFilePath(savefilePath); userFile2.setUserId(userId);
userFile.setFileName(savefileName); userFile2.setFilePath(savefilePath);
saveUserFileList.add(userFile); userFile2.setFileName(savefileName);
saveUserFileList.add(userFile2);
} }
log.info("----------" + JSON.toJSONString(saveUserFileList)); log.info("----------" + JSON.toJSONString(saveUserFileList));

View File

@ -6,8 +6,10 @@ import lombok.Data;
@Data @Data
@Schema(name = "保存分享文件DTO",required = true) @Schema(name = "保存分享文件DTO",required = true)
public class SaveShareFileDTO { public class SaveShareFileDTO {
@Schema(description="文件集合", example = "[{\"userFileId\":12},{\"userFileId\":13}]") @Schema(description="用户文件id集合", required = true)
private String files; private String userFileIds;
@Schema(description = "文件路径") @Schema(description = "文件路径", required = true)
private String filePath; private String filePath;
@Schema(description = "分享批次号", required = true)
private String shareBatchNum;
} }