wanghongbo

素材库接口

@@ -4,6 +4,7 @@ package com.wondertek.controller; @@ -4,6 +4,7 @@ package com.wondertek.controller;
4 import com.wondertek.dto.BackupChangeDto; 4 import com.wondertek.dto.BackupChangeDto;
5 import com.wondertek.dto.BackupMaterialDto; 5 import com.wondertek.dto.BackupMaterialDto;
6 import com.wondertek.dto.BackupUploadVo; 6 import com.wondertek.dto.BackupUploadVo;
  7 +import com.wondertek.dto.MaterialUploadVo;
7 import com.wondertek.service.BackupMaterialService; 8 import com.wondertek.service.BackupMaterialService;
8 import com.wondertek.util.PageBean; 9 import com.wondertek.util.PageBean;
9 import com.wondertek.util.ResultBean; 10 import com.wondertek.util.ResultBean;
@@ -40,6 +41,32 @@ public class BackupMaterialController { @@ -40,6 +41,32 @@ public class BackupMaterialController {
40 } 41 }
41 42
42 /** 43 /**
  44 + * @description 素材库新增
  45 + * @author W5669
  46 + * @date 2025/7/24
  47 + * @param backupFile
  48 + * @param backupUploadVo
  49 + * @return ResultBean
  50 + */
  51 + @PostMapping("add")
  52 + ResultBean uploadToMaterial(MultipartFile backupFile, MaterialUploadVo materialUploadVo){
  53 + return backupMaterialService.uploadToMaterial(backupFile, materialUploadVo);
  54 + }
  55 +
  56 + /**
  57 + * @description 素材库新增
  58 + * @author W5669
  59 + * @date 2025/8/19
  60 + * @param backupFile
  61 + * @param backupUploadVo
  62 + * @return ResultBean
  63 + */
  64 + @PostMapping("delete")
  65 + ResultBean batchDelete(@RequestParam("ids") Long[] ids){
  66 + return backupMaterialService.batchDelete(ids);
  67 + }
  68 +
  69 + /**
43 * @description 获取审片间垫片列表 70 * @description 获取审片间垫片列表
44 * @author W5669 71 * @author W5669
45 * @date 2025/7/24 72 * @date 2025/7/24
  1 +package com.wondertek.dto;
  2 +
  3 +import lombok.Data;
  4 +
  5 +/**
  6 + * @Description: 垫片上传参数
  7 + * @Author W5669
  8 + * @Create 2025/7/24
  9 + * @Version 1.0
  10 + */
  11 +@Data
  12 +public class MaterialUploadVo {
  13 + //png、jpg、mp4等
  14 + private String fileType;
  15 + //垫片名
  16 + private String backupName;
  17 +
  18 +}
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
4 import com.wondertek.dto.BackupChangeDto; 4 import com.wondertek.dto.BackupChangeDto;
5 import com.wondertek.dto.BackupMaterialDto; 5 import com.wondertek.dto.BackupMaterialDto;
6 import com.wondertek.dto.BackupUploadVo; 6 import com.wondertek.dto.BackupUploadVo;
  7 +import com.wondertek.dto.MaterialUploadVo;
