Selaa lähdekoodia

删除模型裁剪 时清除oss文件

dsx 1 vuosi sitten
vanhempi
commit
8e0b18084f

+ 30 - 6
src/main/java/com/fdkankan/scene/service/impl/CutModelServiceImpl.java

@@ -9,6 +9,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.fdkankan.common.constant.CommonStatus;
 import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.constant.FileBizType;
 import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.util.FileUtils;
 import com.fdkankan.fyun.face.FYunFileServiceInterface;
@@ -25,6 +26,7 @@ import com.fdkankan.scene.entity.ScenePlusExt;
 import com.fdkankan.scene.service.*;
 import com.fdkankan.scene.vo.BaseJsonArrayParamVO;
 import com.fdkankan.scene.vo.BaseSceneParamVO;
+import com.fdkankan.scene.vo.DeleteFileParamVO;
 import com.fdkankan.scene.vo.DeleteSidListParamVO;
 import com.fdkankan.web.response.ResultData;
 import com.google.j2objc.annotations.AutoreleasePool;
@@ -54,6 +56,8 @@ public class CutModelServiceImpl implements ICutModelService {
     private RedisLockUtil redisLockUtil;
     @Autowired
     private FYunFileServiceInterface fYunFileService;
+    @Autowired
+    private ISceneUploadService sceneUploadService;
 
 
     @Override
@@ -111,11 +115,30 @@ public class CutModelServiceImpl implements ICutModelService {
         this.syncFileToRedis(param.getNum());
 
         //处理删除状态数据
-        this.deleteCutModel(param.getNum(), deleteSidList, bucket);
+        List<String> deleteList = this.deleteCutModel(param.getNum(), deleteSidList, bucket);
 
         //写入本地文件,作为备份
         this.writeFile(param.getNum());
 
+        //删除oss文件
+        List<String> deleteFileList = new ArrayList<>();
+        deleteList.stream().forEach(str -> {
+            JSONObject parse = JSON.parseObject(str);
+            String playUrl = parse.getString("playUrl");
+            if(StrUtil.isNotEmpty(playUrl) && playUrl.length() > 1){
+                deleteFileList.add(playUrl);
+            }
+            String poster = parse.getString("poster");
+            if(StrUtil.isNotEmpty(poster) && poster.length() > 1){
+                deleteFileList.add(poster);
+            }
+        });
+        sceneUploadService.delete(
+                DeleteFileParamVO.builder()
+                        .num(param.getNum())
+                        .fileNames(deleteFileList)
+                        .bizType(FileBizType.CUT_MODEL.code()).build());
+
         //保存数据库
         SceneEditInfoExt sceneEditInfoExt = sceneEditInfoExtService.getByScenePlusId(scenePlus.getId());
         this.updateDb(param.getNum(), scenePlus.getId());
@@ -136,17 +159,18 @@ public class CutModelServiceImpl implements ICutModelService {
         fYunFileService.uploadFile(bucket, JSON.toJSONString(collect).getBytes(), userEditPath);
     }
 
-    private void deleteCutModel(String num, List<String> deleteSidList, String bucket) throws Exception {
+    private List<String> deleteCutModel(String num, List<String> deleteSidList, String bucket) throws Exception {
         if(CollUtil.isEmpty(deleteSidList)){
-            return;
+            return null;
         }
 
         //从redis中加载热点数据
         String key = String.format(RedisKey.SCENE_CUT_MODEL, num);
         List<String> deletDataList = redisUtil.hMultiGet(key, deleteSidList);
-        if(CollUtil.isEmpty(deletDataList))
-            return;
-        redisUtil.hdel(key, deleteSidList.toArray());
+        if(CollUtil.isNotEmpty(deletDataList)){
+            redisUtil.hdel(key, deleteSidList.toArray());
+        }
+        return deletDataList;
     }
 
     private void updateDb(String num, Long scenePlusId){