浏览代码

删除空间视频\删除空间贴图接口 增加删除资源文件逻辑

dengsixing 3 年之前
父节点
当前提交
08f4baf967

+ 2 - 2
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/ISceneEditInfoService.java

@@ -47,9 +47,9 @@ public interface ISceneEditInfoService extends IService<SceneEditInfo> {
 
     ResultData deleteVideoBox(DeleteSidParamVO param) throws Exception;
 
-    ResultData saveBoxPhoto(BaseDataParamVO param);
+    ResultData saveBoxPhoto(BaseDataParamVO param) throws Exception;
 
-    ResultData deleteBoxPhoto(DeleteSidParamVO param);
+    ResultData deleteBoxPhoto(DeleteSidParamVO param) throws Exception;
 
     DownloadVO downloadBallScreenVideo(BallScreenVideoParamVO param);
 

+ 49 - 10
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneEditInfoServiceImpl.java

@@ -56,16 +56,20 @@ import com.fdkankan.scene.service.IScenePlusExtService;
 import com.fdkankan.scene.service.IScenePlusService;
 import com.fdkankan.scene.service.ISceneProExtService;
 import com.fdkankan.scene.service.ISceneProService;
+import com.fdkankan.scene.service.ISceneUploadService;
 import com.fdkankan.scene.vo.*;
 import com.google.common.collect.Lists;
 import com.google.errorprone.annotations.Var;
 import java.io.File;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Date;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.Set;
 import java.util.UUID;
 import java.util.stream.Collectors;
 import lombok.extern.slf4j.Slf4j;
@@ -136,6 +140,8 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
     IScenePlusExtService scenePlusExtService;
     @Autowired
     private FdkankanMiniClient fdkankanMiniClient;
+    @Autowired
+    private ISceneUploadService sceneUploadService;
 
     @Transactional
     @Override
@@ -1028,7 +1034,7 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         this.transferToFlv(param.getNum(), param.getFileName());
 
         //生成boxVideos数据
-        String boxVideos = this.createBoxVideos(sid, boxVideo, sceneEditInfo, OperationType.ADDORUPDATE.code());
+        String boxVideos = this.createBoxVideos(param.getNum(), sid, boxVideo, sceneEditInfo, OperationType.ADDORUPDATE.code());
 
         //更新数据库
         this.updateBoxVideos(sceneEditInfo, scenePlus.getId(), boxVideos);
@@ -1047,7 +1053,7 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         SceneEditInfo sceneEditInfo = this.getByScenePlusId(scenePlus.getId());
 
         //根据sid移除json
-        String boxVideos = this.createBoxVideos(param.getSid(), null, sceneEditInfo, OperationType.DELETE.code());
+        String boxVideos = this.createBoxVideos(param.getNum(), param.getSid(), null, sceneEditInfo, OperationType.DELETE.code());
 
         //写数据库
         this.updateBoxVideos(sceneEditInfo,scenePlus.getId(),boxVideos);
@@ -1056,7 +1062,7 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
     }
 
     @Override
