sandu-common/src/main/java/com/sandu/common/file/FileService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,28 @@ package com.sandu.common.file; import cn.hutool.core.collection.CollectionUtil; import org.springframework.web.multipart.MultipartFile; import java.util.List; /** * @author chenjiantian * @date 2020-12-17 * æä»¶ä¸ä¼ æå¡ç±» æå¤ä¸ªå®ç° */ public interface FileService { /** * å°å¾çå¾ç转å为èªå·±çåå¨ä»è´¨ï¼æ¬å°ãOSSãfastDfsï¼ * * @param file 客æ·ç«¯åéçæä»¶ * @return æ°å¾çå°å */ FileStorage uploadFile(MultipartFile file); static List<String> videoSuffixList = CollectionUtil.newArrayList("mp4", "mov", "avi", "mkv", "m4v", "wmv", "asf", "asx", "rm", "rmvb", "3gp", "dat", "flv", "vob"); static List<String> imageSuffixList = CollectionUtil.newArrayList("jpg","jpeg", "png", "gif", "tif", "bmp", "psd"); } sandu-common/src/main/java/com/sandu/common/file/FileStorage.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,78 @@ package com.sandu.common.file; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.sandu.common.object.AbstractDO; import lombok.Data; /** * file_storage * @author */ @Data public class FileStorage extends AbstractDO { @TableId(type = IdType.INPUT) private Long id; /** * çå®åç§° */ private String realName; /** * æä»¶åç§° */ private String filePrefix; /** * åç§°åç¼ */ private String fileSuffix; /** * æä»¶è·¯å¾ */ private String fileUrl; /** * æä»¶ ç±»å */ private String fileType; /** * åå¨ç±»å */ private String storageType; /** * æä»¶å¤§å° */ private Long fileSize; /** * 1ï¼å¾çï¼2ï¼è§é¢ */ private Integer category; /** * å¾çé«åº¦ */ private Integer height; /** * å¾ç宽度 */ private Integer width; /** * è§é¢æ¶é¿ï¼ç§ */ private Integer duration; /** * æä½äºº */ private String operator; } sandu-common/src/main/java/com/sandu/common/file/impl/LocalFileUploadImpl.java
@@ -13,6 +13,7 @@ import com.sandu.common.util.SpringContextHolder; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import javax.imageio.ImageIO; @@ -27,6 +28,7 @@ * @author chenjiantian æ¬å°æå¡å¨ä¸ä¼ */ @Slf4j @Service @AllArgsConstructor public class LocalFileUploadImpl implements IFileUpload { ximon-admin/src/main/java/com/sandu/ximon/admin/config/MinIoConstant.java
ÎļþÒÑɾ³ý ximon-admin/src/main/java/com/sandu/ximon/admin/controller/IpVolumeFileController.java
@@ -4,19 +4,26 @@ 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; @@ -32,6 +39,8 @@ private final IpVolumeFileService ipVolumeFileService; private final BroadcastV2TaskFileService v2TaskFileService; private final FileOperationRecordService fileOperationRecordService; private final LocalFileUploadImpl fileUpload; @PostMapping("/add") public ResponseVO<Object> addFile(@RequestBody @Validated IpVolumeFileParam fileParam){ @@ -56,4 +65,18 @@ }*/ return ResponseUtil.success(ipVolumeFileService.list(wrapper)); } @PostMapping("/IpVolumeFileUploading") public ResponseVO<Object> 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); } } ximon-admin/src/main/java/com/sandu/ximon/admin/controller/IpVolumeMissionController.java
@@ -110,5 +110,10 @@ return ResponseUtil.success(ipVolumeMissionService.playTask(taskId)); } @GetMapping("/stopTask/{taskId}") public ResponseVO<Object> stopTask(@PathVariable Integer taskId) { return ResponseUtil.success(ipVolumeMissionService.stopTask(taskId)); } } ximon-admin/src/main/java/com/sandu/ximon/admin/service/IpVolumeFileService.java
@@ -27,9 +27,13 @@ public boolean addFile(IpVolumeFileParam fileParam) { IpVolumeFile file = new IpVolumeFile(); file.setUserId(SecurityUtils.getClientId()); // if(SecurityUtils.getClientId()!=null){ // file.setUserName(SecurityUtils.getUsername()); // } // if(SecurityUtils.getClientId()!=null){ file.setUserName(SecurityUtils.getUsername()); file.setUserId(SecurityUtils.getClientId()); } if(clientService.getClientId()!=null){ @@ -59,4 +63,24 @@ } } public boolean upload(IpVolumeFileParam fileParam) { IpVolumeFile file = new IpVolumeFile(); // if(SecurityUtils.getClientId()!=null){ // file.setUserName(SecurityUtils.getUsername()); // } // if(SecurityUtils.getClientId()!=null){ file.setUserName(SecurityUtils.getUsername()); file.setUserId(SecurityUtils.getClientId()); } if(clientService.getClientId()!=null){ file.setClientId(clientService.getClientId()); } file.setFileName(fileParam.getFileName()); file.setFileUrl(fileParam.getFileUrl()); file.setOriginSize(fileParam.getOriginSize()); return save(file); } } ximon-admin/src/main/java/com/sandu/ximon/admin/service/IpVolumeMissionService.java
@@ -1,12 +1,12 @@ package com.sandu.ximon.admin.service; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.github.pagehelper.PageHelper; import com.sandu.common.execption.BusinessException; import com.sandu.common.object.BaseConditionVO; import com.sandu.common.service.impl.BaseServiceImpl; import com.sandu.ximon.admin.config.MinIoConstant; import com.sandu.ximon.admin.param.IpVolumeMissionParam; import com.sandu.ximon.admin.security.SecurityUtils; import com.sandu.ximon.admin.utils.TaskAPIUtils; @@ -84,7 +84,7 @@ // å°è£ ææ¾æä»¶å表 List<TaskMediaFileVO> taskMediaFileVOS = new ArrayList<>(); List<BroadcastV2TaskFile> taskFileEntityList = new ArrayList<>(); int i = 1; int i = 6666; for (Integer fileId : new HashSet<>(missionparam.getFileIds())) { TaskMediaFileVO taskMediaFileVO = new TaskMediaFileVO(); BroadcastV2TaskFile taskFileEntity = new BroadcastV2TaskFile(); @@ -214,15 +214,15 @@ taskFileEntity.setFileId(fileId); IpVolumeFile fileEntity = ipVolumeFileService.getById(fileId); String absolutePath = MinIoConstant.getAbsolutePath( MinIoConstant.BROADCAST_FILE.getBucketName() + fileEntity.getUserId(), fileEntity.getFileName() ); // String absolutePath = MinIoConstant.getAbsolutePath( // MinIoConstant.BROADCAST_FILE.getBucketName() + fileEntity.getUserId(), // fileEntity.getFileName() // ); taskMediaFileVO.setI(i); i++; taskMediaFileVO.setT(0); taskMediaFileVO.setN(absolutePath); taskMediaFileVO.setN(fileEntity.getFileUrl()); taskMediaFileVO.setS(BigInteger.valueOf(fileEntity.getOriginSize())); taskMediaFileVOS.add(taskMediaFileVO); @@ -381,8 +381,6 @@ } task.setWeeks("0" + Integer.toBinaryString(byId.getWeek())); // byId.setWeeks("0" + Integer.toBinaryString(byId.getWeek())); task.setBdate(byId.getOnDate()); task.setEdate(byId.getOffDate()); List<BroadcastV2TaskFile> taskFiles = broadcastV2TaskFileService.list(Wrappers.lambdaQuery(BroadcastV2TaskFile.class) .eq(BroadcastV2TaskFile::getTaskId, taskId)); @@ -415,6 +413,12 @@ ); } // Map map=new HashMap(); // map.put("æ¬å°",byId); // map.put("æå¡å¨",task); System.out.println(JSON.toJSONString(task)); System.out.println(task); return task; @@ -425,4 +429,7 @@ } public boolean stopTask(Integer taskId) { return TaskAPIUtils.stopTask(taskId); } } ximon-admin/src/main/java/com/sandu/ximon/admin/utils/BroadcastPostUtils.java
@@ -42,6 +42,14 @@ return result; } /** * m 1 1 1 * f 1 1 1 * y 1 * @param in * @param encoding * @return */ public static String streamToString(InputStream in, String encoding) { // å°æµè½¬æ¢ä¸ºå符串 ximon-admin/src/main/java/com/sandu/ximon/admin/utils/TaskAPIUtils.java
@@ -199,6 +199,11 @@ return false; } /** * æå * @param taskId * @return */ public static boolean pauseTask(Integer taskId) { LoginResponseVO responseVO1 = JSON.parseObject( BroadcastPostUtils.Post( @@ -225,6 +230,11 @@ return false; } /** * ç»§ç» * @param taskId * @return */ public static boolean continueTask(Integer taskId) { LoginResponseVO responseVO1 = JSON.parseObject( BroadcastPostUtils.Post( @@ -306,8 +316,11 @@ }else { task.setName(param.getMissionName()); task.setVol(param.getMissionVolume()); task.setBdate(param.getOnDate()); task.setEdate(param.getOffDate()); task.setTerminals(param.getTerminals()); task.setFiles(param.getFiles()); task.setExec(param.getExec()); LoginResponseVO responseVO1 = JSON.parseObject( BroadcastPostUtils.Post( ximon-admin/src/main/java/com/sandu/ximon/admin/vo/TaskVO.java
@@ -37,7 +37,7 @@ taskVO.setRule(1); // 任塿§è¡è§åï¼æ¯å¤©ä¸º 0ï¼æ¯å¨ä¸º 1ï¼æå¨ä¸º 2) taskVO.setBdate(param.getOnDate()); // ä»»å¡å¼å§æ¥æï¼ä¸è¬ä¸ºä»»å¡åå»ºæ¥æ taskVO.setEdate(param.getOffDate()); // ä»»å¡ç»ææ¥æï¼ä¸ç´ææä¸º-1 taskVO.setWeek(0); // æ¯å¨æ§è¡è§åï¼rule 为 1 æ¶ï¼ææ taskVO.setWeek(1); // æ¯å¨æ§è¡è§åï¼rule 为 1 æ¶ï¼ææ taskVO.setType(BroadcastTaskType.TIMED_TASK.getType()); //ä»»å¡ç±»åï¼å®æ¶ä»»å¡ä¸º 1ï¼ééä»»å¡ä¸º 2ï¼å®æ¶é³ é¢ä»»å¡ä¸º 26ï¼å®æ¶åè¯ä»»å¡ä¸º 27 taskVO.setSchemeID(1); // 任塿¹æ¡ ID taskVO.setEi(0); // @@ -115,10 +115,8 @@ // 任塿§è¡æ¶é´å表 private TaskRunTimeVO[] exec; // é³é¢æä»¶å表 @JsonIgnore private TaskMediaFileVO[] files; // ææ¾ç»ç«¯ ID å表 @JsonIgnore private TaskTerminalVO[] terminals; @JsonIgnore private String userName; ximon-admin/src/main/resources/application-test.yml
@@ -37,7 +37,7 @@ enable: true listenter: isOpen: true isOpen: false