添加文件-文件夹

This commit is contained in:
pikachu1995@126.com
2023-09-26 18:50:52 +08:00
parent b87190d135
commit 817f662cb7
15 changed files with 384 additions and 42 deletions

View File

@@ -7,9 +7,7 @@ import cn.lili.common.exception.ServiceException;
import cn.lili.common.security.AuthUser;
import cn.lili.common.security.context.UserContext;
import cn.lili.common.security.enums.UserEnums;
import cn.lili.common.vo.PageVO;
import cn.lili.common.vo.ResultMessage;
import cn.lili.common.vo.SearchVO;
import cn.lili.modules.file.entity.File;
import cn.lili.modules.file.entity.dto.FileOwnerDTO;
import cn.lili.modules.file.service.FileService;
@@ -43,10 +41,9 @@ public class FileController {
@ApiOperation(value = "获取自己的图片资源")
@GetMapping
@ApiImplicitParam(name = "title", value = "名称模糊匹配")
public ResultMessage<IPage<File>> getFileList(@RequestHeader String accessToken, File file, SearchVO searchVO, PageVO pageVo) {
public ResultMessage<IPage<File>> getFileList(@RequestHeader String accessToken, FileOwnerDTO fileOwnerDTO) {
AuthUser authUser = UserContext.getAuthUser(cache, accessToken);
FileOwnerDTO fileOwnerDTO = new FileOwnerDTO();
//只有买家才写入自己id
if (authUser.getRole().equals(UserEnums.MEMBER)) {
fileOwnerDTO.setOwnerId(authUser.getId());
@@ -55,7 +52,7 @@ public class FileController {
fileOwnerDTO.setOwnerId(authUser.getStoreId());
}
fileOwnerDTO.setUserEnums(authUser.getRole().name());
return ResultUtil.data(fileService.customerPageOwner(fileOwnerDTO, file, searchVO, pageVo));
return ResultUtil.data(fileService.customerPageOwner(fileOwnerDTO));
}
@ApiOperation(value = "文件重命名")

View File

@@ -0,0 +1,64 @@
package cn.lili.controller.common;
import cn.lili.common.enums.ResultUtil;
import cn.lili.common.security.context.UserContext;
import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.file.entity.FileDirectory;
import cn.lili.modules.file.entity.dto.FileDirectoryDTO;
import cn.lili.modules.file.service.FileDirectoryService;
import cn.lili.modules.file.service.FileService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 文件目录管理接口
*
* @author Chopper
* @since 2020/11/26 15:41
*/
@RestController
@Api(tags = "文件目录管理接口")
@RequestMapping("/common/resource/fileDirectory")
@RequiredArgsConstructor
public class FileDirectoryController {
private final FileDirectoryService fileDirectoryService;
private final FileService fileService;
@ApiOperation(value = "获取文件目录列表")
@GetMapping
public ResultMessage<List<FileDirectoryDTO>> getSceneFileList() {
return ResultUtil.data(fileDirectoryService.getFileDirectoryList(UserContext.getCurrentUser().getId()));
}
@ApiOperation(value = "添加文件目录")
@PostMapping
public ResultMessage<FileDirectory> addSceneFileList(@RequestBody FileDirectory fileDirectory) {
fileDirectory.setDirectoryType(UserContext.getCurrentUser().getRole().name());
fileDirectoryService.save(fileDirectory);
return ResultUtil.data(fileDirectory);
}
@ApiOperation(value = "修改文件目录")
@PutMapping
public ResultMessage<FileDirectory> editSceneFileList(@RequestBody FileDirectory fileDirectory) {
fileDirectory.setDirectoryType(UserContext.getCurrentUser().getRole().name());
fileDirectoryService.updateById(fileDirectory);
return ResultUtil.data(fileDirectory);
}
@ApiOperation(value = "删除文件目录")
@DeleteMapping("/{id}")
public ResultMessage<Object> deleteSceneFileList(@PathVariable String id) {
//删除文件夹下面的图片
fileService.batchDeleteByDirectory(id);
//删除目录
fileDirectoryService.removeById(id);
return ResultUtil.success();
}
}

View File

@@ -1,6 +1,7 @@
package cn.lili.controller.common;
import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.core.util.StrUtil;
import cn.lili.cache.Cache;
import cn.lili.common.enums.ResultCode;
import cn.lili.common.enums.ResultUtil;
@@ -21,10 +22,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.InputStream;
@@ -55,7 +53,7 @@ public class UploadController {
@PostMapping(value = "/file")
public ResultMessage<Object> upload(MultipartFile file,
String base64,
@RequestHeader String accessToken) {
@RequestHeader String accessToken, @RequestParam String directoryPath) {
AuthUser authUser = UserContext.getAuthUser(cache, accessToken);
@@ -89,6 +87,12 @@ public class UploadController {
try {
InputStream inputStream = file.getInputStream();
//上传至第三方云服务或服务器
String scene = UserContext.getCurrentUser().getRole().name();
if (StrUtil.equalsAny(UserContext.getCurrentUser().getRole().name(), UserEnums.MEMBER.name(), UserEnums.STORE.name(), UserEnums.SEAT.name())) {
scene = scene + "/" + authUser.getId();
}
fileKey = scene + "/" + directoryPath + "/" + fileKey;
//上传至第三方云服务或服务器
result = filePluginFactory.filePlugin().inputStreamUpload(inputStream, fileKey);
//保存数据信息至数据库
newFile.setName(file.getOriginalFilename());
@@ -104,6 +108,15 @@ public class UploadController {
} else {
newFile.setOwnerId(authUser.getId());
}
//存储文件目录
if (StrUtil.isNotEmpty(directoryPath)) {
if (directoryPath.indexOf("/") > 0) {
newFile.setFileDirectoryId(directoryPath.substring(directoryPath.lastIndexOf("/") + 1));
} else {
newFile.setFileDirectoryId(directoryPath);
}
}
fileService.save(newFile);
} catch (Exception e) {
log.error("文件上传失败", e);