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

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

@ -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);
}
}

@ -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<MaterialLibrary> materialLibraryList) 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.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<MaterialLibrary> materialLibraryList) throws Exception;
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.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<MaterialLibrary> materialLibraryList) throws Exception {
// 校验素材名是否已经存在
Assert.notEmpty(materialLibrary.getMaterialName(), "素材名不能为空");
Assert.notEmpty(materialLibraryList, "素材列表不能为空");
materialLibraryList.forEach(materialLibrary -> {
Assert.notEmpty(materialLibrary.getMaterialType(), "素材类型不能为空");
Assert.notEmpty(materialLibrary.getFileResourceId(), "文件资源id不能为空");
});
List<String> resourceIds = materialLibraryList.stream().map(MaterialLibrary::getFileResourceId).collect(Collectors.toList());
Map<String, FileResource> fileResourceMap = fileResourceService.lambdaQuery()
.in(FileResource::getId, resourceIds).list().stream().collect(Collectors.toMap(FileResource::getId, e -> e));
materialLibrary.setMaterialName(renameIfNecessary(materialLibrary.getMaterialName()));
for (MaterialLibrary materialLibrary : materialLibraryList) {
FileResource fileResource = fileResourceMap.get(materialLibrary.getFileResourceId());
Assert.notNull(fileResource, "文件资源不存在");
materialLibrary.setMaterialName(renameIfNecessary(fileResource.getFileName()));
// 保存素材
FileResource fileResource = fileManageService.uploadFile(multipartFile, multipartFile.getContentType());
materialLibrary.setFileResourceId(fileResource.getId());
materialLibrary.setFileResourceId(materialLibrary.getFileResourceId());
materialLibraryService.save(materialLibrary);
return materialLibrary.getId();
}
}
@Override

Loading…
Cancel
Save