|
|
|
@ -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
|
|
|
|
|