dengsixing hai 4 semanas
pai
achega
89ea7c73e0

+ 5 - 1
src/main/java/com/fdkankan/scene/service/ISceneUploadService.java

@@ -1,5 +1,6 @@
 package com.fdkankan.scene.service;
 
+import cn.hutool.core.io.IORuntimeException;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.web.response.ResultData;
 import com.fdkankan.scene.entity.SceneUpload;
@@ -7,6 +8,9 @@ import com.fdkankan.scene.vo.DeleteFileParamVO;
 import com.fdkankan.scene.vo.UploadContentParamVO;
 import org.springframework.web.multipart.MultipartFile;
 
+import java.io.IOException;
+import java.nio.file.FileSystemException;
+
 /**
  * <p>
  *  服务类
@@ -20,7 +24,7 @@ public interface ISceneUploadService extends IService<SceneUpload> {
     String uploads(String imgData, String fileName,String blzType,MultipartFile[] files,
         String sceneCode, Integer type,String token, String uploadPath) throws Exception;
 
-    ResultData delete(DeleteFileParamVO param) throws Exception;
+    ResultData delete(DeleteFileParamVO param) throws FileSystemException;
 
 //    String uploadContent(UploadContentParamVO param) throws Exception;
 }

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

@@ -2626,10 +2626,16 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
 
             //删除资源文件
             if(CollUtil.isNotEmpty(deleteVidoeFile))
-                sceneUploadService.delete(
-                    DeleteFileParamVO.builder().num(num)
-                        .bizType(FileBizType.BOX_VIDEO.code())
-                        .fileNames(new ArrayList<>(deleteVidoeFile)).build());
+                try{
+                    sceneUploadService.delete(
+                            DeleteFileParamVO.builder().num(num)
+                                    .bizType(FileBizType.BOX_VIDEO.code())
+                                    .fileNames(new ArrayList<>(deleteVidoeFile)).build());
+                }catch (FileSystemException e){
+                    if (e.getMessage().contains("另一个程序正在使用此文件,进程无法访问")){
+                        throw new BusinessException(ErrorCode.FAILURE_CODE_5071);
+                    }
+                }
             //删除资源文件
             if(CollUtil.isNotEmpty(deleteVidoeFile))
                 sceneUploadService.delete(

+ 4 - 1
src/main/java/com/fdkankan/scene/service/impl/SceneUploadServiceImpl.java

@@ -1,6 +1,7 @@
 package com.fdkankan.scene.service.impl;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.io.IORuntimeException;
 import cn.hutool.core.thread.ThreadUtil;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.date.TimeInterval;
@@ -31,7 +32,9 @@ import com.fdkankan.scene.vo.UploadContentParamVO;
 import com.fdkankan.web.user.SSOLoginHelper;
 import com.fdkankan.web.user.SSOUser;
 import java.io.File;
+import java.io.IOException;
 import java.nio.charset.StandardCharsets;
+import java.nio.file.FileSystemException;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashSet;
@@ -87,7 +90,7 @@ public class SceneUploadServiceImpl extends ServiceImpl<ISceneUploadMapper, Scen
     }
 
     @Override
-    public ResultData delete(DeleteFileParamVO param) throws Exception {
+    public ResultData delete(DeleteFileParamVO param) throws FileSystemException {
         ScenePlus scenePlus = scenePlusService.getScenePlusByNum(param.getNum());
         if(Objects.isNull(scenePlus)){
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);