diff --git a/src/main/java/com/qiwenshare/file/controller/ShareController.java b/src/main/java/com/qiwenshare/file/controller/ShareController.java index 5fd1661..0321d20 100644 --- a/src/main/java/com/qiwenshare/file/controller/ShareController.java +++ b/src/main/java/com/qiwenshare/file/controller/ShareController.java @@ -5,6 +5,7 @@ import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.RandomUtil; import com.alibaba.fastjson2.JSON; 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.result.RestResult; import com.qiwenshare.common.util.DateUtil; @@ -117,34 +118,43 @@ public class ShareController { public RestResult saveShareFile(@RequestBody SaveShareFileDTO saveShareFileDTO) { JwtUser sessionUserBean = SessionUtil.getSession(); - List fileList = JSON.parseArray(saveShareFileDTO.getFiles(), ShareFile.class); +// List fileList = JSON.parseArray(saveShareFileDTO.getFiles(), ShareFile.class); String savefilePath = saveShareFileDTO.getFilePath(); String userId = sessionUserBean.getUserId(); - + String[] userFileIdArr = saveShareFileDTO.getUserFileIds().split(","); List saveUserFileList = new ArrayList<>(); - for (ShareFile shareFile : fileList) { - UserFile userFile = userFileService.getById(shareFile.getUserFileId()); + for (String userFileId : userFileIdArr) { + + + UserFile userFile = userFileService.getById(userFileId); String fileName = userFile.getFileName(); + String filePath = userFile.getFilePath(); + + UserFile userFile2 = new UserFile(); + BeanUtil.copyProperties(userFile, userFile2); + String savefileName = fileDealComp.getRepeatFileName(userFile, savefilePath); if (userFile.getIsDir() == 1) { - List userfileList = userFileService.selectUserFileByLikeRightFilePath(new QiwenFile(userFile.getFilePath(), userFile.getFileName(), true).getPath(), userFile.getUserId()); - log.info("查询文件列表:" + JSON.toJSONString(userfileList)); - 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)); + ShareFile shareFile = shareFileService.getOne(new QueryWrapper().lambda().eq(ShareFile::getUserFileId, userFileId).eq(ShareFile::getShareBatchNum, saveShareFileDTO.getShareBatchNum())); + List shareFileList = shareFileService.list(new QueryWrapper().lambda().eq(ShareFile::getShareBatchNum, saveShareFileDTO.getShareBatchNum()).likeRight(ShareFile::getShareFilePath, QiwenFile.formatPath(shareFile.getShareFilePath() +"/"+ fileName))); - }); + + + 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); - userFile.setFilePath(savefilePath); - userFile.setFileName(savefileName); - saveUserFileList.add(userFile); + userFile2.setUserFileId(IdUtil.getSnowflakeNextIdStr()); + userFile2.setUserId(userId); + userFile2.setFilePath(savefilePath); + userFile2.setFileName(savefileName); + saveUserFileList.add(userFile2); } log.info("----------" + JSON.toJSONString(saveUserFileList)); diff --git a/src/main/java/com/qiwenshare/file/dto/sharefile/SaveShareFileDTO.java b/src/main/java/com/qiwenshare/file/dto/sharefile/SaveShareFileDTO.java index 0b5ce6b..25ba831 100644 --- a/src/main/java/com/qiwenshare/file/dto/sharefile/SaveShareFileDTO.java +++ b/src/main/java/com/qiwenshare/file/dto/sharefile/SaveShareFileDTO.java @@ -6,8 +6,10 @@ import lombok.Data; @Data @Schema(name = "保存分享文件DTO",required = true) public class SaveShareFileDTO { - @Schema(description="文件集合", example = "[{\"userFileId\":12},{\"userFileId\":13}]") - private String files; - @Schema(description = "文件路径") + @Schema(description="用户文件id集合", required = true) + private String userFileIds; + @Schema(description = "文件路径", required = true) private String filePath; + @Schema(description = "分享批次号", required = true) + private String shareBatchNum; }