保存分享文件到网盘功能优化
This commit is contained in:
parent
f62bc605cb
commit
d4b66e96ed
@ -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));
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user