-    public ResultData saveBoxPhoto(BaseDataParamVO param){
+    public ResultData saveBoxPhoto(BaseDataParamVO param) throws Exception {
 
         JSONObject boxPhoto = JSONObject.parseObject(param.getData());
         String sid = boxPhoto.getString("sid");
@@ -1070,7 +1076,7 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         SceneEditInfo sceneEditInfo = this.getByScenePlusId(scenePlus.getId());
 
         //生成boxVideos数据
-        String boxPhotos = this.createBoxPhotos(sid, boxPhoto, sceneEditInfo, OperationType.ADDORUPDATE.code());
+        String boxPhotos = this.createBoxPhotos(param.getNum(), sid, boxPhoto, sceneEditInfo, OperationType.ADDORUPDATE.code());
 
         //更新数据库
         this.updateBoxPhotos(sceneEditInfo, boxPhotos);
@@ -1079,7 +1085,7 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
     }
 
     @Override
-    public ResultData deleteBoxPhoto(DeleteSidParamVO param){
+    public ResultData deleteBoxPhoto(DeleteSidParamVO param) throws Exception {
 
         ScenePlus scenePlus = scenePlusService.getScenePlusByNum(param.getNum());
         if(Objects.isNull(scenePlus))
@@ -1088,7 +1094,7 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         SceneEditInfo sceneEditInfo = this.getByScenePlusId(scenePlus.getId());
 
         //根据sid移除json
-        String boxPhotos = this.createBoxPhotos(param.getSid(), null, sceneEditInfo, OperationType.DELETE.code());
+        String boxPhotos = this.createBoxPhotos(param.getNum(), param.getSid(), null, sceneEditInfo, OperationType.DELETE.code());
 
         //写数据库
         this.updateBoxPhotos(sceneEditInfo, boxPhotos);
@@ -1407,7 +1413,9 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
             .eq(SceneEditInfo::getId, sceneEditInfo.getId()));
     }
 
-    private String createBoxVideos(String sid, JSONObject boxVideo, SceneEditInfo sceneEditInfo, int type){
+    private String createBoxVideos(
+        String num, String sid, JSONObject boxVideo,
+        SceneEditInfo sceneEditInfo, int type) throws Exception{
 
         String boxVideos = null;
         if(sceneEditInfo != null){
@@ -1423,15 +1431,32 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         String result = null;
         //删除
         if(type == OperationType.DELETE.code()){
+            Set<String> deleteFile = new HashSet<>();
             if(boxVideosJson.size() == 0)
                 return null;
             for(int i=0;i<boxVideosJson.size();++i){
                 JSONObject ele = boxVideosJson.getJSONObject(i);
                 if(ele.getString("sid").equals(sid)){
+
+                    String poster = ele.getString("poster");
+                    if(StrUtil.isNotEmpty(poster))
+                        deleteFile.add(poster);
+                    String url = ele.getString("url");
+                    if(StrUtil.isNotEmpty(url)){
+                        deleteFile.add(url);
+                        deleteFile.add(url.replace(".mp4",".flv"));
+                    }
+
                     boxVideosJson.remove(i);
                 }
             }
 
+            //删除资源文件
+            if(CollUtil.isNotEmpty(deleteFile))
+                sceneUploadService.delete(
+                    DeleteFileParamVO.builder().num(num)
+                        .bizType(FileBizType.BOX_VIDEO.code())
+                        .fileNames(new ArrayList<>(deleteFile)).build());
         }else{
 
             // TODO: 2022/3/1 目前需求只保留一个,所以这里先注释掉,sid不同时,不追加
@@ -1460,7 +1485,7 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         return result;
     }
 
-    private String createBoxPhotos(String sid, JSONObject boxPhoto, SceneEditInfo sceneEditInfo, int type){
+    private String createBoxPhotos(String num, String sid, JSONObject boxPhoto, SceneEditInfo sceneEditInfo, int type) throws Exception{
 
         String boxPhotos = null;
         if(sceneEditInfo != null){
@@ -1476,15 +1501,29 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         String result = null;
         //删除
         if(type == OperationType.DELETE.code()){
+            Set<String> deleteFile = new HashSet<>();
             if(boxPhotosJson.size() == 0)
                 return null;
             for(int i=0;i<boxPhotosJson.size();++i){
                 JSONObject ele = boxPhotosJson.getJSONObject(i);
                 if(ele.getString("sid").equals(sid)){
+
+                    String poster = ele.getString("poster");
+                    if(StrUtil.isNotEmpty(poster))
+                        deleteFile.add(poster);
+                    String url = ele.getString("url");
+                    if(StrUtil.isNotEmpty(url))
+                        deleteFile.add(url);
+
                     boxPhotosJson.remove(i);
                 }
             }
-
+            //删除资源文件
+            if(CollUtil.isNotEmpty(deleteFile))
+                sceneUploadService.delete(
+                    DeleteFileParamVO.builder().num(num)
+                        .bizType(FileBizType.BOX_VIDEO.code())
+                        .fileNames(new ArrayList<>(deleteFile)).build());
         }else{
             //更新
             boolean exist = false;
@@ -1536,7 +1575,7 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
 
         //上传
         String flvFileName = fileName.replace("mp4", "flv");
-        uploadToOssUtil.upload(localFilePath, userEditPath + fileName);
+//        uploadToOssUtil.upload(localFilePath, userEditPath + fileName);
         uploadToOssUtil.upload(localFilePath.replace("mp4", "flv"), userEditPath+flvFileName);
     }