Procházet zdrojové kódy

迁移上传视频接口和删除接口

zhujinghui před 4 roky
rodič
revize
24784b9e1e

+ 1 - 1
4dkankan-scene/src/main/java/com/fdkankan/scene/service/ISceneProService.java

@@ -120,5 +120,5 @@ public interface ISceneProService extends IBaseService<SceneProEntity, String> {
     Result uploadROIVideo(String sceneNum, String fileName, MultipartFile file, String planId, String rect,
                           String videoDirMatrix, String dir, String hfov, String vfov) throws Exception;
 
-
+    Result deleteROIVideo(String sceneNum, String fileName, String planId) throws Exception;
 }

+ 61 - 0
4dkankan-scene/src/main/java/com/fdkankan/scene/service/impl/SceneProServiceImpl.java

@@ -3811,4 +3811,65 @@ public class SceneProServiceImpl extends BaseServiceImpl<SceneProEntity, String>
         return Result.success();
     }
 
+    @Override
+    public Result deleteROIVideo(String sceneNum, String fileName, String planId) throws Exception {
+        if(StringUtils.isEmpty(sceneNum) || StringUtils.isEmpty(fileName) || StringUtils.isEmpty(planId)){
+            throw new BaseRuntimeException(LoginConstant.FAILURE_CODE_3001, LoginConstant.FAILURE_MSG_3001);
+        }
+
+        SceneProEntity sceneProEntity = sceneProMapper.findByNum(sceneNum);
+        if(sceneProEntity == null){
+            throw new BaseRuntimeException(SceneConstant.FAILURE_CODE_5005, SceneConstant.FAILURE_MSG_5005);
+        }
+
+        StringBuffer dataBuf = new StringBuffer()
+                .append("data").append(File.separator)
+                .append("data").append(sceneProEntity.getNum())
+                .append(File.separator);
+
+        StringBuffer dataBuffer = new StringBuffer(ConstantFilePath.SCENE_PATH).append(dataBuf.toString());
+
+        String strsceneInfos = FileUtils.readFile(dataBuffer.toString() + "scene.json");
+        JSONObject scenejson = new JSONObject();
+        if(strsceneInfos!=null) {
+            scenejson = JSONObject.parseObject(strsceneInfos);
+        }
+
+        JSONArray newArray = new JSONArray();
+        JSONArray jsonArray = new JSONArray();
+        JSONObject jsonObject = new JSONObject();
+
+        if(scenejson.containsKey("videosUser")){
+            jsonArray = JSON.parseArray(scenejson.getString("videosUser"));
+            for(int i = 0, len = jsonArray.size(); i < len; i++){
+                jsonObject = jsonArray.getJSONObject(i);
+                if(planId.equals(jsonObject.getString("panoId"))){
+                    continue;
+                }
+                if(!newArray.contains(jsonObject)){
+                    newArray.add(jsonObject);
+                }
+            }
+        }
+
+        scenejson.put("videosUser", newArray.toJSONString());
+        scenejson.put("imagesVersion", scenejson.getIntValue("imagesVersion") + 1);
+
+        FileUtils.writeFile(dataBuffer.toString() + "scene.json", scenejson.toString());
+
+        SceneProEditEntity sceneProEditEntity = sceneProEditMapper.findByProId(sceneProEntity.getId());
+        if(sceneProEditEntity != null){
+            sceneProEditEntity.setImagesVersion(sceneProEditEntity.getImagesVersion() + 1);
+            sceneProEditMapper.updateByPrimaryKey(sceneProEditEntity);
+        }
+
+        uploadToOssUtil.delete("video/video"+ sceneProEntity.getNum() + File.separator +
+                fileName.substring(0, fileName.lastIndexOf(".")) + ".mp4");
+        uploadToOssUtil.delete("video/video"+ sceneProEntity.getNum() + File.separator +
+                fileName.substring(0, fileName.lastIndexOf(".")) + ".flv");
+
+        FileUtils.deleteFile(ConstantFilePath.SCENE_PATH + "video/video"+ sceneProEntity.getNum() + File.separator + fileName);
+        return Result.success();
+    }
+
 }

+ 16 - 0
4dkankan-web/src/main/java/com/fdkankan/web/controller/SceneEditController.java

@@ -1120,4 +1120,20 @@ public class SceneEditController extends BaseController {
         return sceneProService.uploadROIVideo(sceneNum, fileName, file, planId, rect, videoDirMatrix, dir, hfov, vfov);
     }
 
+    /**
+     * 删除绿幕抠图视频
+     */
+    @ApiOperation("删除绿幕抠图视频")
+    @CheckCurrentUser(description = "删除绿幕抠图视频")
+    @RequestMapping(value = "/deleteROIVideo", method = RequestMethod.POST)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "sceneNum", value = "场景编码", dataType = "String"),
+            @ApiImplicitParam(name = "planId", value = "页面显示的下标", dataType = "String"),
+            @ApiImplicitParam(name = "fileName", value = "文件全名", dataType = "String")})
+    public Result deleteROIVideo(HttpServletRequest request) throws Exception{
+        String sceneNum = request.getParameter("sceneNum");
+        String fileName = request.getParameter("fileName");
+        String planId = request.getParameter("planId");
+        return sceneProService.deleteROIVideo(sceneNum, fileName, planId);
+    }
 }