Commit bedcbc13 authored by liqin's avatar liqin 💬

bug fixed

parent 1563cc20
package cn.wisenergy.chnmuseum.party.common.dfs;
import cn.wisenergy.chnmuseum.party.common.mvc.InterfaceException;
import cn.wisenergy.chnmuseum.party.common.util.CopyStreamUtils;
import cn.wisenergy.chnmuseum.party.common.util.FileTypeUtil;
import cn.wisenergy.chnmuseum.party.common.util.FileUtil;
import cn.wisenergy.chnmuseum.party.common.util.*;
import com.github.tobato.fastdfs.domain.fdfs.FileInfo;
import com.github.tobato.fastdfs.domain.fdfs.MetaData;
import com.github.tobato.fastdfs.domain.fdfs.StorePath;
......@@ -25,6 +23,7 @@ import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
......@@ -59,6 +58,7 @@ public class FastDFSUtils {
metaDataSet.add(new MetaData("fileName", fileName));
metaDataSet.add(new MetaData("fileSize", size + ""));
metaDataSet.add(new MetaData("fileExtName", FilenameUtils.getExtension(fileName)));
metaDataSet.add(new MetaData("updateTime", TimeUtils.format(LocalDateTime.now(), TimeUtils.FORMAT_ONE)));
final StorePath storePath = storageClient.uploadFile(inputStream, size, FilenameUtils.getExtension(fileName), metaDataSet);
return dfsFileAccessBasePath + "/" + storePath.getFullPath();
}
......
package cn.wisenergy.chnmuseum.party.common.enums;
import java.util.Arrays;
import java.util.stream.Collectors;
/**
* 版权方类型枚举
*/
......@@ -7,6 +10,8 @@ public enum CopyrightOwnerTypeEnum {
ASSET(1, "视频"),
EXHIBITION_BOARD(2, "展板");
public String name;
public static String names;
// 错误编码
private Integer code;
......@@ -18,6 +23,13 @@ public enum CopyrightOwnerTypeEnum {
this.type = type;
}
public static String getName() {
if (names == null) {
names = Arrays.stream(CopyrightOwnerTypeEnum.values()).map(Enum::name).collect(Collectors.joining(","));
}
return names;
}
public Integer getCode() {
return code;
}
......
......@@ -15,10 +15,14 @@ public class AudioVo {
private String fileExtName;
private String fileType;
private Long fileSize;
private String fileUrl;
private String language;
private String updateTime;
}
......@@ -15,12 +15,16 @@ public class VideoVo {
private String fileExtName;
private String fileType;
private Long fileSize;
private String fileUrl;
private String language;
private String updateTime;
private String md5;
}
......
......@@ -62,18 +62,13 @@ public class Asset implements Serializable {
@NotBlank(message = "下载链接不能为空", groups = {Add.class, Update.class})
private String videoUrl;
@ApiModelProperty("新增审核状态")
@TableField("audit_status_add")
@NotBlank(message = "新增审核状态不能为空", groups = {Add.class, Update.class})
private String auditStatusAdd;
@ApiModelProperty("修改审核状态")
@TableField("audit_status_edit")
private String auditStatusEdit;
@ApiModelProperty("删除审核状态")
@TableField("audit_status_delete")
private String auditStatusDelete;
@ApiModelProperty("审核状态")
@TableField("audit_status")
private String auditStatus;
@ApiModelProperty("是否上架")
@TableField("is_published")
private Boolean published;
@ApiModelProperty("创建日期")
@TableField(value = "create_time", fill = FieldFill.INSERT)
......
......@@ -45,7 +45,7 @@ public class CopyrightOwner implements Serializable {
@NotBlank(message = "版权方名称不能为空", groups = {Add.class, Update.class})
private String name;
@ApiModelProperty("版权方类型")
@ApiModelProperty(value = "版权方类型", allowableValues = "ASSET, EXHIBITION_BOARD")
@TableField("owner_type")
@NotBlank(message = "版权方类型不能为空", groups = {Add.class, Update.class})
private String ownerType;
......
......@@ -12,6 +12,7 @@ import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
/**
* <p>
......@@ -44,7 +45,7 @@ public class ExhibitionBoard implements Serializable {
private String name;
@ApiModelProperty("展板版权方ID")
@TableField("board_copyright_owner_id")
@TableField(value = "board_copyright_owner_id", updateStrategy = FieldStrategy.IGNORED)
private String boardCopyrightOwnerId;
@ApiModelProperty("展板分类ID")
......@@ -67,7 +68,7 @@ public class ExhibitionBoard implements Serializable {
private String introduction;
@ApiModelProperty("视频版权方ID")
@TableField("asset_copyright_owner_id")
@TableField(value = "asset_copyright_owner_id", updateStrategy = FieldStrategy.IGNORED)
private String assetCopyrightOwnerId;
@ApiModelProperty("视频类别ID")
......@@ -81,7 +82,6 @@ public class ExhibitionBoard implements Serializable {
@ApiModelProperty("导览音频URL")
@TableField("guide_audio_url")
@NotBlank(message = "导览音频URL不能为空", groups = {Add.class, Update.class})
private String guideAudioUrl;
@ApiModelProperty("参考资料文件夹")
......@@ -91,21 +91,15 @@ public class ExhibitionBoard implements Serializable {
@ApiModelProperty("参考资料URL")
@TableField("ref_material_url")
@NotBlank(message = "参考资料URL不能为空", groups = {Add.class, Update.class})
private String refMaterialUrl;
@ApiModelProperty("新增审核状态")
@TableField("audit_status_add")
@NotBlank(message = "新增审核状态不能为空", groups = {Add.class, Update.class})
private String auditStatusAdd;
@ApiModelProperty("审核状态")
@TableField("audit_status")
private String auditStatus;
@ApiModelProperty("修改审核状态")
@TableField("audit_status_edit")
private String auditStatusEdit;
@ApiModelProperty("删除审核状态")
@TableField("audit_status_delete")
private String auditStatusDelete;
@ApiModelProperty("是否上架")
@TableField("is_published")
private Boolean published;
@ApiModelProperty("创建日期")
@TableField(value = "create_time", fill = FieldFill.INSERT)
......@@ -115,4 +109,20 @@ public class ExhibitionBoard implements Serializable {
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
private LocalDateTime updateTime;
@ApiModelProperty("展板版权方名称")
@TableField(exist = false)
private String boardCopyrightOwnerName;
@ApiModelProperty("展板分类名称")
@TableField(exist = false)
private String exhibitionBoardCatName;
@ApiModelProperty("音频URL列表")
@TableField(exist = false)
private List<String> audioUrlList;
@ApiModelProperty("参考资料URL列表")
@TableField(exist = false)
private List<String> materialUrlList;
}
......@@ -58,18 +58,13 @@ public class LearningContent implements Serializable {
@NotBlank(message = "学习项目ID不能为空", groups = {Add.class, Update.class})
private String learningProjectId;
@ApiModelProperty("新增审核状态")
@TableField("audit_status_add")
@NotBlank(message = "新增审核状态不能为空", groups = {Add.class, Update.class})
private String auditStatusAdd;
@ApiModelProperty("审核状态")
@TableField("audit_status")
private String auditStatus;
@ApiModelProperty("修改审核状态")
@TableField("audit_status_edit")
private String auditStatusEdit;
@ApiModelProperty("删除审核状态")
@TableField("audit_status_delete")
private String auditStatusDelete;
@ApiModelProperty("是否上架")
@TableField("is_published")
private Boolean published;
@ApiModelProperty("排序顺序")
@TableField("sortorder")
......
......@@ -2,6 +2,7 @@ package cn.wisenergy.chnmuseum.party.web.controller;
import cn.wisenergy.chnmuseum.party.common.dfs.FastDFSUtils;
import cn.wisenergy.chnmuseum.party.common.enums.AuditStatusEnum;
import cn.wisenergy.chnmuseum.party.common.enums.FileTypeEnum;
import cn.wisenergy.chnmuseum.party.common.validator.groups.Add;
import cn.wisenergy.chnmuseum.party.common.validator.groups.Update;
import cn.wisenergy.chnmuseum.party.common.vo.GenericPageParam;
......@@ -67,18 +68,24 @@ public class AssetController extends BaseController {
final List<String> videoUrlList = asset.getVideoUrlList();
for (String videoUrl : videoUrlList) {
// 原始文件名
final Set<MetaData> metaData = FastDFSUtils.getFileMetaData(videoUrl);
String fileName = metaData.stream().filter(x -> "fileName".equals(x.getName())).map(MetaData::getValue).findFirst().get();
Long fileSize = metaData.stream().filter(x -> "fileSize".equals(x.getName())).map(MetaData::getValue).map(Long::parseLong).findFirst().get();
String fileExtName = metaData.stream().filter(x -> "fileExtName".equals(x.getName())).map(MetaData::getValue).findFirst().get();
String updateTime = metaData.stream().filter(x -> "updateTime".equals(x.getName())).map(MetaData::getValue).findFirst().get();
String md5 = metaData.stream().filter(x -> "MD5".equals(x.getName())).map(MetaData::getValue).findFirst().get();
filesMetadata.add(VideoVo.builder().fileName(fileName)
filesMetadata.add(VideoVo.builder()
.fileName(fileName)
.fileType(FileTypeEnum.VIDEO.name())
.fileExtName(fileExtName)
.fileSize(fileSize).fileUrl(videoUrl).md5(md5).build());
.fileSize(fileSize)
.fileUrl(videoUrl)
.updateTime(updateTime)
.md5(md5).build());
}
asset.setVideoUrl(JSONObject.toJSONString(filesMetadata));
asset.setAuditStatusAdd(AuditStatusEnum.TBC.name());
asset.setAuditStatus(AuditStatusEnum.TBC.name());
asset.setPublished(false);
// 保存业务节点信息
boolean result = assetService.save(asset);
// 返回操作结果
......@@ -99,13 +106,20 @@ public class AssetController extends BaseController {
String fileName = metaData.stream().filter(x -> "fileName".equals(x.getName())).map(MetaData::getValue).findFirst().get();
Long fileSize = metaData.stream().filter(x -> "fileSize".equals(x.getName())).map(MetaData::getValue).map(Long::parseLong).findFirst().get();
String fileExtName = metaData.stream().filter(x -> "fileExtName".equals(x.getName())).map(MetaData::getValue).findFirst().get();
String updateTime = metaData.stream().filter(x -> "updateTime".equals(x.getName())).map(MetaData::getValue).findFirst().get();
String md5 = metaData.stream().filter(x -> "MD5".equals(x.getName())).map(MetaData::getValue).findFirst().get();
filesMetadata.add(VideoVo.builder().fileName(fileName)
filesMetadata.add(VideoVo.builder()
.fileName(fileName)
.fileType(FileTypeEnum.VIDEO.name())
.fileExtName(fileExtName)
.fileSize(fileSize).fileUrl(videoUrl).md5(md5).build());
.fileSize(fileSize)
.fileUrl(videoUrl)
.updateTime(updateTime)
.md5(md5).build());
}
asset.setVideoUrl(JSONObject.toJSONString(filesMetadata));
asset.setAuditStatusAdd(AuditStatusEnum.TBC.name());
asset.setAuditStatus(AuditStatusEnum.TBC.name());
asset.setPublished(false);
boolean flag = assetService.updateById(asset);
if (flag) {
return getSuccessResult();
......@@ -138,6 +152,8 @@ public class AssetController extends BaseController {
@ApiImplicitParam(name = "id", value = "标识ID", paramType = "path", dataType = "String")
})
public Map<String, Object> deleteAsset(@PathVariable("id") String id) {
// asset.setAuditStatus(AuditStatusEnum.TBC.name());
// asset.setPublished(false);
boolean result = assetService.removeById(id);
if (result) {
return getSuccessResult();
......@@ -152,7 +168,7 @@ public class AssetController extends BaseController {
@ApiImplicitParam(name = "auditStatus", value = "审核状态", paramType = "query", dataType = "String")
})
public Map<String, Object> getAssetList(@RequestParam(value = "auditStatus", defaultValue = "APPROVED_FINAL", required = false) AuditStatusEnum auditStatus) {
List<Asset> assetList = assetService.list(Wrappers.<Asset>lambdaQuery().eq(Asset::getAuditStatusAdd, auditStatus.name()));
List<Asset> assetList = assetService.list(Wrappers.<Asset>lambdaQuery().eq(Asset::getAuditStatus, auditStatus.name()).eq(Asset::getPublished, true));
return getResult(assetList);
}
......@@ -193,9 +209,8 @@ public class AssetController extends BaseController {
queryWrapper.select(
Asset::getId,
Asset::getName,
Asset::getAuditStatusAdd,
Asset::getAuditStatusEdit,
Asset::getAuditStatusDelete,
Asset::getAuditStatus,
Asset::getPublished,
Asset::getAssetTypeId,
Asset::getAssetCopyrightOwnerId,
Asset::getCreateTime,
......
......@@ -26,6 +26,7 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
/**
......@@ -137,10 +138,12 @@ public class AssetTypeController extends BaseController {
LambdaQueryWrapper<Asset> lambdaQueryWrapper = Wrappers.<Asset>lambdaQuery().eq(Asset::getAssetTypeId, assetType.getId());
lambdaQueryWrapper = lambdaQueryWrapper.select(Asset::getId).select(Asset::getAssetCopyrightOwnerId);
List<Asset> assetList = this.assetService.list(lambdaQueryWrapper);
final List<String> assetCopyrightOwnerIdList = assetList.stream().map(Asset::getAssetCopyrightOwnerId).collect(Collectors.toList());
List<CopyrightOwner> copyrightOwnerList = this.copyrightOwnerService.listByIds(assetCopyrightOwnerIdList);
String copyrightOwnerName = copyrightOwnerList.stream().map(CopyrightOwner::getName).collect(Collectors.joining("、"));
assetType.setCopyrightOwnerName(copyrightOwnerName);
if (!assetList.isEmpty()) {
final Set<String> assetCopyrightOwnerIdList = assetList.stream().map(Asset::getAssetCopyrightOwnerId).collect(Collectors.toSet());
List<CopyrightOwner> copyrightOwnerList = this.copyrightOwnerService.listByIds(assetCopyrightOwnerIdList);
String copyrightOwnerName = copyrightOwnerList.stream().map(CopyrightOwner::getName).collect(Collectors.joining("、"));
assetType.setCopyrightOwnerName(copyrightOwnerName);
}
}
return getResult(page);
}
......
......@@ -26,6 +26,7 @@ import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
/**
......@@ -60,8 +61,10 @@ public class CopyrightOwnerController extends BaseController {
@PostMapping("/save")
@RequiresPermissions("copyright:owner:save")
@ApiOperation(value = "添加版权方", notes = "添加版权方")
public Map<String, Object> saveCopyrightOwner(@Validated(value = {Add.class}) CopyrightOwner copyrightOwner, @RequestParam("copyrightOwnerType") CopyrightOwnerTypeEnum copyrightOwnerTypeEnum) {
copyrightOwner.setOwnerType(copyrightOwnerTypeEnum.name());
public Map<String, Object> saveCopyrightOwner(@Validated(value = {Add.class}) CopyrightOwner copyrightOwner
//, @RequestParam("copyrightOwnerType") CopyrightOwnerTypeEnum copyrightOwnerTypeEnum
) {
//copyrightOwner.setOwnerType(copyrightOwnerTypeEnum.name());
// 保存业务节点信息
boolean result = copyrightOwnerService.save(copyrightOwner);
......@@ -189,16 +192,16 @@ public class CopyrightOwnerController extends BaseController {
Page<CopyrightOwner> page = this.copyrightOwnerService.page(getPage(), queryWrapper);
for (CopyrightOwner copyrightOwner : page.getRecords()) {
if (CopyrightOwnerTypeEnum.ASSET.name().equals(genericPageParam.getOwnerType())) {
final List<CopyrightOwnerAssetType> CopyrightOwnerAssetTypeList = this.copyrightOwnerAssetTypeService.list(Wrappers.<CopyrightOwnerAssetType>lambdaQuery().eq(CopyrightOwnerAssetType::getCopyrightOwnerId, copyrightOwner.getId()));
final List<String> idList = CopyrightOwnerAssetTypeList.stream().map(CopyrightOwnerAssetType::getAssetTypeId).collect(Collectors.toList());
List<CopyrightOwnerAssetType> CopyrightOwnerAssetTypeList = this.copyrightOwnerAssetTypeService.list(Wrappers.<CopyrightOwnerAssetType>lambdaQuery().eq(CopyrightOwnerAssetType::getCopyrightOwnerId, copyrightOwner.getId()));
Set<String> idList = CopyrightOwnerAssetTypeList.stream().map(CopyrightOwnerAssetType::getAssetTypeId).collect(Collectors.toSet());
List<AssetType> assetTypeList = this.assetTypeService.listByIds(idList);
final String assetTypeNameList = assetTypeList.stream().map(AssetType::getName).collect(Collectors.joining("、"));
String assetTypeNameList = assetTypeList.stream().map(AssetType::getName).collect(Collectors.joining("、"));
copyrightOwner.setAssetTypeNames(assetTypeNameList);
} else if (CopyrightOwnerTypeEnum.EXHIBITION_BOARD.name().equals(genericPageParam.getOwnerType())) {
LambdaQueryWrapper<ExhibitionBoard> lambdaQueryWrapper = Wrappers.<ExhibitionBoard>lambdaQuery().eq(ExhibitionBoard::getBoardCopyrightOwnerId, copyrightOwner.getId());
final List<ExhibitionBoard> exhibitionBoardList = this.exhibitionBoardService.list(lambdaQueryWrapper);
final List<String> assetTypeIdList = exhibitionBoardList.stream().map(ExhibitionBoard::getAssetTypeId).collect(Collectors.toList());
final List<AssetType> assetTypeList = this.assetTypeService.listByIds(assetTypeIdList);
List<ExhibitionBoard> exhibitionBoardList = this.exhibitionBoardService.list(lambdaQueryWrapper);
Set<String> assetTypeIdList = exhibitionBoardList.stream().map(ExhibitionBoard::getAssetTypeId).collect(Collectors.toSet());
List<AssetType> assetTypeList = this.assetTypeService.listByIds(assetTypeIdList);
String assetTypeNames = assetTypeList.stream().map(AssetType::getName).collect(Collectors.joining("、"));
copyrightOwner.setAssetTypeNames(assetTypeNames);
}
......
......@@ -29,6 +29,7 @@ import javax.annotation.Resource;
import javax.validation.constraints.NotNull;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
/**
......@@ -166,12 +167,14 @@ public class ExhibitionBoardCatController extends BaseController {
ExhibitionBoardCat::getUpdateTime);
Page<ExhibitionBoardCat> page = this.exhibitionBoardCatService.page(getPage(), queryWrapper);
for (ExhibitionBoardCat exhibitionBoardCat : page.getRecords()) {
LambdaQueryWrapper<ExhibitionBoard> lambdaQueryWrapper = Wrappers.<ExhibitionBoard>lambdaQuery().le(ExhibitionBoard::getExhibitionBoardCatId, exhibitionBoardCat.getId());
LambdaQueryWrapper<ExhibitionBoard> lambdaQueryWrapper = Wrappers.<ExhibitionBoard>lambdaQuery().eq(ExhibitionBoard::getExhibitionBoardCatId, exhibitionBoardCat.getId());
List<ExhibitionBoard> exhibitionBoardList = this.exhibitionBoardService.list(lambdaQueryWrapper);
List<String> boardCopyrightOwnerIdList = exhibitionBoardList.stream().map(ExhibitionBoard::getBoardCopyrightOwnerId).collect(Collectors.toList());
List<CopyrightOwner> copyrightOwnerList = this.copyrightOwnerService.listByIds(boardCopyrightOwnerIdList);
String copyrightOwnerNames = copyrightOwnerList.stream().map(CopyrightOwner::getName).collect(Collectors.joining("、"));
exhibitionBoardCat.setCopyrightOwnerNames(copyrightOwnerNames);
if (!exhibitionBoardList.isEmpty()) {
Set<String> boardCopyrightOwnerIdList = exhibitionBoardList.stream().map(ExhibitionBoard::getBoardCopyrightOwnerId).collect(Collectors.toSet());
List<CopyrightOwner> copyrightOwnerList = this.copyrightOwnerService.listByIds(boardCopyrightOwnerIdList);
String copyrightOwnerNames = copyrightOwnerList.stream().map(CopyrightOwner::getName).collect(Collectors.joining("、"));
exhibitionBoardCat.setCopyrightOwnerNames(copyrightOwnerNames);
}
}
return getResult(page);
}
......
......@@ -42,16 +42,10 @@ import java.util.Objects;
@Api(tags = {"文件上传接口"})
public class FileUploadController {
// 允许上传的格式
private static final String[] IMAGE_TYPE = new String[]{"JPG", "JPEG", "PNG", "BMP", "WBMP"};
// 允许上传的格式
private static final String[] AUDIO_TYPE = new String[]{"MP3", "WAV", "WMA", "AAC", "FLAC", "APE"};
private static final String[] VIDEO_TYPE = new String[]{"MP4", "FLV"};
// 允许上传的格式
private static final String[] DOC_TYPE = new String[]{"PDF", "DOC", "DOCX", "XLS", "XLSX", "PPT", "PPTX"};
// 允许上传的格式
private static final String[] DATUM_TYPE = ArrayUtil.addAll(DOC_TYPE, IMAGE_TYPE, VIDEO_TYPE);
// @RequestMapping(value = "/upload", method = RequestMethod.POST)
......@@ -187,6 +181,69 @@ public class FileUploadController {
return ResponseEntity.status(HttpStatus.CREATED).body(imageUploadResult);
}
@ApiImplicitParams({
@ApiImplicitParam(name = "file", value = "音频文件", paramType = "form", dataType = "__file", collectionFormat = "array", allowMultiple = true)
})
@PostMapping(value = "/audio/upload", headers = "content-type=multipart/form-data", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
@RequiresPermissions("audio:upload")
@ApiOperation(value = "多音频上传", notes = "多音频上传")
public ResponseEntity<BatchUploadResVO> uploadAudio(@RequestPart(value = "file", required = false) MultipartFile[] files) throws IOException {
if (files.length == 0) {
throw new InterfaceException(RESPONSE_CODE_ENUM.REQUEST_PARAMS_ERROR.getCode(), "没有文件可供上传");
}
final boolean existChineseAudio = Arrays.stream(files).anyMatch(s -> Objects.requireNonNull(s.getOriginalFilename()).contains("汉语"));
if (!existChineseAudio) {
throw new InterfaceException(RESPONSE_CODE_ENUM.REQUEST_PARAMS_ERROR.getCode(), "必须包含汉语音频");
}
int successCount = 0;
int failureCount = 0;
List<BatchUploadResVO.HandleResult> handleList = new ArrayList<>();
List<String> videoUrlList = new ArrayList<>();
for (MultipartFile file : files) {
// 当前维度表下线结果
BatchUploadResVO.HandleResult handleResult = new BatchUploadResVO.HandleResult();
// 原始文件名
String originalFilename = file.getOriginalFilename();
if (StringUtils.isBlank(originalFilename)) {
handleResult.setFileName("");
handleResult.setFileType(FileTypeEnum.AUDIO.getName());
handleResult.setFileUrl("");
handleResult.setHandleResult(HANDLE_STATUS_ENUM.FAILURE.getName());
handleResult.setDescription("文件名为空");
failureCount++;
continue;
}
handleResult.setFileName(originalFilename);
handleResult.setFileType(FileTypeEnum.AUDIO.getName());
handleResult.setHandleResult(HANDLE_STATUS_ENUM.SUCCESS.getName());
boolean anyMatch = Arrays.stream(AUDIO_TYPE).anyMatch(s -> Objects.equals(s, FilenameUtils.getExtension(originalFilename).toUpperCase()));
if (anyMatch) {
String url = FastDFSUtils.uploadFile(file.getInputStream(), file.getSize(), originalFilename);
handleResult.setFileUrl(url);
handleResult.setDescription("操作成功");
videoUrlList.add(url);
successCount++;
} else {
handleResult.setFileUrl("");
handleResult.setDescription("文件格式不支持");
failureCount++;
}
// 设置处理的业务表信息
handleList.add(handleResult);
}
BatchUploadResVO batchUploadResVO = new BatchUploadResVO();
batchUploadResVO.setFailureCount(failureCount);
batchUploadResVO.setSuccessCount(successCount);
batchUploadResVO.setTotal(files.length);
batchUploadResVO.setHandleList(handleList);
batchUploadResVO.setUrlList(videoUrlList);
return ResponseEntity.status(HttpStatus.CREATED).body(batchUploadResVO);
}
@ApiImplicitParams({
@ApiImplicitParam(name = "file", value = "视频文件", paramType = "form", dataType = "__file", collectionFormat = "array", allowMultiple = true)
})
......@@ -194,12 +251,12 @@ public class FileUploadController {
@RequiresPermissions("video:upload")
@ApiOperation(value = "多视频上传", notes = "多视频上传")
public ResponseEntity<BatchUploadResVO> uploadVideo(@RequestPart(value = "file", required = false) MultipartFile[] files) throws IOException {
if (files.length == 0) {
if (files == null || files.length == 0) {
throw new InterfaceException(RESPONSE_CODE_ENUM.REQUEST_PARAMS_ERROR.getCode(), "没有文件可供上传");
}
final boolean matchChinese = Arrays.stream(files).anyMatch(s -> Objects.requireNonNull(s.getOriginalFilename()).contains("中文"));
final boolean matchChinese = Arrays.stream(files).anyMatch(s -> Objects.requireNonNull(s.getOriginalFilename()).contains("汉语"));
if (!matchChinese) {
throw new InterfaceException(RESPONSE_CODE_ENUM.REQUEST_PARAMS_ERROR.getCode(), "必须包含中文视频");
throw new InterfaceException(RESPONSE_CODE_ENUM.REQUEST_PARAMS_ERROR.getCode(), "必须包含汉语视频");
}
int successCount = 0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment