From 90025163a7219a34272018a3f3a8b5980d27789a Mon Sep 17 00:00:00 2001 From: xueqingkun Date: Thu, 1 Feb 2024 15:23:27 +0800 Subject: [PATCH] =?UTF-8?q?manage=20=EF=BC=9A=E8=B0=83=E6=95=B4=20?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E7=B4=A0=E6=9D=90=20=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/file/FileManageController.java | 13 +++++-- .../file/MaterialLibraryManageController.java | 7 ++-- .../service/MaterialLibraryManageService.java | 8 ++--- .../MaterialLibraryManageServiceImpl.java | 36 +++++++++++++------ 4 files changed, 43 insertions(+), 21 deletions(-) diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/controller/file/FileManageController.java b/virtual-patient-manage/src/main/java/com/supervision/manage/controller/file/FileManageController.java index 8064fb3b..22c50d8a 100644 --- a/virtual-patient-manage/src/main/java/com/supervision/manage/controller/file/FileManageController.java +++ b/virtual-patient-manage/src/main/java/com/supervision/manage/controller/file/FileManageController.java @@ -19,10 +19,9 @@ public class FileManageController { private final FileManageService fileManageService; @ApiOperation("上传文件") @PostMapping("/uploadFile") - public String uploadFile(@RequestParam("file") MultipartFile multipartFile) throws Exception { + public FileResource uploadFile(@RequestParam("file") MultipartFile multipartFile) throws Exception { - FileResource fileResource = fileManageService.uploadFile(multipartFile, multipartFile.getContentType()); - return fileResource.getId(); + return fileManageService.uploadFile(multipartFile, multipartFile.getContentType()); } @@ -33,4 +32,12 @@ public class FileManageController { fileManageService.downloadFile(fileId, response); } + + @ApiOperation("删除文件") + @DeleteMapping("/deleteFile") + public boolean deleteFile(@RequestParam String fileId) throws Exception { + + return fileManageService.deleteFile(fileId); + + } } diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/controller/file/MaterialLibraryManageController.java b/virtual-patient-manage/src/main/java/com/supervision/manage/controller/file/MaterialLibraryManageController.java index 4de37bce..f3b52a58 100644 --- a/virtual-patient-manage/src/main/java/com/supervision/manage/controller/file/MaterialLibraryManageController.java +++ b/virtual-patient-manage/src/main/java/com/supervision/manage/controller/file/MaterialLibraryManageController.java @@ -10,6 +10,8 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import java.util.List; + @Api(tags = "素材库管理") @RestController @RequestMapping("/materialLibrary") @@ -20,10 +22,9 @@ public class MaterialLibraryManageController { @ApiOperation("上传素材") @PostMapping("/uploadMaterial") - public String uploadMaterial(@ApiParam("文件") @RequestParam("file") MultipartFile multipartFile, - MaterialLibrary materialLibrary) throws Exception { + public void uploadMaterial(@RequestBody List materialLibraryList) throws Exception { - return materialLibraryManageService.uploadMaterial(multipartFile,materialLibrary); + materialLibraryManageService.uploadMaterial(materialLibraryList); } diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/service/MaterialLibraryManageService.java b/virtual-patient-manage/src/main/java/com/supervision/manage/service/MaterialLibraryManageService.java index 96dfef84..f19d60e2 100644 --- a/virtual-patient-manage/src/main/java/com/supervision/manage/service/MaterialLibraryManageService.java +++ b/virtual-patient-manage/src/main/java/com/supervision/manage/service/MaterialLibraryManageService.java @@ -2,18 +2,18 @@ package com.supervision.manage.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.supervision.model.MaterialLibrary; -import org.springframework.web.multipart.MultipartFile; + +import java.util.List; public interface MaterialLibraryManageService { /** * 上传素材库文件 - * @param multipartFile 文件内容 - * @param materialLibrary 素材内容 + * @param materialLibraryList 素材内容 * @return 素材id */ - String uploadMaterial(MultipartFile multipartFile, MaterialLibrary materialLibrary) throws Exception; + void uploadMaterial(List materialLibraryList) throws Exception; IPage queryMaterialPage(String materialType, String materialName, String directoryId,Integer pageNum, Integer pageSize); diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/MaterialLibraryManageServiceImpl.java b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/MaterialLibraryManageServiceImpl.java index b24f3318..57e09ec6 100644 --- a/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/MaterialLibraryManageServiceImpl.java +++ b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/MaterialLibraryManageServiceImpl.java @@ -10,18 +10,20 @@ import com.supervision.manage.service.FileManageService; import com.supervision.manage.service.MaterialLibraryManageService; import com.supervision.model.FileResource; import com.supervision.model.MaterialLibrary; +import com.supervision.service.FileResourceService; import com.supervision.service.MaterialLibraryService; import lombok.RequiredArgsConstructor; import org.apache.commons.lang3.tuple.Triple; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.multipart.MultipartFile; import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.Objects; import java.util.regex.Matcher; import java.util.regex.Pattern; +import java.util.stream.Collectors; @Service @RequiredArgsConstructor @@ -30,19 +32,31 @@ public class MaterialLibraryManageServiceImpl implements MaterialLibraryManageSe private final MaterialLibraryService materialLibraryService; private final FileManageService fileManageService; + + private final FileResourceService fileResourceService; @Override @Transactional(rollbackFor = Exception.class) - public String uploadMaterial(MultipartFile multipartFile,MaterialLibrary materialLibrary) throws Exception { + public void uploadMaterial(List materialLibraryList) throws Exception { // 校验素材名是否已经存在 - Assert.notEmpty(materialLibrary.getMaterialName(), "素材名不能为空"); - Assert.notEmpty(materialLibrary.getMaterialType(), "素材类型不能为空"); - - materialLibrary.setMaterialName(renameIfNecessary(materialLibrary.getMaterialName())); - // 保存素材 - FileResource fileResource = fileManageService.uploadFile(multipartFile, multipartFile.getContentType()); - materialLibrary.setFileResourceId(fileResource.getId()); - materialLibraryService.save(materialLibrary); - return materialLibrary.getId(); + Assert.notEmpty(materialLibraryList, "素材列表不能为空"); + materialLibraryList.forEach(materialLibrary -> { + Assert.notEmpty(materialLibrary.getMaterialType(), "素材类型不能为空"); + Assert.notEmpty(materialLibrary.getFileResourceId(), "文件资源id不能为空"); + }); + + List resourceIds = materialLibraryList.stream().map(MaterialLibrary::getFileResourceId).collect(Collectors.toList()); + Map fileResourceMap = fileResourceService.lambdaQuery() + .in(FileResource::getId, resourceIds).list().stream().collect(Collectors.toMap(FileResource::getId, e -> e)); + + for (MaterialLibrary materialLibrary : materialLibraryList) { + FileResource fileResource = fileResourceMap.get(materialLibrary.getFileResourceId()); + Assert.notNull(fileResource, "文件资源不存在"); + materialLibrary.setMaterialName(renameIfNecessary(fileResource.getFileName())); + // 保存素材 + materialLibrary.setFileResourceId(materialLibrary.getFileResourceId()); + materialLibraryService.save(materialLibrary); + } + } @Override