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.execption.BusinessException; import com.sandu.common.object.BaseConditionVO; import com.sandu.common.util.ResponseUtil; import com.sandu.ximon.admin.param.IpVolumeFileParam; import com.sandu.ximon.admin.security.PermissionConfig; import com.sandu.ximon.admin.service.BroadcastV2TaskFileService; import com.sandu.ximon.admin.service.IpVolumeFileService; import com.sandu.ximon.dao.domain.BroadcastV2TaskFile; import com.sandu.ximon.dao.domain.IpVolumeFile; import com.sandu.ximon.dao.enums.MenuEnum; import lombok.AllArgsConstructor; 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 PermissionConfig permissionConfig; @PostMapping("/add") public ResponseVO addFile(@RequestBody @Validated IpVolumeFileParam fileParam) { if (!permissionConfig.check(MenuEnum.IP_BROADCAST_FILE_ADD.getCode())) { return ResponseUtil.fail("缺少对应用户权限"); } return ResponseUtil.success(ipVolumeFileService.addFile(fileParam)); } @PostMapping("/delete/{fileId}") public ResponseVO deleteFile(@PathVariable Long fileId) { if (!permissionConfig.check(MenuEnum.IP_BROADCAST_FILE_DELETE.getCode())) { return ResponseUtil.fail("缺少对应用户权限"); } 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) { if (!permissionConfig.check(MenuEnum.IP_BROADCAST_FILE_LIST.getCode())) { return ResponseUtil.fail("缺少对应用户权限"); } LambdaQueryWrapper wrapper = ipVolumeFileService.listFile(baseConditionVO, keyword); PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize()); return ResponseUtil.success(ipVolumeFileService.list(wrapper)); } @PostMapping("/IpVolumeFileUploading") public ResponseVO uploadingFile(@RequestParam("file") MultipartFile file) { if (!permissionConfig.check(MenuEnum.IP_BROADCAST_FILE_UPLOADING.getCode())) { return ResponseUtil.fail("缺少对应用户权限"); } return ResponseUtil.success(ipVolumeFileService.upload(file)); } }