manage :调整 上传素材 接口功能

dev_2.1.0
xueqingkun 1 year ago
parent ba9c67e80f
commit 90025163a7

@ -19,10 +19,9 @@ public class FileManageController {
private final FileManageService fileManageService; private final FileManageService fileManageService;
@ApiOperation("上传文件") @ApiOperation("上传文件")
@PostMapping("/uploadFile") @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 fileManageService.uploadFile(multipartFile, multipartFile.getContentType());
return fileResource.getId();
} }
@ -33,4 +32,12 @@ public class FileManageController {
fileManageService.downloadFile(fileId, response); fileManageService.downloadFile(fileId, response);
} }
@ApiOperation("删除文件")
@DeleteMapping("/deleteFile")
public boolean deleteFile(@RequestParam String fileId) throws Exception {
return fileManageService.deleteFile(fileId);
}
} }

@ -10,6 +10,8 @@ import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.util.List;
@Api(tags = "素材库管理") @Api(tags = "素材库管理")
@RestController @RestController
@RequestMapping("/materialLibrary") @RequestMapping("/materialLibrary")
@ -20,10 +22,9 @@ public class MaterialLibraryManageController {
@ApiOperation("上传素材") @ApiOperation("上传素材")
@PostMapping("/uploadMaterial") @PostMapping("/uploadMaterial")
public String uploadMaterial(@ApiParam("文件") @RequestParam("file") MultipartFile multipartFile, public void uploadMaterial(@RequestBody List<MaterialLibrary> materialLibraryList) throws Exception {
MaterialLibrary materialLibrary) throws Exception {
return materialLibraryManageService.uploadMaterial(multipartFile,materialLibrary); materialLibraryManageService.uploadMaterial(materialLibraryList);
} }

@ -2,18 +2,18 @@ package com.supervision.manage.service;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.supervision.model.MaterialLibrary; import com.supervision.model.MaterialLibrary;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
public interface MaterialLibraryManageService { public interface MaterialLibraryManageService {
/** /**
* *
* @param multipartFile * @param materialLibraryList
* @param materialLibrary
* @return id * @return id
*/ */
String uploadMaterial(MultipartFile multipartFile, MaterialLibrary materialLibrary) throws Exception; void uploadMaterial(List<MaterialLibrary> materialLibraryList) throws Exception;
IPage<MaterialLibrary> queryMaterialPage(String materialType, String materialName, String directoryId,Integer pageNum, Integer pageSize); IPage<MaterialLibrary> queryMaterialPage(String materialType, String materialName, String directoryId,Integer pageNum, Integer pageSize);

@ -10,18 +10,20 @@ import com.supervision.manage.service.FileManageService;
import com.supervision.manage.service.MaterialLibraryManageService; import com.supervision.manage.service.MaterialLibraryManageService;
import com.supervision.model.FileResource; import com.supervision.model.FileResource;
import com.supervision.model.MaterialLibrary; import com.supervision.model.MaterialLibrary;
import com.supervision.service.FileResourceService;
import com.supervision.service.MaterialLibraryService; import com.supervision.service.MaterialLibraryService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.tuple.Triple; import org.apache.commons.lang3.tuple.Triple;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Objects; import java.util.Objects;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import java.util.stream.Collectors;
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
@ -30,19 +32,31 @@ public class MaterialLibraryManageServiceImpl implements MaterialLibraryManageSe
private final MaterialLibraryService materialLibraryService; private final MaterialLibraryService materialLibraryService;
private final FileManageService fileManageService; private final FileManageService fileManageService;
private final FileResourceService fileResourceService;
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public String uploadMaterial(MultipartFile multipartFile,MaterialLibrary materialLibrary) throws Exception { public void uploadMaterial(List<MaterialLibrary> materialLibraryList) throws Exception {
// 校验素材名是否已经存在 // 校验素材名是否已经存在
Assert.notEmpty(materialLibrary.getMaterialName(), "素材名不能为空"); Assert.notEmpty(materialLibraryList, "素材列表不能为空");
Assert.notEmpty(materialLibrary.getMaterialType(), "素材类型不能为空"); materialLibraryList.forEach(materialLibrary -> {
Assert.notEmpty(materialLibrary.getMaterialType(), "素材类型不能为空");
materialLibrary.setMaterialName(renameIfNecessary(materialLibrary.getMaterialName())); Assert.notEmpty(materialLibrary.getFileResourceId(), "文件资源id不能为空");
// 保存素材 });
FileResource fileResource = fileManageService.uploadFile(multipartFile, multipartFile.getContentType());
materialLibrary.setFileResourceId(fileResource.getId()); List<String> resourceIds = materialLibraryList.stream().map(MaterialLibrary::getFileResourceId).collect(Collectors.toList());
materialLibraryService.save(materialLibrary); Map<String, FileResource> fileResourceMap = fileResourceService.lambdaQuery()
return materialLibrary.getId(); .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 @Override

Loading…
Cancel
Save