From 2006343cc7e7bbee7790b79652614bae43bc6431 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A9=AC=E8=B6=85?= Date: Sat, 12 Dec 2020 16:45:33 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/qiwenshare/file/api/IFileService.java | 6 +- .../file/api/IFiletransferService.java | 2 +- .../qiwenshare/file/api/IUserFileService.java | 5 + .../file/controller/FileController.java | 79 ++++++------ .../controller/FiletransferController.java | 113 +++--------------- .../com/qiwenshare/file/domain/FileBean.java | 19 +-- .../com/qiwenshare/file/domain/UserFile.java | 15 +++ .../qiwenshare/file/dto/CreateFileDto.java | 9 ++ .../qiwenshare/file/dto/RenameFileDto.java | 2 +- .../qiwenshare/file/dto/UploadFileDto.java | 35 ------ .../qiwenshare/file/mapper/FileMapper.java | 2 +- .../file/mapper/UserFileMapper.java | 6 +- .../qiwenshare/file/service/FileService.java | 26 ++-- .../file/service/FiletransferService.java | 28 +++-- .../file/service/UserFileService.java | 19 +++ .../resources/mybatis/mapper/FileMapper.xml | 4 +- .../mybatis/mapper/UserFileMapper.xml | 10 +- 17 files changed, 168 insertions(+), 212 deletions(-) create mode 100644 file-web/src/main/java/com/qiwenshare/file/dto/CreateFileDto.java diff --git a/file-web/src/main/java/com/qiwenshare/file/api/IFileService.java b/file-web/src/main/java/com/qiwenshare/file/api/IFileService.java index a1c267f..b6f31a0 100644 --- a/file-web/src/main/java/com/qiwenshare/file/api/IFileService.java +++ b/file-web/src/main/java/com/qiwenshare/file/api/IFileService.java @@ -11,11 +11,13 @@ public interface IFileService extends IService { void batchInsertFile(List fileBeanList, Long userId); //void updateFile(FileBean fileBean); - List selectFileByNameAndPath(String fileName, String filePath); + public void increaseFilePointCount(Long fileId); + + public void decreaseFilePointCount(Long fileId); List selectFilePathTreeByUserId(FileBean fileBean); List selectFileListByPath(FileBean fileBean); - void replaceFilePath(String filePath, String oldFilePath); + List selectFileTreeListLikeFilePath(String filePath); diff --git a/file-web/src/main/java/com/qiwenshare/file/api/IFiletransferService.java b/file-web/src/main/java/com/qiwenshare/file/api/IFiletransferService.java index 3286716..515650f 100644 --- a/file-web/src/main/java/com/qiwenshare/file/api/IFiletransferService.java +++ b/file-web/src/main/java/com/qiwenshare/file/api/IFiletransferService.java @@ -21,7 +21,7 @@ public interface IFiletransferService { * @param request 请求 * @param UploadFileDto 文件信息 */ - void uploadFile(HttpServletRequest request, UploadFileDto UploadFileDto, UserBean sessionUserBean); + void uploadFile(HttpServletRequest request, UploadFileDto UploadFileDto, Long userId); StorageBean selectStorageBean(StorageBean storageBean); diff --git a/file-web/src/main/java/com/qiwenshare/file/api/IUserFileService.java b/file-web/src/main/java/com/qiwenshare/file/api/IUserFileService.java index 68cf5df..25df6ab 100644 --- a/file-web/src/main/java/com/qiwenshare/file/api/IUserFileService.java +++ b/file-web/src/main/java/com/qiwenshare/file/api/IUserFileService.java @@ -1,7 +1,12 @@ package com.qiwenshare.file.api; import com.baomidou.mybatisplus.extension.service.IService; +import com.qiwenshare.file.domain.FileBean; import com.qiwenshare.file.domain.UserFile; +import java.util.List; + public interface IUserFileService extends IService { + List selectUserFileByNameAndPath(String fileName, String filePath, Long userId); + void replaceUserFilePath(String filePath, String oldFilePath, Long userId); } diff --git a/file-web/src/main/java/com/qiwenshare/file/controller/FileController.java b/file-web/src/main/java/com/qiwenshare/file/controller/FileController.java index e43cea6..3fa07e0 100644 --- a/file-web/src/main/java/com/qiwenshare/file/controller/FileController.java +++ b/file-web/src/main/java/com/qiwenshare/file/controller/FileController.java @@ -16,10 +16,7 @@ import com.qiwenshare.file.domain.FileBean; import com.qiwenshare.file.domain.TreeNode; import com.qiwenshare.file.domain.UserBean; import com.qiwenshare.file.domain.UserFile; -import com.qiwenshare.file.dto.BatchDeleteFileDto; -import com.qiwenshare.file.dto.BatchMoveFileDto; -import com.qiwenshare.file.dto.MoveFileDto; -import com.qiwenshare.file.dto.RenameFileDto; +import com.qiwenshare.file.dto.*; import com.qiwenshare.file.service.UserFileService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ArrayUtils; @@ -56,29 +53,29 @@ public class FileController { */ @RequestMapping(value = "/createfile", method = RequestMethod.POST) @ResponseBody - public RestResult createFile(@RequestBody FileBean fileBean, @RequestHeader("token") String token) { + public RestResult createFile(@RequestBody CreateFileDto createFileDto, @RequestHeader("token") String token) { RestResult restResult = new RestResult<>(); if (!operationCheck(token).isSuccess()){ return operationCheck(token); } - List fileBeans = fileService.selectFileByNameAndPath(fileBean.getFileName(), fileBean.getFilePath()); - if (fileBeans != null && !fileBeans.isEmpty()) { + + UserBean sessionUserBean = userService.getUserBeanByToken(token); + + List userFiles = userFileService.selectUserFileByNameAndPath(createFileDto.getFileName(), createFileDto.getFilePath(), sessionUserBean.getUserId()); + if (userFiles != null && !userFiles.isEmpty()) { restResult.setErrorMessage("同名文件已存在"); restResult.setSuccess(false); return restResult; } - UserBean sessionUserBean = userService.getUserBeanByToken(token); - -// fileBean.setUserId(sessionUserBean.getUserId()); - - fileBean.setUploadTime(DateUtil.getCurrentTime()); - - fileService.save(fileBean); UserFile userFile = new UserFile(); - userFile.setFileId(fileBean.getFileId()); userFile.setUserId(sessionUserBean.getUserId()); + userFile.setFileName(createFileDto.getFileName()); + userFile.setFilePath(createFileDto.getFilePath()); userFile.setDeleteFlag(0); + userFile.setIsDir(1); + userFile.setUploadTime(DateUtil.getCurrentTime()); + userFileService.save(userFile); restResult.setSuccess(true); @@ -100,43 +97,53 @@ public class FileController { UserBean sessionUserBean = userService.getUserBeanByToken(token); // fileBean.setUserId(sessionUserBean.getUserId()); // fileBean.setUploadTime(DateUtil.getCurrentTime()); - List fileBeans = fileService.selectFileByNameAndPath(renameFileDto.getFileName(), renameFileDto.getFilePath()); - if (fileBeans != null && !fileBeans.isEmpty()) { + List userFiles = userFileService.selectUserFileByNameAndPath(renameFileDto.getFileName(), renameFileDto.getFilePath(), sessionUserBean.getUserId()); + if (userFiles != null && !userFiles.isEmpty()) { restResult.setErrorMessage("同名文件已存在"); restResult.setSuccess(false); return restResult; } if (1 == renameFileDto.getIsDir()) { - LambdaUpdateWrapper lambdaUpdateWrapper = new LambdaUpdateWrapper<>(); - lambdaUpdateWrapper.set(FileBean::getFileName, renameFileDto.getFileName()) - .set(FileBean::getUploadTime, DateUtil.getCurrentTime()) - .eq(FileBean::getFileId, renameFileDto.getFileId()); - fileService.update(lambdaUpdateWrapper); - fileService.replaceFilePath(renameFileDto.getFilePath() + renameFileDto.getFileName() + "/", - renameFileDto.getFilePath() + renameFileDto.getOldFileName() + "/"); -// fileBean.setOldFilePath(renameFileDto.getFilePath() + renameFileDto.getOldFileName() + "/"); -// fileBean.setFilePath(renameFileDto.getFilePath() + renameFileDto.getFileName() + "/"); + LambdaUpdateWrapper lambdaUpdateWrapper = new LambdaUpdateWrapper<>(); + lambdaUpdateWrapper.set(UserFile::getFileName, renameFileDto.getFileName()) + .set(UserFile::getUploadTime, DateUtil.getCurrentTime()) + .eq(UserFile::getUserFileId, renameFileDto.getUserFileId()); + userFileService.update(lambdaUpdateWrapper); + userFileService.replaceUserFilePath(renameFileDto.getFilePath() + renameFileDto.getFileName() + "/", + renameFileDto.getFilePath() + renameFileDto.getOldFileName() + "/", sessionUserBean.getUserId()); } else { if (renameFileDto.getIsOSS() == 1) { - FileBean file = fileService.getById(renameFileDto.getFileId()); + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(UserFile::getUserFileId, renameFileDto.getUserFileId()); + UserFile userFile = userFileService.getOne(lambdaQueryWrapper); + + FileBean file = fileService.getById(userFile.getFileId()); String fileUrl = file.getFileUrl(); - String newFileUrl = fileUrl.replace(file.getFileName(), renameFileDto.getFileName()); + String newFileUrl = fileUrl.replace(userFile.getFileName(), renameFileDto.getFileName()); // renameFileDto.setFileUrl(newFileUrl); AliyunOSSRename.rename(qiwenFileConfig.getAliyun().getOss(), fileUrl.substring(1), newFileUrl.substring(1)); LambdaUpdateWrapper lambdaUpdateWrapper = new LambdaUpdateWrapper<>(); - lambdaUpdateWrapper.set(FileBean::getFileName, renameFileDto.getFileName()) - .set(FileBean::getUploadTime, DateUtil.getCurrentTime()) + lambdaUpdateWrapper +// .set(FileBean::getFileName, renameFileDto.getFileName()) +// .set(FileBean::getUploadTime, DateUtil.getCurrentTime()) .set(FileBean::getFileUrl, newFileUrl) - .eq(FileBean::getFileId, renameFileDto.getFileId()); + .eq(FileBean::getFileId, file.getFileId()); fileService.update(lambdaUpdateWrapper); + + LambdaUpdateWrapper userFileLambdaUpdateWrapper = new LambdaUpdateWrapper<>(); + userFileLambdaUpdateWrapper + .set(UserFile::getFileName, renameFileDto.getFileName()) + .set(UserFile::getUploadTime, DateUtil.getCurrentTime()) + .eq(UserFile::getUserFileId, renameFileDto.getUserFileId()); + userFileService.update(userFileLambdaUpdateWrapper); } else { - LambdaUpdateWrapper lambdaUpdateWrapper = new LambdaUpdateWrapper<>(); - lambdaUpdateWrapper.set(FileBean::getFileName, renameFileDto.getFileName()) - .set(FileBean::getUploadTime, DateUtil.getCurrentTime()) - .eq(FileBean::getFileId, renameFileDto.getFileId()); - fileService.update(lambdaUpdateWrapper); + LambdaUpdateWrapper lambdaUpdateWrapper = new LambdaUpdateWrapper<>(); + lambdaUpdateWrapper.set(UserFile::getFileName, renameFileDto.getFileName()) + .set(UserFile::getUploadTime, DateUtil.getCurrentTime()) + .eq(UserFile::getUserFileId, renameFileDto.getUserFileId()); + userFileService.update(lambdaUpdateWrapper); } diff --git a/file-web/src/main/java/com/qiwenshare/file/controller/FiletransferController.java b/file-web/src/main/java/com/qiwenshare/file/controller/FiletransferController.java index 71e6cde..f6e5785 100644 --- a/file-web/src/main/java/com/qiwenshare/file/controller/FiletransferController.java +++ b/file-web/src/main/java/com/qiwenshare/file/controller/FiletransferController.java @@ -12,11 +12,13 @@ import com.qiwenshare.common.util.PathUtil; import com.qiwenshare.common.cbb.RestResult; import com.qiwenshare.file.api.IFileService; import com.qiwenshare.file.api.IFiletransferService; +import com.qiwenshare.file.api.IUserFileService; import com.qiwenshare.file.api.IUserService; import com.qiwenshare.file.config.QiwenFileConfig; import com.qiwenshare.file.domain.FileBean; import com.qiwenshare.file.domain.StorageBean; import com.qiwenshare.file.domain.UserBean; +import com.qiwenshare.file.domain.UserFile; import com.qiwenshare.file.dto.UploadFileDto; import com.qiwenshare.file.vo.file.UploadFileVo; import org.springframework.beans.factory.annotation.Autowired; @@ -46,6 +48,8 @@ public class FiletransferController { IFileService fileService; @Resource IUserService userService; + @Resource + IUserFileService userFileService; /** * 上传文件 @@ -76,14 +80,17 @@ public class FiletransferController { List list = fileService.listByMap(param); if (list != null && !list.isEmpty()) { FileBean file = list.get(0); - file.setUserId(sessionUserBean.getUserId()); - file.setUploadTime(DateUtil.getCurrentTime()); - file.setFilePath(uploadFileDto.getFilePath()); + + UserFile userFile = new UserFile(); + userFile.setFileId(file.getFileId()); + userFile.setUserId(sessionUserBean.getUserId()); + userFile.setFilePath(uploadFileDto.getFilePath()); String fileName = uploadFileDto.getFilename(); - file.setFileName(fileName.substring(0, fileName.lastIndexOf("."))); - file.setExtendName(FileUtil.getFileType(fileName)); - file.setPointCount(file.getPointCount() + 1); - fileService.save(file); + userFile.setFileName(fileName.substring(0, fileName.lastIndexOf("."))); + userFile.setExtendName(FileUtil.getFileType(fileName)); + userFile.setDeleteFlag(0); + userFileService.save(userFile); + fileService.increaseFilePointCount(file.getFileId()); uploadFileVo.setSkipUpload(true); } else { @@ -92,7 +99,6 @@ public class FiletransferController { } } - //fileBean.setUserId(sessionUserBean.getUserId()); restResult.setData(uploadFileVo); restResult.setSuccess(true); return restResult; @@ -107,7 +113,7 @@ public class FiletransferController { @RequestMapping(value = "/uploadfile", method = RequestMethod.POST) @ResponseBody public RestResult uploadFile(HttpServletRequest request, UploadFileDto uploadFileDto, @RequestHeader("token") String token) { - RestResult restResult = new RestResult(); + RestResult restResult = new RestResult<>(); UserBean sessionUserBean = userService.getUserBeanByToken(token); if (sessionUserBean == null){ restResult.setSuccess(false); @@ -121,97 +127,12 @@ public class FiletransferController { return restResult; } - uploadFileDto.setUserId(sessionUserBean.getUserId()); - - filetransferService.uploadFile(request, uploadFileDto, sessionUserBean); + filetransferService.uploadFile(request, uploadFileDto, sessionUserBean.getUserId()); UploadFileVo uploadFileVo = new UploadFileVo(); - uploadFileVo.setTimeStampName(uploadFileDto.getTimeStampName()); + restResult.setData(uploadFileVo); return restResult; } - /** - * 下载文件 - * - * @return - */ - @RequestMapping(value = "/downloadfile", method = RequestMethod.GET) - public String downloadFile(HttpServletResponse response, FileBean fileBean) { - RestResult restResult = new RestResult<>(); - String fileName = null;// 文件名 - try { - fileName = new String(fileBean.getFileName().getBytes("utf-8"), "ISO-8859-1"); - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); - } - fileName = fileName + "." + fileBean.getExtendName(); - response.setContentType("application/force-download");// 设置强制下载不打开 - response.addHeader("Content-Disposition", "attachment;fileName=" + fileName);// 设置文件名 - byte[] buffer = new byte[1024]; - BufferedInputStream bis = null; - FileBean fileBean1 = fileService.getById(fileBean.getFileId()); - if (fileBean1.getIsOSS() != null && fileBean1.getIsOSS() == 1) { - - AliyunOSSDownload aliyunOSSDownload= new AliyunOSSDownload(); - OSS ossClient = aliyunOSSDownload.createOSSClient(qiwenFileConfig.getAliyun().getOss()); - OSSObject ossObject = ossClient.getObject(qiwenFileConfig.getAliyun().getOss().getBucketName(), fileBean1.getTimeStampName()); - InputStream inputStream = ossObject.getObjectContent(); - try { - bis = new BufferedInputStream(inputStream); - OutputStream os = response.getOutputStream(); - int i = bis.read(buffer); - while (i != -1) { - os.write(buffer, 0, i); - i = bis.read(buffer); - } - } catch (IOException e) { - e.printStackTrace(); - } finally { - if (bis != null) { - try { - bis.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - - } - ossClient.shutdown(); - } else { - //设置文件路径 - File file = FileOperation.newFile(PathUtil.getStaticPath() + fileBean.getFileUrl()); - if (file.exists()) { - - - FileInputStream fis = null; - - try { - fis = new FileInputStream(file); - bis = new BufferedInputStream(fis); - OutputStream os = response.getOutputStream(); - int i = bis.read(buffer); - while (i != -1) { - os.write(buffer, 0, i); - i = bis.read(buffer); - } - - } catch (Exception e) { - e.printStackTrace(); - } finally { - if (bis != null) { - try { - bis.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - } - } - - } - return null; - - } - /** * 获取存储信息 diff --git a/file-web/src/main/java/com/qiwenshare/file/domain/FileBean.java b/file-web/src/main/java/com/qiwenshare/file/domain/FileBean.java index dad930f..48d9932 100644 --- a/file-web/src/main/java/com/qiwenshare/file/domain/FileBean.java +++ b/file-web/src/main/java/com/qiwenshare/file/domain/FileBean.java @@ -25,30 +25,15 @@ public class FileBean { @Column(columnDefinition="bigint(20) comment '文件id'") private Long fileId; - @Column(columnDefinition="varchar(500) comment '文件url'") - private String fileUrl; - - @Column(columnDefinition="varchar(500) comment '文件路径'") - private String filePath; - - @Column(columnDefinition="varchar(25) comment '上传时间'") - private String uploadTime; - @Column(columnDefinition="varchar(50) comment '时间戳名称'") private String timeStampName; - @Column(columnDefinition="varchar(10) comment '扩展名'") - private String extendName; - - @Column(columnDefinition="varchar(100) comment '文件名'") - private String fileName; + @Column(columnDefinition="varchar(500) comment '文件url'") + private String fileUrl; @Column(columnDefinition="bigint(10) comment '文件大小'") private Long fileSize; - @Column(columnDefinition="int(1) comment '是否是目录 0-否, 1-是'") - private Integer isDir; - @Column(columnDefinition="int(1) comment '是否是OSS云存储 0-否, 1-是'") private Integer isOSS; diff --git a/file-web/src/main/java/com/qiwenshare/file/domain/UserFile.java b/file-web/src/main/java/com/qiwenshare/file/domain/UserFile.java index 294c284..7e9aea5 100644 --- a/file-web/src/main/java/com/qiwenshare/file/domain/UserFile.java +++ b/file-web/src/main/java/com/qiwenshare/file/domain/UserFile.java @@ -21,6 +21,21 @@ public class UserFile { @Column(columnDefinition="bigint(20) comment '文件id'") private Long fileId; + @Column(columnDefinition="varchar(100) comment '文件名'") + private String fileName; + + @Column(columnDefinition="varchar(500) comment '文件路径'") + private String filePath; + + @Column(columnDefinition="varchar(10) comment '扩展名'") + private String extendName; + + @Column(columnDefinition="int(1) comment '是否是目录 0-否, 1-是'") + private Integer isDir; + + @Column(columnDefinition="varchar(25) comment '上传时间'") + private String uploadTime; + @Column(columnDefinition="int(11) comment '文件删除标志 0/null-正常, 1-删除'") private Integer deleteFlag; diff --git a/file-web/src/main/java/com/qiwenshare/file/dto/CreateFileDto.java b/file-web/src/main/java/com/qiwenshare/file/dto/CreateFileDto.java new file mode 100644 index 0000000..5bb120e --- /dev/null +++ b/file-web/src/main/java/com/qiwenshare/file/dto/CreateFileDto.java @@ -0,0 +1,9 @@ +package com.qiwenshare.file.dto; + +import lombok.Data; + +@Data +public class CreateFileDto { + private String fileName; + private String filePath; +} diff --git a/file-web/src/main/java/com/qiwenshare/file/dto/RenameFileDto.java b/file-web/src/main/java/com/qiwenshare/file/dto/RenameFileDto.java index 71553c0..2864908 100644 --- a/file-web/src/main/java/com/qiwenshare/file/dto/RenameFileDto.java +++ b/file-web/src/main/java/com/qiwenshare/file/dto/RenameFileDto.java @@ -4,7 +4,7 @@ import lombok.Data; @Data public class RenameFileDto { - private Long fileId; + private Long userFileId; /** * 文件路径 */ diff --git a/file-web/src/main/java/com/qiwenshare/file/dto/UploadFileDto.java b/file-web/src/main/java/com/qiwenshare/file/dto/UploadFileDto.java index 286955a..2d14dcd 100644 --- a/file-web/src/main/java/com/qiwenshare/file/dto/UploadFileDto.java +++ b/file-web/src/main/java/com/qiwenshare/file/dto/UploadFileDto.java @@ -13,17 +13,6 @@ import javax.persistence.*; @Schema(name = "上传文件DTO",required = true) public class UploadFileDto { - private Long fileId; - - - - private Long userId; - - /** - * 文件URL - */ - private String fileUrl; - /** * 文件路径 */ @@ -34,11 +23,6 @@ public class UploadFileDto { */ private String uploadTime; - /** - * 时间戳名称 - */ - private String timeStampName; - /** * 扩展名 */ @@ -54,25 +38,6 @@ public class UploadFileDto { */ private Long fileSize; - /** - * 是否是目录 - */ - private Integer isDir; - - private Integer isOSS; - - private Integer pointCount; - - private String oldFilePath; - - private String oldFileName; - - private String files; - - private Integer fileType; - - private String taskId; - private int chunkNumber; private long chunkSize; diff --git a/file-web/src/main/java/com/qiwenshare/file/mapper/FileMapper.java b/file-web/src/main/java/com/qiwenshare/file/mapper/FileMapper.java index eb2c8d7..ea7ea52 100644 --- a/file-web/src/main/java/com/qiwenshare/file/mapper/FileMapper.java +++ b/file-web/src/main/java/com/qiwenshare/file/mapper/FileMapper.java @@ -13,7 +13,7 @@ public interface FileMapper extends BaseMapper { void batchInsertFile(List fileBeanList); // void updateFile(FileBean fileBean); - void replaceFilePath(@Param("filePath") String filePath, @Param("oldFilePath") String oldFilePath); + void updateFilepathByFilepath(String oldfilePath, String newfilePath); void updateFilepathByPathAndName(String oldfilePath, String newfilePath, String fileName, String extendName); diff --git a/file-web/src/main/java/com/qiwenshare/file/mapper/UserFileMapper.java b/file-web/src/main/java/com/qiwenshare/file/mapper/UserFileMapper.java index 68c1237..e6827a4 100644 --- a/file-web/src/main/java/com/qiwenshare/file/mapper/UserFileMapper.java +++ b/file-web/src/main/java/com/qiwenshare/file/mapper/UserFileMapper.java @@ -3,7 +3,11 @@ package com.qiwenshare.file.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.qiwenshare.file.domain.UserBean; import com.qiwenshare.file.domain.UserFile; +import org.apache.ibatis.annotations.Param; + +import java.util.Map; public interface UserFileMapper extends BaseMapper { - + void replaceFilePath(@Param("filePath") String filePath, @Param("oldFilePath") String oldFilePath, @Param("userId") Long userId); + Map userFileList(UserFile userFile); } diff --git a/file-web/src/main/java/com/qiwenshare/file/service/FileService.java b/file-web/src/main/java/com/qiwenshare/file/service/FileService.java index 1e5d1e8..ab35c79 100644 --- a/file-web/src/main/java/com/qiwenshare/file/service/FileService.java +++ b/file-web/src/main/java/com/qiwenshare/file/service/FileService.java @@ -53,18 +53,27 @@ public class FileService extends ServiceImpl implements IF } } + @Override + public void increaseFilePointCount(Long fileId) { + FileBean fileBean = fileMapper.selectById(fileId); + fileBean.setPointCount(fileBean.getPointCount()+1); + fileMapper.updateById(fileBean); + } + + @Override + public void decreaseFilePointCount(Long fileId) { + FileBean fileBean = fileMapper.selectById(fileId); + fileBean.setPointCount(fileBean.getPointCount()-1); + fileMapper.updateById(fileBean); + } + // @Override // public void updateFile(FileBean fileBean) { // fileBean.setUploadTime(DateUtil.getCurrentTime()); // fileMapper.updateFile(fileBean); // } - @Override - public List selectFileByNameAndPath(String fileName, String filePath) { - LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.eq(FileBean::getFileName, fileName).eq(FileBean::getFilePath, filePath); - return fileMapper.selectList(lambdaQueryWrapper); - } + @Override @@ -83,10 +92,7 @@ public class FileService extends ServiceImpl implements IF return fileMapper.selectList(lambdaQueryWrapper); } - @Override - public void replaceFilePath(String filePath, String oldFilePath) { - fileMapper.replaceFilePath(filePath, oldFilePath); - } + @Override diff --git a/file-web/src/main/java/com/qiwenshare/file/service/FiletransferService.java b/file-web/src/main/java/com/qiwenshare/file/service/FiletransferService.java index 46371e3..581485d 100644 --- a/file-web/src/main/java/com/qiwenshare/file/service/FiletransferService.java +++ b/file-web/src/main/java/com/qiwenshare/file/service/FiletransferService.java @@ -17,12 +17,14 @@ import com.qiwenshare.file.api.IFiletransferService; import com.qiwenshare.common.domain.AliyunOSS; import com.qiwenshare.file.config.QiwenFileConfig; +import com.qiwenshare.file.domain.UserFile; import com.qiwenshare.file.dto.UploadFileDto; import com.qiwenshare.file.mapper.FileMapper; import com.qiwenshare.file.domain.FileBean; import com.qiwenshare.file.domain.StorageBean; import com.qiwenshare.file.domain.UserBean; import com.qiwenshare.file.mapper.StorageMapper; +import com.qiwenshare.file.mapper.UserFileMapper; import org.springframework.stereotype.Service; @@ -36,11 +38,13 @@ public class FiletransferService implements IFiletransferService { @Resource QiwenFileConfig qiwenFileConfig; + @Resource + UserFileMapper userFileMapper; @Override - public void uploadFile(HttpServletRequest request, UploadFileDto UploadFileDto, UserBean sessionUserBean) { + public void uploadFile(HttpServletRequest request, UploadFileDto UploadFileDto, Long userId) { AliyunOSS oss = qiwenFileConfig.getAliyun().getOss(); request.setAttribute("oss", oss); Uploader uploader; @@ -66,19 +70,27 @@ public class FiletransferService implements IFiletransferService { if (uploadFile.getSuccess() == 1){ fileBean.setFileUrl(uploadFile.getUrl()); fileBean.setFileSize(uploadFile.getFileSize()); - fileBean.setFileName(uploadFile.getFileName()); - fileBean.setExtendName(uploadFile.getFileType()); - fileBean.setUploadTime(DateUtil.getCurrentTime()); + //fileBean.setUploadTime(DateUtil.getCurrentTime()); fileBean.setIsOSS(uploadFile.getIsOSS()); - fileBean.setIsDir(0); + fileBean.setPointCount(1); fileMapper.insert(fileBean); + UserFile userFile = new UserFile(); + userFile.setFileId(fileBean.getFileId()); + userFile.setExtendName(uploadFile.getFileType()); + userFile.setFileName(uploadFile.getFileName()); + userFile.setFilePath(UploadFileDto.getFilePath()); + userFile.setDeleteFlag(0); + userFile.setUserId(userId); + userFile.setIsDir(0); + userFile.setUploadTime(DateUtil.getCurrentTime()); + userFileMapper.insert(userFile); synchronized (FiletransferService.class) { - long sessionUserId = sessionUserBean.getUserId(); - StorageBean storageBean = selectStorageBean(new StorageBean(sessionUserId)); + + StorageBean storageBean = selectStorageBean(new StorageBean(userId)); if (storageBean == null) { - StorageBean storage = new StorageBean(sessionUserId); + StorageBean storage = new StorageBean(userId); storage.setStorageSize(fileBean.getFileSize()); insertStorageBean(storage); } else { diff --git a/file-web/src/main/java/com/qiwenshare/file/service/UserFileService.java b/file-web/src/main/java/com/qiwenshare/file/service/UserFileService.java index 78e6740..9351e35 100644 --- a/file-web/src/main/java/com/qiwenshare/file/service/UserFileService.java +++ b/file-web/src/main/java/com/qiwenshare/file/service/UserFileService.java @@ -1,9 +1,28 @@ package com.qiwenshare.file.service; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.qiwenshare.file.api.IUserFileService; +import com.qiwenshare.file.domain.FileBean; import com.qiwenshare.file.domain.UserFile; +import com.qiwenshare.file.mapper.FileMapper; import com.qiwenshare.file.mapper.UserFileMapper; +import javax.annotation.Resource; +import java.util.List; + public class UserFileService extends ServiceImpl implements IUserFileService { + @Resource + UserFileMapper userFileMapper; + @Override + public List selectUserFileByNameAndPath(String fileName, String filePath, Long userId) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(UserFile::getFileName, fileName).eq(UserFile::getFilePath, filePath).eq(UserFile::getUserId, userId); + return userFileMapper.selectList(lambdaQueryWrapper); + } + + @Override + public void replaceUserFilePath(String filePath, String oldFilePath, Long userId) { + userFileMapper.replaceFilePath(filePath, oldFilePath, userId); + } } diff --git a/file-web/src/main/resources/mybatis/mapper/FileMapper.xml b/file-web/src/main/resources/mybatis/mapper/FileMapper.xml index d4dcc4b..8f11943 100644 --- a/file-web/src/main/resources/mybatis/mapper/FileMapper.xml +++ b/file-web/src/main/resources/mybatis/mapper/FileMapper.xml @@ -18,9 +18,7 @@ - - UPDATE file SET filepath=REPLACE(filepath, #{oldFilePath}, #{filePath}) WHERE filepath LIKE N'${oldFilePath}%'; - + diff --git a/file-web/src/main/resources/mybatis/mapper/UserFileMapper.xml b/file-web/src/main/resources/mybatis/mapper/UserFileMapper.xml index 3110d43..4da9dab 100644 --- a/file-web/src/main/resources/mybatis/mapper/UserFileMapper.xml +++ b/file-web/src/main/resources/mybatis/mapper/UserFileMapper.xml @@ -6,7 +6,15 @@ - + select * from userfile + left join file on file.fileId = userfile.fileId + where userId = #{userId}