From d6c84019f66e3be8be676acdc6e7ab9edf8751b2 Mon Sep 17 00:00:00 2001 From: MAC <1162714483@qq.com> Date: Wed, 9 Mar 2022 21:00:45 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E7=B3=BB=E7=BB=9F=E5=8F=82=E6=95=B0):=20?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E7=B3=BB=E7=BB=9F=E5=8F=82=E6=95=B0=E7=BB=84?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../advice/GlobalExceptionHandlerAdvice.java | 2 +- .../qiwenshare/file/api/IUserFileService.java | 2 +- .../file/controller/CommonFileController.java | 7 ++++--- .../file/controller/FileController.java | 1 + .../file/controller/SysParamController.java | 11 +++++++++-- .../file/dto/commonfile/CommonFileDTO.java | 4 ++++ .../file/service/UserFileService.java | 19 +++++++++++++++++++ 7 files changed, 39 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/qiwenshare/file/advice/GlobalExceptionHandlerAdvice.java b/src/main/java/com/qiwenshare/file/advice/GlobalExceptionHandlerAdvice.java index 4426202..1db3622 100644 --- a/src/main/java/com/qiwenshare/file/advice/GlobalExceptionHandlerAdvice.java +++ b/src/main/java/com/qiwenshare/file/advice/GlobalExceptionHandlerAdvice.java @@ -96,7 +96,7 @@ public class GlobalExceptionHandlerAdvice { /**-------- 自定义定异常处理方法 --------**/ @ExceptionHandler(QiwenException.class) @ResponseBody - @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) + @ResponseStatus(HttpStatus.OK) public RestResult error(QiwenException e) { e.printStackTrace(); log.error("全局异常捕获:" + e); diff --git a/src/main/java/com/qiwenshare/file/api/IUserFileService.java b/src/main/java/com/qiwenshare/file/api/IUserFileService.java index dc07d9f..8b52bc0 100644 --- a/src/main/java/com/qiwenshare/file/api/IUserFileService.java +++ b/src/main/java/com/qiwenshare/file/api/IUserFileService.java @@ -17,7 +17,7 @@ public interface IUserFileService extends IService { void userFileCopy(String oldfilePath, String newfilePath, String fileName, String extendName, long userId); IPage getFileByFileType(Integer fileTypeId, Long currentPage, Long pageCount, long userId); - + List selectUserFileListByPath(String filePath, Long userId); List selectFileListLikeRightFilePath(String filePath, long userId); List selectFilePathTreeByUserId(Long userId); void deleteUserFile(Long userFileId, Long sessionUserId); diff --git a/src/main/java/com/qiwenshare/file/controller/CommonFileController.java b/src/main/java/com/qiwenshare/file/controller/CommonFileController.java index 405c188..0cd35fc 100644 --- a/src/main/java/com/qiwenshare/file/controller/CommonFileController.java +++ b/src/main/java/com/qiwenshare/file/controller/CommonFileController.java @@ -1,5 +1,6 @@ package com.qiwenshare.file.controller; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.metadata.IPage; import com.qiwenshare.common.anno.MyLog; import com.qiwenshare.common.result.RestResult; @@ -49,15 +50,15 @@ public class CommonFileController { commonFile.setUserFileId(commonFileDTO.getUserFileId()); commonFileService.save(commonFile); -// List list = JSON.parseArray(commonFileDTO.getCommonUserIds(), Long.class); + List list = JSON.parseArray(commonFileDTO.getCommonUserIds(), Long.class); List filePermissionList = new ArrayList<>(); -// for (Long userId : list) { + for (Long userId : list) { FilePermission filePermission = new FilePermission(); filePermission.setUserId(Long.parseLong(commonFileDTO.getCommonUserIds())); filePermission.setCommonFileId(commonFile.commonFileId); filePermission.setFilePermissionCode(commonFileDTO.getPermissionCode()); filePermissionList.add(filePermission); -// } + } filePermissionService.saveBatch(filePermissionList); return RestResult.success(); diff --git a/src/main/java/com/qiwenshare/file/controller/FileController.java b/src/main/java/com/qiwenshare/file/controller/FileController.java index 5ee8480..c810b83 100644 --- a/src/main/java/com/qiwenshare/file/controller/FileController.java +++ b/src/main/java/com/qiwenshare/file/controller/FileController.java @@ -48,6 +48,7 @@ import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.util.*; +import java.util.stream.Collectors; @Tag(name = "file", description = "该接口为文件接口,主要用来做一些文件的基本操作,如创建目录,删除,移动,复制等。") @RestController diff --git a/src/main/java/com/qiwenshare/file/controller/SysParamController.java b/src/main/java/com/qiwenshare/file/controller/SysParamController.java index 40b3332..2231b7f 100644 --- a/src/main/java/com/qiwenshare/file/controller/SysParamController.java +++ b/src/main/java/com/qiwenshare/file/controller/SysParamController.java @@ -15,7 +15,9 @@ import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import java.util.HashMap; import java.util.List; +import java.util.Map; @Tag(name = "系统参数管理") @RestController @@ -27,13 +29,18 @@ public class SysParamController { @Operation(summary = "查询系统参数组", tags = {"系统参数管理"}) @RequestMapping(value = "/grouplist", method = RequestMethod.GET) @ResponseBody - public RestResult groupList( + public RestResult groupList( @Parameter(description = "查询参数dto", required = false) QueryGroupParamDTO queryGroupParamDTO ) { List list = sysParamService.list(new QueryWrapper().lambda().eq(SysParam::getGroupName, queryGroupParamDTO.getGroupName())); + Map result = new HashMap<>(); - return RestResult.success().data(list); + for (SysParam sysParam : list) { + result.put(sysParam.getSysParamKey(), sysParam.getSysParamValue()); + } + + return RestResult.success().data(result); } diff --git a/src/main/java/com/qiwenshare/file/dto/commonfile/CommonFileDTO.java b/src/main/java/com/qiwenshare/file/dto/commonfile/CommonFileDTO.java index 3398fa6..707e5e2 100644 --- a/src/main/java/com/qiwenshare/file/dto/commonfile/CommonFileDTO.java +++ b/src/main/java/com/qiwenshare/file/dto/commonfile/CommonFileDTO.java @@ -12,8 +12,12 @@ import lombok.Data; @Data @Schema(name = "共享文件DTO",required = true) public class CommonFileDTO { + @Schema(name = "用户文件id") private Long userFileId; + @Schema(name = "共享文件类型") private Integer commonFileType; + @Schema(name = "共享用户id集合") private String commonUserIds; + @Schema(name = "权限码") private Integer permissionCode; } diff --git a/src/main/java/com/qiwenshare/file/service/UserFileService.java b/src/main/java/com/qiwenshare/file/service/UserFileService.java index 648cb39..07142bd 100644 --- a/src/main/java/com/qiwenshare/file/service/UserFileService.java +++ b/src/main/java/com/qiwenshare/file/service/UserFileService.java @@ -7,6 +7,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.qiwenshare.common.constant.FileConstant; +import com.qiwenshare.common.exception.QiwenException; +import com.qiwenshare.common.result.RestResult; import com.qiwenshare.common.util.DateUtil; import com.qiwenshare.common.util.security.JwtUser; import com.qiwenshare.common.util.security.SessionUtil; @@ -28,6 +30,7 @@ import java.util.List; import java.util.UUID; import java.util.concurrent.Executor; import java.util.concurrent.Executors; +import java.util.stream.Collectors; @Slf4j @Service @@ -103,6 +106,12 @@ public class UserFileService extends ServiceImpl impl if ("null".equals(extendName)){ extendName = null; } + List userFileList = selectUserFileListByPath(newfilePath, userId); + List userFileNameList = userFileList.stream().map(UserFile::getFileName).collect(Collectors.toList()); + if (userFileNameList != null && userFileNameList.size() > 0 && userFileNameList.contains(fileName)) { + throw new QiwenException(200000, "目的路径同名文件已存在,不能移动"); + } + //移动根目录 userFileMapper.updateFilepathByPathAndName(oldfilePath, newfilePath, fileName, extendName, userId); @@ -158,6 +167,16 @@ public class UserFileService extends ServiceImpl impl return userFileMapper.selectPageVo(page, userFile, fileTypeId); } + @Override + public List selectUserFileListByPath(String filePath, Long userId) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper + .eq(UserFile::getFilePath, filePath) + .eq(UserFile::getUserId, userId) + .eq(UserFile::getDeleteFlag, 0); + return userFileMapper.selectList(lambdaQueryWrapper); + } + @Override public List selectFileListLikeRightFilePath(String filePath, long userId) { filePath = filePath.replace("\\", "\\\\\\\\");