package com.sandu.ximon.admin.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.github.pagehelper.PageHelper; import com.sandu.common.domain.ResponseVO; import com.sandu.common.enums.FileStorageEnums; import com.sandu.common.execption.BusinessException; import com.sandu.common.file.FileUploadDto; import com.sandu.common.file.impl.LocalFileUploadImpl; import com.sandu.common.object.BaseConditionVO; import com.sandu.common.util.ResponseUtil; import com.sandu.ximon.admin.param.IpVolumeFileParam; import com.sandu.ximon.admin.param.ReceiveParam; import com.sandu.ximon.admin.service.BroadcastV2TaskFileService; import com.sandu.ximon.admin.service.FileOperationRecordService; import com.sandu.ximon.admin.service.IpVolumeFileService; import com.sandu.ximon.dao.domain.BroadcastV2TaskFile; import com.sandu.ximon.dao.domain.FileOperationRecord; import com.sandu.ximon.dao.domain.IpVolumeFile; import com.sandu.ximon.dao.domain.LedSFile; import lombok.AllArgsConstructor; import org.springframework.beans.BeanUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.util.List; /** * @Author liuhaonan * @Date 2021/12/16 10:51 * @Version 1.0 ip音柱相关 */ @RestController @AllArgsConstructor @RequestMapping("/v1/IpVolumeFile") public class IpVolumeFileController { private final IpVolumeFileService ipVolumeFileService; private final BroadcastV2TaskFileService v2TaskFileService; private final FileOperationRecordService fileOperationRecordService; private final LocalFileUploadImpl fileUpload; @PostMapping("/add") public ResponseVO addFile(@RequestBody @Validated IpVolumeFileParam fileParam){ return ResponseUtil.success(ipVolumeFileService.addFile(fileParam)); } @PostMapping("/delete/{fileId}") public ResponseVO deleteFile(@PathVariable Long fileId){ List list = v2TaskFileService.list(Wrappers.lambdaQuery(BroadcastV2TaskFile.class).eq(BroadcastV2TaskFile::getFileId, fileId)); if(list.size()!=0){ throw new BusinessException("此文件正在被其他任务占用"); } return ResponseUtil.success(ipVolumeFileService.deleteFile(fileId)); } @GetMapping("/list") public ResponseVO list(BaseConditionVO baseConditionVO, @RequestParam(value = "keyword", required = false) String keyword){ LambdaQueryWrapper wrapper = ipVolumeFileService.listFile(baseConditionVO, keyword); PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize()); /* if (null != keyword) { wrapper.like(IpVolumeFile::getFileName, keyword); }*/ return ResponseUtil.success(ipVolumeFileService.list(wrapper)); } @PostMapping("/IpVolumeFileUploading") public ResponseVO uploadingFile(@RequestParam("file") MultipartFile file) { FileUploadDto fileUploadDto = fileUpload.uploadFile(file); FileOperationRecord fileOperationRecord = new FileOperationRecord(); // if("mp4".equals(fileUploadDto.getFileType())){ // fileUploadDto.setScreenShot(fileUploadDto.getFileUrl()+"?x-oss-process=video/snapshot,t_10000,m_fast"); // } BeanUtils.copyProperties(fileUploadDto, fileOperationRecord); fileOperationRecord.setDataType(3); fileOperationRecordService.save(fileOperationRecord); return ResponseUtil.success(fileUploadDto); } }