7 import com.wondertek.entity.BackupMaterial; 8 import com.wondertek.entity.BackupMaterial;
8 import com.wondertek.util.PageBean; 9 import com.wondertek.util.PageBean;
9 import com.wondertek.util.ResultBean; 10 import com.wondertek.util.ResultBean;
@@ -18,4 +19,8 @@ public interface BackupMaterialService extends IService<BackupMaterial> { @@ -18,4 +19,8 @@ public interface BackupMaterialService extends IService<BackupMaterial> {
18 ResultBean getByRoom(Long roomId); 19 ResultBean getByRoom(Long roomId);
19 20
20 ResultBean change(BackupChangeDto backupChangeDto); 21 ResultBean change(BackupChangeDto backupChangeDto);
  22 +
  23 + ResultBean uploadToMaterial(MultipartFile backupFile, MaterialUploadVo materialUploadVo);
  24 +
  25 + ResultBean batchDelete(Long[] ids);
21 } 26 }
@@ -14,7 +14,6 @@ import com.wondertek.entity.BackupConfig; @@ -14,7 +14,6 @@ import com.wondertek.entity.BackupConfig;
14 import com.wondertek.entity.BackupMaterial; 14 import com.wondertek.entity.BackupMaterial;
15 import com.wondertek.entity.StreamTask; 15 import com.wondertek.entity.StreamTask;
16 import com.wondertek.enums.PlayTypeEnum; 16 import com.wondertek.enums.PlayTypeEnum;
17 -import com.wondertek.exception.BusinessException;  
18 import com.wondertek.exception.ServiceException; 17 import com.wondertek.exception.ServiceException;
19 import com.wondertek.mapper.BackupConfigMapper; 18 import com.wondertek.mapper.BackupConfigMapper;
20 import com.wondertek.mapper.BackupMaterialMapper; 19 import com.wondertek.mapper.BackupMaterialMapper;
@@ -257,4 +256,47 @@ public class BackupMaterialServiceImpl extends ServiceImpl<BackupMaterialMapper, @@ -257,4 +256,47 @@ public class BackupMaterialServiceImpl extends ServiceImpl<BackupMaterialMapper,
257 return ResultBean.ok(); 256 return ResultBean.ok();
258 } 257 }
259 258
  259 + @Override
  260 + public ResultBean uploadToMaterial(MultipartFile backupFile, MaterialUploadVo materialUploadVo) {
  261 + //校验backupFile后缀名
  262 + String realName = backupFile.getOriginalFilename();
  263 + String suffix = realName.substring(realName.lastIndexOf(".") + 1);
  264 + if (!suffix.equalsIgnoreCase("mp4")) {
  265 + throw new ServiceException("仅支持上传mp4格式的垫片文件!");
  266 + }
  267 +
  268 + //文件上传
  269 + String fileId = UUIDUtil.randomUUID();
  270 + String fileName = materialUploadVo.getBackupName() + "." + materialUploadVo.getFileType();
  271 + ///home/wondertek/material_file_assets/dianpian/2025/07/24/uuid/
  272 + String filedir = FileUtils.generateDianPianDir(fileId, realPath);
  273 + String destFilePath = filedir + fileName;//文件上传目录,绝对路径
  274 + try {
  275 + fileService.upload(backupFile, destFilePath);
  276 + } catch (Exception e) {
  277 + return ResultBean.error("上传文件异常");
  278 + }
  279 + //保存垫片素材表
  280 + BackupMaterial backupMaterial = new BackupMaterial();
  281 + backupMaterial.setFileId(fileId);
  282 + backupMaterial.setBackupName(materialUploadVo.getBackupName());
  283 + String relativePath = destFilePath.replace(realPath, "");
  284 + backupMaterial.setFilePath(relativePath);
  285 + backupMaterial.setFileType(materialUploadVo.getFileType());
  286 + backupMaterial.setCreatedTime(LocalDateTime.now());
  287 + backupMaterial.setCreatedBy("admin");
  288 + backupMaterialMapper.insert(backupMaterial);
  289 +
  290 + return ResultBean.ok("新增素材成功");
  291 + }
  292 +
  293 + @Override
  294 + public ResultBean batchDelete(Long[] ids) {
  295 + LambdaQueryWrapper<BackupMaterial> wrapper = new LambdaQueryWrapper<>();
  296 + wrapper.in(BackupMaterial::getId,ids);
  297 + int i = backupMaterialMapper.delete(wrapper);
  298 + log.info("删除素材库记录条数:{}", i);
  299 + return i > 0 ? ResultBean.ok() : ResultBean.error();
  300 + }
  301 +
260 } 302 }