wanghongbo

素材库接口

... ... @@ -4,6 +4,7 @@ package com.wondertek.controller;
import com.wondertek.dto.BackupChangeDto;
import com.wondertek.dto.BackupMaterialDto;
import com.wondertek.dto.BackupUploadVo;
import com.wondertek.dto.MaterialUploadVo;
import com.wondertek.service.BackupMaterialService;
import com.wondertek.util.PageBean;
import com.wondertek.util.ResultBean;
... ... @@ -40,6 +41,32 @@ public class BackupMaterialController {
}
/**
* @description 素材库新增
* @author W5669
* @date 2025/7/24
* @param backupFile
* @param backupUploadVo
* @return ResultBean
*/
@PostMapping("add")
ResultBean uploadToMaterial(MultipartFile backupFile, MaterialUploadVo materialUploadVo){
return backupMaterialService.uploadToMaterial(backupFile, materialUploadVo);
}
/**
* @description 素材库新增
* @author W5669
* @date 2025/8/19
* @param backupFile
* @param backupUploadVo
* @return ResultBean
*/
@PostMapping("delete")
ResultBean batchDelete(@RequestParam("ids") Long[] ids){
return backupMaterialService.batchDelete(ids);
}
/**
* @description 获取审片间垫片列表
* @author W5669
* @date 2025/7/24
... ...
package com.wondertek.dto;
import lombok.Data;
/**
* @Description: 垫片上传参数
* @Author W5669
* @Create 2025/7/24
* @Version 1.0
*/
@Data
public class MaterialUploadVo {
//png、jpg、mp4等
private String fileType;
//垫片名
private String backupName;
}
... ...
... ... @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.wondertek.dto.BackupChangeDto;
import com.wondertek.dto.BackupMaterialDto;
import com.wondertek.dto.BackupUploadVo;
import com.wondertek.dto.MaterialUploadVo;
import com.wondertek.entity.BackupMaterial;
import com.wondertek.util.PageBean;
import com.wondertek.util.ResultBean;
... ... @@ -18,4 +19,8 @@ public interface BackupMaterialService extends IService<BackupMaterial> {
ResultBean getByRoom(Long roomId);
ResultBean change(BackupChangeDto backupChangeDto);
ResultBean uploadToMaterial(MultipartFile backupFile, MaterialUploadVo materialUploadVo);
ResultBean batchDelete(Long[] ids);
}
... ...
... ... @@ -14,7 +14,6 @@ import com.wondertek.entity.BackupConfig;
import com.wondertek.entity.BackupMaterial;
import com.wondertek.entity.StreamTask;
import com.wondertek.enums.PlayTypeEnum;
import com.wondertek.exception.BusinessException;
import com.wondertek.exception.ServiceException;
import com.wondertek.mapper.BackupConfigMapper;
import com.wondertek.mapper.BackupMaterialMapper;
... ... @@ -257,4 +256,47 @@ public class BackupMaterialServiceImpl extends ServiceImpl<BackupMaterialMapper,
return ResultBean.ok();
}
@Override
public ResultBean uploadToMaterial(MultipartFile backupFile, MaterialUploadVo materialUploadVo) {
//校验backupFile后缀名
String realName = backupFile.getOriginalFilename();
String suffix = realName.substring(realName.lastIndexOf(".") + 1);
if (!suffix.equalsIgnoreCase("mp4")) {
throw new ServiceException("仅支持上传mp4格式的垫片文件!");
}
//文件上传
String fileId = UUIDUtil.randomUUID();
String fileName = materialUploadVo.getBackupName() + "." + materialUploadVo.getFileType();
///home/wondertek/material_file_assets/dianpian/2025/07/24/uuid/
String filedir = FileUtils.generateDianPianDir(fileId, realPath);
String destFilePath = filedir + fileName;//文件上传目录,绝对路径
try {
fileService.upload(backupFile, destFilePath);
} catch (Exception e) {
return ResultBean.error("上传文件异常");
}
//保存垫片素材表
BackupMaterial backupMaterial = new BackupMaterial();
backupMaterial.setFileId(fileId);
backupMaterial.setBackupName(materialUploadVo.getBackupName());
String relativePath = destFilePath.replace(realPath, "");
backupMaterial.setFilePath(relativePath);
backupMaterial.setFileType(materialUploadVo.getFileType());
backupMaterial.setCreatedTime(LocalDateTime.now());
backupMaterial.setCreatedBy("admin");
backupMaterialMapper.insert(backupMaterial);
return ResultBean.ok("新增素材成功");
}
@Override
public ResultBean batchDelete(Long[] ids) {
LambdaQueryWrapper<BackupMaterial> wrapper = new LambdaQueryWrapper<>();
wrapper.in(BackupMaterial::getId,ids);
int i = backupMaterialMapper.delete(wrapper);
log.info("删除素材库记录条数:{}", i);
return i > 0 ? ResultBean.ok() : ResultBean.error();
}
}
... ...