Prechádzať zdrojové kódy

保存\删除导览

dengsixing 3 rokov pred
rodič
commit
d0ece42159

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

@@ -25,6 +25,6 @@ public interface ISceneEditService {
 
     ResultData saveTour(BaseDataParamVO param) throws IOException;
 
-    ResultData deleteTour(BaseSceneParamVO param) throws IOException;
+    ResultData deleteTour(BaseSceneParamVO param) throws Exception;
 
 }

+ 32 - 15
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneEditServiceImpl.java

@@ -24,13 +24,18 @@ import com.fdkankan.scene.entity.ScenePlus;
 import com.fdkankan.scene.service.ISceneEditService;
 import com.fdkankan.scene.service.IScenePlusService;
 import com.fdkankan.scene.service.ISceneProService;
+import com.fdkankan.scene.service.ISceneUploadService;
 import com.fdkankan.scene.vo.BaseDataParamVO;
 import com.fdkankan.scene.vo.BaseSceneParamVO;
+import com.fdkankan.scene.vo.DeleteFileParamVO;
 import com.fdkankan.scene.vo.LocalesParamVO;
 import com.fdkankan.scene.vo.SceneAuthVO;
 import java.io.IOException;
 import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
 import java.util.Date;
+import java.util.List;
+import java.util.Objects;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
@@ -58,6 +63,8 @@ public class SceneEditServiceImpl implements ISceneEditService {
     private UploadToOssUtil uploadToOssUtil;
     @Value("${oss.bucket:4dkankan}")
     private String bucket;
+    @Autowired
+    private ISceneUploadService sceneUploadService;
 
     @Override
     public SceneAuthVO getAuth(BaseSceneParamVO param) throws Exception{
@@ -125,36 +132,46 @@ public class SceneEditServiceImpl implements ISceneEditService {
     }
 
     @Override
-    public ResultData deleteTour(BaseSceneParamVO param) throws IOException {
+    public ResultData deleteTour(BaseSceneParamVO param) throws Exception {
         String userEditPath = String.format(UploadFilePath.USER_EDIT_PATH, param.getNum());
         String tourJsonPath = userEditPath + "tour.json";
         String tourJson = uploadToOssUtil.getObjectContent(bucket, tourJsonPath);
         JSONArray tours = JSON.parseArray(tourJson);
         if(CollUtil.isNotEmpty(tours)){
-            tours.parallelStream().forEach(o -> {
+            List<String> fileNames = new ArrayList<>();
+            for (Object o : tours) {
                 JSONObject tour = (JSONObject)o;
-                try {
-                    JSONObject enter = tour.getJSONObject("enter");
+
+                JSONObject enter = tour.getJSONObject("enter");
+                if(Objects.nonNull(enter)){
                     String enterOver = enter.getString("cover");
                     if(StrUtil.isNotEmpty(enterOver)){
-                        uploadToOssUtil.delete(userEditPath + enterOver);
+                        fileNames.add(enterOver);
                     }
+                }
 
-                    JSONObject exit = tour.getJSONObject("exit");
-                    String exitOver = enter.getString("cover");
-                    if(StrUtil.isNotEmpty(exitOver)){
-                        uploadToOssUtil.delete(userEditPath + exitOver);
-                    }
 
-                    String music = tour.getString("music");
-                    if(StrUtil.isNotEmpty(music)){
-                        uploadToOssUtil.delete(userEditPath + music);
+                JSONObject exit = tour.getJSONObject("exit");
+                if(Objects.nonNull(exit)){
+                    String exitOver = exit.getString("cover");
+                    if(StrUtil.isNotEmpty(exitOver)){
+                        fileNames.add(exitOver);
                     }
-                }catch (IOException e){
+                }
 
+                String music = tour.getString("music");
+                if(StrUtil.isNotEmpty(music)){
+                    fileNames.add( music);
                 }
-            });
+            }
+
+            //批量删除资源文件
+            sceneUploadService.delete(
+                DeleteFileParamVO.builder()
+                    .num(param.getNum()).bizType("tour").fileNames(fileNames)
+                    .build());
         }
+        //删除tour.json文件
         uploadToOssUtil.delete(tourJsonPath);
 
         return ResultData.ok();

+ 9 - 4
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneUploadServiceImpl.java

@@ -22,6 +22,7 @@ import com.fdkankan.scene.mapper.ISceneUploadMapper;
 import com.fdkankan.scene.service.ISceneProService;
 import com.fdkankan.scene.service.ISceneUploadService;
 import com.fdkankan.scene.vo.DeleteFileParamVO;
+import java.io.IOException;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -81,15 +82,19 @@ public class SceneUploadServiceImpl extends ServiceImpl<ISceneUploadMapper, Scen
 
     @Override
     public ResultData delete(DeleteFileParamVO param) throws Exception {
-
-        String key = String.format(UploadFilePath.USER_EDIT_PATH, param.getNum()) + param.getFileName();
-        uploadToOssUtil.delete(key);
+        String userEditPath = String.format(UploadFilePath.USER_EDIT_PATH, param.getNum());
+        List<String> filePaths = new ArrayList<>();
+        for (String fileName : param.getFileNames()) {
+            String key = userEditPath + fileName;
+            filePaths.add(key);
+            uploadToOssUtil.delete(key);
+        }
 
         this.update(new LambdaUpdateWrapper<SceneUpload>()
             .set(SceneUpload::getTbStatus, TbStatus.DELETE.code())
             .eq(SceneUpload::getNum, param.getNum())
             .eq(SceneUpload::getBizType, param.getBizType())
-            .eq(SceneUpload::getFilePath, key)
+            .in(SceneUpload::getFilePath, filePaths)
             .eq(SceneUpload::getTbStatus, TbStatus.VALID.code()));
 
         return ResultData.ok();

+ 24 - 1
4dkankan-center-scene/src/main/java/com/fdkankan/scene/vo/DeleteFileParamVO.java

@@ -1,7 +1,12 @@
 package com.fdkankan.scene.vo;
 
+import java.util.List;
 import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotEmpty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
 import lombok.Data;
+import lombok.NoArgsConstructor;
 
 /**
  * <p>
@@ -12,8 +17,26 @@ import lombok.Data;
  * @since 2022/2/23
  **/
 @Data
-public class DeleteFileParamVO extends BaseFileParamVO{
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class DeleteFileParamVO{
 
+    /**
+     * 场景码
+     */
+    @NotBlank(message = "场景码不能为空")
+    private String num;
+
+    /**
+     * 文件名
+     */
+    @NotEmpty(message = "文件名不能为空")
+    private List<String> fileNames;
+
+    /**
+     * 业务类型
+     */
     @NotBlank(message = "业务类型不能空")
     private String bizType;