瀏覽代碼

视频监控 增加视频转flv

dengsixing 1 年之前
父節點
當前提交
d40ed435a3

+ 4 - 4
src/main/java/com/fdkankan/scene/controller/SceneEditController.java

@@ -219,13 +219,13 @@ public class SceneEditController extends BaseController {
     /**
      * <p>
      保存关联全景图
-     * </p>      
+     * </p>
      * @author dengsixing
-     * @date 2022/8/1 
+     * @date 2022/8/1
      * @param num
      * @param sid
      * @param fileName
-     * @param file 
+     * @param file
      * @return com.fdkankan.web.response.ResultData
      **/
     @CheckPermit
@@ -748,7 +748,7 @@ public class SceneEditController extends BaseController {
      **/
     @CheckPermit
     @PostMapping("/surveillance/save")
-    ResultData saveSurveillance(@RequestBody @Validated SurveillanceParamVO param){
+    ResultData saveSurveillance(@RequestBody @Validated SurveillanceParamVO param) throws Exception {
         return surveillanceService.saveSurveillance(param);
     }
 

+ 9 - 0
src/main/java/com/fdkankan/scene/service/ICommonService.java

@@ -0,0 +1,9 @@
+package com.fdkankan.scene.service;
+
+public interface ICommonService {
+
+    void transferToFlv(String num, String fileName, String bucket) throws Exception;
+
+
+
+}

+ 2 - 2
src/main/java/com/fdkankan/scene/service/ISurveillanceService.java

@@ -15,12 +15,12 @@ import java.util.List;
  * 监控推拉流信息 服务类
  * </p>
  *
- * @author 
+ * @author
  * @since 2022-09-16
  */
 public interface ISurveillanceService extends IService<Surveillance> {
 
-    ResultData saveSurveillance(SurveillanceParamVO param);
+    ResultData saveSurveillance(SurveillanceParamVO param) throws Exception;
 
     ResultData deleteSurveillance(BaseSidParamVO param) throws IOException;
 

+ 47 - 0
src/main/java/com/fdkankan/scene/service/impl/CommonServiceImpl.java

@@ -0,0 +1,47 @@
+package com.fdkankan.scene.service.impl;
+
+import com.fdkankan.common.util.FileUtils;
+import com.fdkankan.fyun.face.FYunFileServiceInterface;
+import com.fdkankan.model.constants.ConstantFilePath;
+import com.fdkankan.model.constants.UploadFilePath;
+import com.fdkankan.model.utils.CreateObjUtil;
+import com.fdkankan.scene.service.ICommonService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.io.File;
+
+@Service
+public class CommonServiceImpl implements ICommonService {
+
+    @Resource
+    private FYunFileServiceInterface fYunFileService;
+
+    @Override
+    public void transferToFlv(String num, String fileName, String bucket) throws Exception {
+        String userEditPath = String.format(UploadFilePath.USER_EDIT_PATH, num);
+        String localImagesPath = String.format(ConstantFilePath.SCENE_USER_PATH_V4, num);
+        String localFilePath = localImagesPath + fileName;
+
+        File targetFile = new File(localImagesPath);
+        if (!targetFile.exists()){
+            targetFile.mkdirs();
+        }
+
+        targetFile = new File(localFilePath);
+        if (targetFile.exists()){
+            FileUtils.deleteFile(localFilePath);
+        }
+
+        //从用户编辑目录中下载视频到本地
+        String filePath = userEditPath + fileName;
+        fYunFileService.downloadFile(bucket, filePath, localImagesPath + fileName);
+
+        //视频格式转换
+        CreateObjUtil.mp4ToFlv(localFilePath, localFilePath.replace("mp4", "flv"));
+
+        //上传
+        String flvFileName = fileName.replace("mp4", "flv");
+        fYunFileService.uploadFile(bucket, localFilePath.replace("mp4", "flv"), userEditPath+flvFileName);
+    }
+}

+ 21 - 94
src/main/java/com/fdkankan/scene/service/impl/SceneEditInfoServiceImpl.java

@@ -1,13 +1,9 @@
 package com.fdkankan.scene.service.impl;
-import cn.hutool.core.util.CharsetUtil;
-import com.fdkankan.common.constant.*;
-import com.fdkankan.common.util.FileSizeUtil;
-import com.fdkankan.scene.service.*;
-import com.fdkankan.scene.vo.SaveFiltersParamVO;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.io.FileUtil;
+import cn.hutool.core.util.CharsetUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.util.ZipUtil;
 import com.alibaba.fastjson.JSON;
@@ -17,8 +13,10 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.common.constant.*;
 import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.util.FileMd5Util;
+import com.fdkankan.common.util.FileSizeUtil;
 import com.fdkankan.common.util.FileUtils;
 import com.fdkankan.fyun.face.FYunFileServiceInterface;
 import com.fdkankan.model.constants.ConstantFilePath;
@@ -31,69 +29,14 @@ import com.fdkankan.redis.constant.RedisKey;
 import com.fdkankan.redis.constant.RedisLockKey;
 import com.fdkankan.redis.util.RedisLockUtil;
 import com.fdkankan.redis.util.RedisUtil;
-import com.fdkankan.scene.bean.BoxPhotoBean;
-import com.fdkankan.scene.bean.PointBean;
-import com.fdkankan.scene.bean.SceneJsonBean;
-import com.fdkankan.scene.bean.SegmentBean;
-import com.fdkankan.scene.bean.StyleBean;
-import com.fdkankan.scene.bean.TagBean;
-import com.fdkankan.scene.bean.VertexBean;
-import com.fdkankan.scene.bean.WallBean;
-import com.fdkankan.scene.entity.CameraDetail;
-import com.fdkankan.scene.entity.Company;
-import com.fdkankan.scene.entity.SceneAsynOperLog;
-import com.fdkankan.scene.entity.SceneDataDownload;
-import com.fdkankan.scene.entity.SceneEditControls;
-import com.fdkankan.scene.entity.SceneEditInfo;
-import com.fdkankan.scene.entity.SceneEditInfoExt;
-import com.fdkankan.scene.entity.ScenePlus;
-import com.fdkankan.scene.entity.ScenePlusExt;
+import com.fdkankan.scene.bean.*;
+import com.fdkankan.scene.entity.*;
 import com.fdkankan.scene.mapper.ISceneEditInfoMapper;
-import com.fdkankan.scene.vo.BallScreenVideoParamVO;
-import com.fdkankan.scene.vo.BaseDataParamVO;
-import com.fdkankan.scene.vo.BaseFileParamVO;
-import com.fdkankan.scene.vo.BaseSceneParamVO;
-import com.fdkankan.scene.vo.DeleteFileParamVO;
-import com.fdkankan.scene.vo.DeleteLinkPanParamVO;
-import com.fdkankan.scene.vo.DeleteStylesParamVO;
-import com.fdkankan.scene.vo.DeleteMosaicParamVO;
-import com.fdkankan.scene.vo.DeleteSidParamVO;
-import com.fdkankan.scene.vo.DownloadVO;
-import com.fdkankan.scene.vo.FileNameAndDataParamVO;
-import com.fdkankan.scene.vo.FileParamVO;
-import com.fdkankan.scene.vo.RenameCadParamVO;
-import com.fdkankan.scene.vo.SaveLinkPanParamVO;
-import com.fdkankan.scene.vo.SceneCheckKeyParamVO;
-import com.fdkankan.scene.vo.SceneEditControlsVO;
-import com.fdkankan.scene.vo.SceneEditInfoParamVO;
-import com.fdkankan.scene.vo.SceneEditInfoVO;
-import com.fdkankan.scene.vo.SceneInfoParamVO;
-import com.fdkankan.scene.vo.SceneInfoVO;
-import com.fdkankan.scene.vo.SurveillanceVO;
-import com.fdkankan.scene.vo.UploadPanoramaVO;
+import com.fdkankan.scene.service.*;
+import com.fdkankan.scene.vo.*;
 import com.fdkankan.web.response.ResultData;
 import com.google.common.collect.Lists;
 import com.google.errorprone.annotations.Var;
-import java.io.File;
-import java.io.IOException;
-import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Calendar;
-import java.util.Collection;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Objects;
-import java.util.Set;
-import java.util.UUID;
-import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.stream.Collectors;
-import javax.annotation.Resource;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -102,12 +45,22 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
 
+import javax.annotation.Resource;
+import java.io.File;
+import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+import java.util.*;
+import java.util.Map.Entry;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.stream.Collectors;
+
 /**
  * <p>
  *  服务实现类
  * </p>
  *
- * @author 
+ * @author
  * @since 2022-01-18
  */
 @Slf4j
@@ -154,6 +107,8 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
     private ISceneAsynOperLogService sceneAsynOperLogService;
     @Autowired
     private ICutModelService cutModelService;
+    @Autowired
+    private ICommonService commonService;
 
     @Transactional
     @Override
@@ -1483,7 +1438,7 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         SceneEditInfo sceneEditInfo = this.getByScenePlusId(scenePlus.getId());
 
         //转换视频格式
-        this.transferToFlv(param.getNum(), param.getFileName(), bucket);
+        commonService.transferToFlv(param.getNum(), param.getFileName(), bucket);
 
         //生成boxVideos数据
         String boxVideos = this.createBoxVideos(param.getNum(), sid, boxVideo, sceneEditInfo, OperationType.ADDORUPDATE.code());
@@ -2703,34 +2658,6 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         return result;
     }
 
-    private void transferToFlv(String num, String fileName, String bucket) throws Exception {
-
-        String userEditPath = String.format(UploadFilePath.USER_EDIT_PATH, num);
-        String localImagesPath = String.format(ConstantFilePath.SCENE_USER_PATH_V4, num);
-        String localFilePath = localImagesPath + fileName;
-
-        File targetFile = new File(localImagesPath);
-        if (!targetFile.exists()){
-            targetFile.mkdirs();
-        }
-
-        targetFile = new File(localFilePath);
-        if (targetFile.exists()){
-            FileUtils.deleteFile(localFilePath);
-        }
-
-        //从用户编辑目录中下载视频到本地
-        String filePath = userEditPath + fileName;
-        fYunFileService.downloadFile(bucket, filePath, localImagesPath + fileName);
-
-        //视频格式转换
-        CreateObjUtil.mp4ToFlv(localFilePath, localFilePath.replace("mp4", "flv"));
-
-        //上传
-        String flvFileName = fileName.replace("mp4", "flv");
-        fYunFileService.uploadFile(bucket, localFilePath.replace("mp4", "flv"), userEditPath+flvFileName);
-    }
-
     @Override
     public ResultData deleteMosaics(DeleteMosaicParamVO param) throws Exception {
 

+ 12 - 5
src/main/java/com/fdkankan/scene/service/impl/SurveillanceServiceImpl.java

@@ -26,12 +26,14 @@ import java.util.stream.Collectors;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
+
 /**
  * <p>
  * 监控推拉流信息 服务实现类
  * </p>
  *
- * @author 
+ * @author
  * @since 2022-09-16
  */
 @Service
@@ -43,13 +45,15 @@ public class SurveillanceServiceImpl extends ServiceImpl<ISurveillanceMapper, Su
     private ISceneEditInfoExtService sceneEditInfoExtService;
     @Autowired
     private ISceneEditInfoService sceneEditInfoService;
-    @Autowired
+    @Resource
     private FYunFileServiceInterface yunFileService;
     @Autowired
     private IScenePlusExtService scenePlusExtService;
+    @Autowired
+    private ICommonService commonService;
 
     @Override
-    public ResultData saveSurveillance(SurveillanceParamVO param) {
+    public ResultData saveSurveillance(SurveillanceParamVO param) throws Exception {
 
         if(param.getUrlType() == 1){
             if(StrUtil.isEmpty(param.getPlayUrl())){
@@ -65,6 +69,11 @@ public class SurveillanceServiceImpl extends ServiceImpl<ISurveillanceMapper, Su
         if(Objects.isNull(scenePlus)){
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
         }
+        ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
+
+        //转换视频格式
+        commonService.transferToFlv(param.getNum(), param.getFileName(), scenePlusExt.getYunFileBucket());
+
         SceneEditInfo sceneEditInfo = sceneEditInfoService.getByScenePlusId(scenePlus.getId());
         SceneEditInfoExt sceneEditInfoExt = sceneEditInfoExtService.getByScenePlusId(scenePlus.getId());
 
@@ -85,10 +94,8 @@ public class SurveillanceServiceImpl extends ServiceImpl<ISurveillanceMapper, Su
 
         sceneEditInfoExt.setSurveillances(CommonStatus.YES.code().intValue());
         sceneEditInfoExtService.updateById(sceneEditInfoExt);
-
         sceneEditInfoService.upgradeVersionById(sceneEditInfo.getId());
 
-
         return ResultData.ok();
     }