dengsixing %!s(int64=3) %!d(string=hai) anos
pai
achega
e7b0ae1d07

+ 17 - 5
pom.xml

@@ -53,25 +53,37 @@
         <dependency>
             <groupId>com.fdkankan</groupId>
             <artifactId>4dkankan-common-web</artifactId>
-            <version>2.0.0-SNAPSHOT</version>
+            <version>3.0.0-SNAPSHOT</version>
         </dependency>
 
         <dependency>
             <groupId>com.fdkankan</groupId>
             <artifactId>4dkankan-utils-redis</artifactId>
-            <version>2.0.0-SNAPSHOT</version>
+            <version>3.0.0-SNAPSHOT</version>
         </dependency>
 
         <dependency>
             <groupId>com.fdkankan</groupId>
             <artifactId>4dkankan-utils-db</artifactId>
-            <version>2.0.0-SNAPSHOT</version>
+            <version>3.0.0-SNAPSHOT</version>
+        </dependency>
+
+<!--        <dependency>-->
+<!--            <groupId>com.fdkankan</groupId>-->
+<!--            <artifactId>4dkankan-utils-fyun</artifactId>-->
+<!--            <version>3.0.0-SNAPSHOT</version>-->
+<!--        </dependency>-->
+
+        <dependency>
+            <groupId>com.fdkankan</groupId>
+            <artifactId>4dkankan-utils-fyun-oss</artifactId>
+            <version>3.0.0-SNAPSHOT</version>
         </dependency>
 
         <dependency>
             <groupId>com.fdkankan</groupId>
-            <artifactId>4dkankan-utils-fyun</artifactId>
-            <version>2.0.0-SNAPSHOT</version>
+            <artifactId>4dkankan-utils-fyun-s3</artifactId>
+            <version>3.0.0-SNAPSHOT</version>
         </dependency>
 
         <dependency>

+ 8 - 3
src/main/java/com/fdkankan/scene/Interceptor/CheckCooperationPermitAspect.java

@@ -3,6 +3,7 @@ package com.fdkankan.scene.Interceptor;
 import cn.hutool.core.util.StrUtil;
 import com.fdkankan.common.constant.CommonStatus;
 import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.constant.SceneStatus;
 import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.redis.constant.RedisKey;
 import com.fdkankan.redis.util.RedisUtil;
@@ -29,7 +30,7 @@ import org.springframework.web.context.request.ServletRequestAttributes;
 @Aspect
 @Component
 @Order(101)
-public class CheckCooperationPermitAspect {
+public class CheckPermitAspect {
 
 	@Autowired
 	private SSOLoginHelper ssoLoginHelper;
@@ -39,7 +40,7 @@ public class CheckCooperationPermitAspect {
 	private IScenePlusService scenePlusService;
 
 
-	@Pointcut("@annotation(com.fdkankan.scene.annotation.CheckCooperationPermit)")
+	@Pointcut("@annotation(com.fdkankan.scene.annotation.CheckPermit)")
 	public void checkCooperationPermit() {
 	}
 
@@ -63,11 +64,15 @@ public class CheckCooperationPermitAspect {
 			throw new BusinessException(ErrorCode.PARAM_REQUIRED);
 		}
 
-		//判断是不是场景原用户,如果是,跳出
         ScenePlus scenePlus= scenePlusService.getScenePlusByNum(num);
 		if(Objects.isNull(scenePlus)){
 			throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
 		}
+		//如果是计算中或者计算出错,返回计算中
+		if(SceneStatus.wait.code().equals(scenePlus.getSceneStatus())
+			|| SceneStatus.FAILD.code().equals(scenePlus.getSceneStatus())){
+			throw new BusinessException(ErrorCode.FAILURE_CODE_5033);
+		}
 
 		//判断是否相机登录,是否场景的相机id和相机登录的相机id是否相等,如果都满足,则放行,否则判定为用户登录
 		if(Objects.nonNull(user.getCameraLogin())

+ 1 - 1
src/main/java/com/fdkankan/scene/annotation/CheckCooperationPermit.java

@@ -9,6 +9,6 @@ import java.lang.annotation.Target;
 @Target({ElementType.PARAMETER, ElementType.METHOD})
 @Retention(RetentionPolicy.RUNTIME)
 @Documented
-public @interface CheckCooperationPermit {
+public @interface CheckPermit {
     String description() default "";
 }

+ 38 - 38
src/main/java/com/fdkankan/scene/controller/SceneEditController.java

@@ -4,7 +4,7 @@ import com.fdkankan.common.constant.ErrorCode;
 import com.fdkankan.common.constant.SceneInfoReqType;
 import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.response.ResultData;
-import com.fdkankan.scene.annotation.CheckCooperationPermit;
+import com.fdkankan.scene.annotation.CheckPermit;
 import com.fdkankan.scene.service.ISceneEditInfoService;
 import com.fdkankan.scene.service.ISceneEditService;
 import com.fdkankan.scene.service.ISceneProService;
@@ -77,7 +77,7 @@ public class SceneEditController extends BaseController {
      * @param param
      * @return com.fdkankan.common.response.ResultData
      **/
-    @CheckCooperationPermit
+    @CheckPermit
     @PostMapping(value = "/base/save")
     public SceneEditInfoVO saveScene(@RequestBody @Validated SceneEditInfoParamVO param){
         return sceneEditInfoService.saveScene(param);
@@ -92,7 +92,7 @@ public class SceneEditController extends BaseController {
      * @param param
      * @return com.fdkankan.common.response.ResultData
      **/
-    @CheckCooperationPermit
+    @CheckPermit
     @PostMapping(value = "/publicScene")
     public ResultData publicScene(@RequestBody @Validated SceneEditInfoParamVO param) throws Exception {
         return sceneEditInfoService.publicScene(param);
@@ -107,7 +107,7 @@ public class SceneEditController extends BaseController {
      * @param param
      * @return com.fdkankan.common.response.ResultData
      **/
-    @CheckCooperationPermit
+    @CheckPermit
     @PostMapping(value = "/saveInitialPage")
     public ResultData saveInitialPage(@RequestBody @Validated FileNameAndDataParamVO param) throws Exception {
         return sceneProService.saveInitialPage(param);
@@ -122,7 +122,7 @@ public class SceneEditController extends BaseController {
      * @param param
      * @return com.fdkankan.common.response.ResultData
      **/
-    @CheckCooperationPermit
+    @CheckPermit
     @PostMapping(value = "/tag/save")
     public ResultData saveTag(@RequestBody @Validated SaveTagsParamVO param) throws Exception {
         return sceneProService.addOrUpdateTag(param);
@@ -137,7 +137,7 @@ public class SceneEditController extends BaseController {
      * @param param
      * @return com.fdkankan.common.response.ResultData
      **/
-    @CheckCooperationPermit
+    @CheckPermit
     @PostMapping(value = "/tag/delete")
     public ResultData deleteTag(@RequestBody @Validated DeleteHotParamVO param) throws Exception {
         return sceneProService.deleteTag(param);
@@ -166,7 +166,7 @@ public class SceneEditController extends BaseController {
      * @param param
      * @return com.fdkankan.common.response.ResultData
      **/
-    @CheckCooperationPermit
+    @CheckPermit
     @PostMapping(value = "/icons/delete")
     public ResultData deleteIcons(@RequestBody @Validated DeleteHotIconParamVO param) throws Exception {
         return sceneProService.deleteIcons(param);
@@ -181,7 +181,7 @@ public class SceneEditController extends BaseController {
      * @param param
      * @return com.fdkankan.common.response.ResultData
      **/
-    @CheckCooperationPermit
+    @CheckPermit
     @PostMapping(value = "/saveRoam")
     public ResultData saveRoam(@RequestBody @Validated BaseDataParamVO param) throws Exception {
         return sceneProService.saveRoam(param);
@@ -196,7 +196,7 @@ public class SceneEditController extends BaseController {
      * @param param
      * @return com.fdkankan.common.response.ResultData
      **/
-    @CheckCooperationPermit
+    @CheckPermit
     @PostMapping(value = "/saveTagsVisible")
     public ResultData saveTagsVisible(@RequestBody @Validated SaveTagsVisibleParamVO param) throws Exception {
         return sceneProService.saveTagsVisible(param);
@@ -211,7 +211,7 @@ public class SceneEditController extends BaseController {
      * @param num
      * @return com.fdkankan.common.response.ResultData
      **/
-    @CheckCooperationPermit
+    @CheckPermit
     @PostMapping(value = "/downloadModel")
     public ResultData downloadTexData(@RequestParam("num") String num) throws Exception {
         return sceneProService.downloadTexData(num);
@@ -227,7 +227,7 @@ public class SceneEditController extends BaseController {
      * @param file
      * @return com.fdkankan.common.response.ResultData
      **/
-    @CheckCooperationPermit
+    @CheckPermit
     @PostMapping(value = "/uploadModel")
     public ResultData uploadObjAndImg(@RequestParam("num") String num, @RequestParam("file") MultipartFile file) throws Exception {
         return sceneProService.uploadObjAndImg(num, file);
@@ -245,7 +245,7 @@ public class SceneEditController extends BaseController {
      * @param file 
      * @return com.fdkankan.common.response.ResultData
      **/
-    @CheckCooperationPermit
+    @CheckPermit
     @PostMapping(value = "/linkPan/upload")
     public ResultData uploadLinkPan(
         @RequestParam(value = "num") String num,
@@ -264,7 +264,7 @@ public class SceneEditController extends BaseController {
      * @param param
      * @return com.fdkankan.common.response.ResultData
      **/
-    @CheckCooperationPermit
+    @CheckPermit
     @PostMapping(value = "/linkPan/save")
     public ResultData saveLinkPan(@RequestBody @Validated SaveLinkPanParamVO param) throws Exception{
         return sceneEditInfoService.saveLinkPan(param);
@@ -279,7 +279,7 @@ public class SceneEditController extends BaseController {
      * @param param
      * @return com.fdkankan.common.response.ResultData
      **/
-    @CheckCooperationPermit
+    @CheckPermit
     @PostMapping(value = "/linkPan/delete")
     public ResultData deleteLinkPan(@RequestBody @Validated DeleteLinkPanParamVO param) throws Exception {
         return sceneEditInfoService.deleteLinkPan(param);
@@ -294,7 +294,7 @@ public class SceneEditController extends BaseController {
      * @param param
      * @return com.fdkankan.common.response.ResultData
      **/
-    @CheckCooperationPermit
+    @CheckPermit
     @PostMapping(value = "/styles/delete")
     public ResultData deleteStyles(@RequestBody @Validated DeleteLinkSceneStylesParamVO param) throws Exception {
         return sceneEditInfoService.deleteStyles(param);
@@ -309,7 +309,7 @@ public class SceneEditController extends BaseController {
      * @param num
      * @return com.fdkankan.common.response.ResultData
      **/
-    @CheckCooperationPermit
+    @CheckPermit
     @PostMapping(value = "/linkPan/list")
     public ResultData listLinkPan(@RequestParam(value = "num") String num) throws Exception {
         return sceneEditInfoService.listLinkPan(num);
@@ -324,7 +324,7 @@ public class SceneEditController extends BaseController {
      * @param param
      * @return com.fdkankan.common.response.ResultData
      **/
-    @CheckCooperationPermit
+    @CheckPermit
     @PostMapping(value = "/cad/save")
     public ResultData saveCad(@RequestBody @Validated BaseDataParamVO param) throws Exception{
         return sceneEditInfoService.saveCad(param);
@@ -339,7 +339,7 @@ public class SceneEditController extends BaseController {
      * @param num
      * @return
      **/
-    @CheckCooperationPermit
+    @CheckPermit
     @PostMapping(value = "/cad/reset")
     public ResultData resetCad(@RequestParam(value = "num") String num) throws Exception {
         return sceneEditInfoService.resetCad(num);
@@ -353,7 +353,7 @@ public class SceneEditController extends BaseController {
      * @date 2022/2/16
      * @return
      **/
-    @CheckCooperationPermit
+    @CheckPermit
     @PostMapping(value = "/cad/rename")
     public ResultData renameCad(@RequestBody @Validated RenameCadParamVO param) throws IOException {
         return sceneEditInfoService.renameCad(param);
@@ -384,7 +384,7 @@ public class SceneEditController extends BaseController {
      * @param file
      * @return java.util.List<java.lang.String>
      **/
-    @CheckCooperationPermit
+    @CheckPermit
     @PostMapping(value = "/uploadPanorama")
     public ResultData uploadPanorama(@RequestParam(value = "num") String num,
         @RequestParam("file") MultipartFile file) throws Exception {
@@ -399,7 +399,7 @@ public class SceneEditController extends BaseController {
      * @date 2022/2/16
      * @return java.util.List<java.lang.String>
      **/
-    @CheckCooperationPermit
+    @CheckPermit
     @PostMapping(value = "/downloadPanorama")
     public ResultData downloadPanorama(@RequestBody @Validated FileParamVO param) throws Exception {
         return sceneEditInfoService.downloadPanorama(param);
@@ -414,7 +414,7 @@ public class SceneEditController extends BaseController {
      * @param param
      * @return com.fdkankan.common.response.ResultData
      **/
-    @CheckCooperationPermit
+    @CheckPermit
     @PostMapping(value = "/video/box/save")
     public ResultData saveVideoBox(@RequestBody @Validated FileNameAndDataParamVO param) throws Exception {
         return sceneEditInfoService.saveVideoBox(param);
@@ -429,7 +429,7 @@ public class SceneEditController extends BaseController {
      * @param param
      * @return com.fdkankan.common.response.ResultData
      **/
-    @CheckCooperationPermit
+    @CheckPermit
     @PostMapping(value = "/video/box/delete")
     public ResultData deleteVideoBox(@RequestBody @Validated DeleteSidParamVO param) throws Exception {
         return sceneEditInfoService.deleteVideoBox(param);
@@ -444,7 +444,7 @@ public class SceneEditController extends BaseController {
      * @param param
      * @return com.fdkankan.common.response.ResultData
      **/
-    @CheckCooperationPermit
+    @CheckPermit
     @PostMapping(value = "/photo/box/save")
     public ResultData savePhotoBox(@RequestBody @Validated BaseDataParamVO param) throws Exception {
         return sceneEditInfoService.saveBoxPhoto(param);
@@ -459,7 +459,7 @@ public class SceneEditController extends BaseController {
      * @param param
      * @return com.fdkankan.common.response.ResultData
      **/
-    @CheckCooperationPermit
+    @CheckPermit
     @PostMapping(value = "/photo/box/delete")
     public ResultData deletePhotoBox(@RequestBody @Validated DeleteSidParamVO param) throws Exception {
         return sceneEditInfoService.deleteBoxPhoto(param);
@@ -475,7 +475,7 @@ public class SceneEditController extends BaseController {
      * @param param
      * @return com.fdkankan.scene.vo.DownloadVO
      **/
-    @CheckCooperationPermit
+    @CheckPermit
     @PostMapping(value = "/downloadBallScreenVideo")
     public DownloadVO downloadBallScreenVideo(@RequestBody @Validated BallScreenVideoParamVO param){
         return sceneEditInfoService.downloadBallScreenVideo(param);
@@ -492,7 +492,7 @@ public class SceneEditController extends BaseController {
      * @param file
      * @return com.fdkankan.common.response.ResultData
      **/
-    @CheckCooperationPermit
+    @CheckPermit
     @PostMapping(value = "/uploadBallScreenVideo")
     public ResultData uploadBallScreenVideo(
             @RequestParam("num") String num,
@@ -516,7 +516,7 @@ public class SceneEditController extends BaseController {
      * @param uploadPath
      * @return java.lang.String
      **/
-    @CheckCooperationPermit
+    @CheckPermit
     @RequestMapping(value = "/upload/files", method = RequestMethod.POST)
     public String uploads(@RequestParam(value = "base64",required = false) String base64,
         @RequestParam(value = "fileName",required = false) String fileName,
@@ -551,7 +551,7 @@ public class SceneEditController extends BaseController {
      * @param paramVO
      * @return com.fdkankan.common.response.ResultData
      **/
-    @CheckCooperationPermit
+    @CheckPermit
     @PostMapping("/delete/file")
     public ResultData delete(@RequestBody @Validated DeleteFileParamVO paramVO) throws Exception{
         return sceneUploadService.delete(paramVO);
@@ -571,7 +571,7 @@ public class SceneEditController extends BaseController {
      * @param files
      * @return com.fdkankan.common.response.ResultData
      **/
-    @CheckCooperationPermit
+    @CheckPermit
     @PostMapping(value = "/sceneSync")
     public ResultData sceneSync(
         @RequestParam("num") String num,
@@ -592,7 +592,7 @@ public class SceneEditController extends BaseController {
      * @param num
      * @return com.fdkankan.scene.vo.SceneAuthVO
      **/
-    @CheckCooperationPermit
+    @CheckPermit
     @PostMapping(value = "/getAuth")
     public SceneAuthVO getAuth(@RequestParam("num") String num) throws Exception{
         return sceneEditService.getAuth(num, this.getSsoUser());
@@ -624,7 +624,7 @@ public class SceneEditController extends BaseController {
      * @param param
      * @return com.fdkankan.common.response.ResultData
      **/
-    @CheckCooperationPermit
+    @CheckPermit
     @PostMapping(value = "/tour/save")
     public ResultData saveTour(@RequestBody @Validated BaseDataParamVO param) throws Exception{
         return sceneEditService.saveTour(param);
@@ -639,7 +639,7 @@ public class SceneEditController extends BaseController {
      * @param param
      * @return com.fdkankan.common.response.ResultData
      **/
-    @CheckCooperationPermit
+    @CheckPermit
     @PostMapping(value = "/tour/delete")
     public ResultData deleteTour(@RequestBody @Validated BaseSceneParamVO param) throws Exception{
         return sceneEditService.deleteTour(param);
@@ -654,7 +654,7 @@ public class SceneEditController extends BaseController {
      * @param param
      * @return com.fdkankan.common.response.ResultData
      **/
-    @CheckCooperationPermit
+    @CheckPermit
     @PostMapping(value = "/mosaics/add")
     public ResultData addMosaics(@RequestBody @Validated BaseDataParamVO param) throws Exception{
         return sceneEditInfoService.addMosaics(param);
@@ -669,7 +669,7 @@ public class SceneEditController extends BaseController {
      * @param param
      * @return com.fdkankan.common.response.ResultData
      **/
-    @CheckCooperationPermit
+    @CheckPermit
     @PostMapping(value = "/mosaics/delete")
     public ResultData deleteMosaics(@RequestBody @Validated DeleteMosaicParamVO param) throws Exception{
         return sceneEditInfoService.deleteMosaics(param);
@@ -684,7 +684,7 @@ public class SceneEditController extends BaseController {
      * @param param
      * @return com.fdkankan.common.response.ResultData
      **/
-    @CheckCooperationPermit
+    @CheckPermit
     @PostMapping(value = "/mosaics/list")
     public ResultData getMosaicList(@RequestBody @Validated BaseSceneParamVO param) throws Exception{
         return ResultData.ok(sceneEditInfoService.getMosaicList(param.getNum()));
@@ -699,7 +699,7 @@ public class SceneEditController extends BaseController {
      * @param param
      * @return com.fdkankan.common.response.ResultData
      **/
-    @CheckCooperationPermit
+    @CheckPermit
     @PostMapping(value = "/waterMark/add")
     public ResultData addWaterMark(@RequestBody @Validated BaseFileParamVO param) throws Exception{
         return sceneEditInfoService.addWaterMark(param);
@@ -714,7 +714,7 @@ public class SceneEditController extends BaseController {
      * @param param
      * @return com.fdkankan.common.response.ResultData
      **/
-    @CheckCooperationPermit
+    @CheckPermit
     @PostMapping(value = "/waterMark/delete")
     public ResultData deleteWaterMark(@RequestBody @Validated BaseFileParamVO param) throws Exception{
         return sceneEditInfoService.deleteWaterMark(param);

+ 31 - 0
src/main/java/com/fdkankan/scene/controller/TestController.java

@@ -0,0 +1,31 @@
+package com.fdkankan.scene.controller;
+
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.fyun.face.FYunFileServiceInterface;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * TODO
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/8/17
+ **/
+@RestController
+@RequestMapping("/test")
+public class TestController {
+
+    @Autowired
+    private FYunFileServiceInterface fYunFileServiceInterface;
+
+    @GetMapping("/test")
+    public ResultData test(){
+        fYunFileServiceInterface.uploadFile("4dkankan", "F:\\test\\vision.json", "test_dsx/vision.json");
+        return ResultData.ok();
+    }
+
+}

+ 3 - 0
src/main/java/com/fdkankan/scene/entity/ScenePlusExt.java

@@ -136,6 +136,9 @@ public class ScenePlusExt implements Serializable {
     @TableField("videos")
     private String videos;
 
+    @TableField("yun_file_bucket")
+    private String yunFileBucket;
+
     /**
      * 创建时间
      */

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

@@ -57,7 +57,7 @@ public interface ISceneEditInfoService extends IService<SceneEditInfo> {
 
     void upgradeVersionAndImgVersionById(Long id);
 
-    void upgradeSceneJsonVersion(String num, int version, Integer imgVersion) throws IOException ;
+    void upgradeSceneJsonVersion(String num, int version, Integer imgVersion, String bucket) throws IOException ;
 
     ResultData uploadPanorama(String num, MultipartFile file) throws Exception;
 
@@ -77,7 +77,7 @@ public interface ISceneEditInfoService extends IService<SceneEditInfo> {
 
     ResultData uploadBallScreenVideo(String num,String fileName,MultipartFile file) throws Exception;
 
-    void upgradeVersionToSceneJson(String num) throws Exception;
+    void upgradeVersionToSceneJson(String num, String bucket) throws Exception;
 
     ResultData sceneSync(String num, String type, String floorPlanJson, String ajkJson, String cameraJson, MultipartFile[] files) throws Exception;
 

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

@@ -18,7 +18,7 @@ import java.io.IOException;
  **/
 public interface ISceneEditService {
 
-    SceneAuthVO getAuth(String num, SSOUser ssoUser) throws Exception;
+    SceneAuthVO getAuth(String num, SSOUser ssoUser);
 
     ResultData locales(LocalesParamVO param) throws Exception;
 

+ 82 - 81
src/main/java/com/fdkankan/scene/service/impl/SceneEditInfoServiceImpl.java

@@ -29,8 +29,8 @@ import com.fdkankan.common.util.FileMd5Util;
 import com.fdkankan.common.util.FileUtil;
 import com.fdkankan.common.util.FileUtils;
 import com.fdkankan.common.util.SceneUtil;
-import com.fdkankan.fyun.constant.StorageType;
-import com.fdkankan.fyun.oss.UploadToOssUtil;
+import com.fdkankan.fyun.constant.FYunTypeEnum;
+import com.fdkankan.fyun.face.FYunFileServiceInterface;
 import com.fdkankan.redis.constant.RedisKey;
 import com.fdkankan.redis.constant.RedisLockKey;
 import com.fdkankan.redis.util.RedisLockUtil;
@@ -124,35 +124,21 @@ import org.springframework.web.multipart.MultipartFile;
 @Service
 public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper, SceneEditInfo> implements ISceneEditInfoService {
 
-    @Value("${oss.prefix.ali}")
-    private String prefixAli;
-    @Value("${oss.prefix.url}")
+    @Value("${fyun.host}")
     private String ossUrlPrefix;
-    @Value("${upload.type}")
-    private String type;
-    @Value("${oss.bucket:4dkankan}")
-    private String bucket;
-    @Value("${main.url}")
-    private String mainUrl;
+    @Value("${fyun.type}")
+    private String fyunType;
     @Value("${ecs.checkFile.maxTimes:5}")
     private int maxCheckTimes;
     @Value("${ecs.checkFile.waitTime:5000}")
     private int waitTime;
-    @Value("${http.host.4dkankanMini}")
-    private String fkankanMiniHost;
-    @Value("${http.api-v4.getDataSyncByCameraId}")
-    private String URL_GET_DATASYNC_BY_CAMERAID;
-    @Value("${http.api-v4.getSceneProByNum}")
-    private String URL_GET_SCENEPRO_BY_NUM;
-    @Value("${http.api-v4.upgradeToV4ResultSync}")
-    private String URL_UPGRADE_TO_V4_RESULT_SYNC;
 
     @Autowired
     private ISceneEditControlsService sceneEditControlsService;
     @Autowired
     private ISceneProService sceneProService;
     @Autowired
-    private UploadToOssUtil uploadToOssUtil;
+    private FYunFileServiceInterface fYunFileService;
     @Autowired
     RedisUtil redisUtil;
     @Autowired
@@ -266,6 +252,7 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
             sceneEditInfoExt.setFloorPlanAngle(0f);
             sceneEditInfoExt.setFloorPlanCompass(0f);
         }
+        String bucket = scenePlusExt.getYunFileBucket();
 
         //生成sceneJson
         SceneJsonBean sceneJson = new SceneJsonBean();
@@ -287,17 +274,17 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         sceneJson.setMosaicList(this.getMosaicList(num));
 
         //处理热点数据,生成hot.json
-        this.publicHotData(num, sceneEditInfo);
+        this.publicHotData(num, sceneEditInfo, bucket);
 
         //发布场景关联相关数据
-        this.publicLinkSceneData(num);
+        this.publicLinkSceneData(num, bucket);
 
         //本地写sceneJson文件
         String localSceneJsonPath = String.format(ConstantFilePath.SCENE_DATA_PATH_V4, num) + "scene.json";
         FileUtils.writeFile(localSceneJsonPath, JSON.toJSONString(sceneJson));
         //上传sceneJson文件
         String sceneJsonPath = String.format(UploadFilePath.DATA_VIEW_PATH+"scene.json", num);
-        uploadToOssUtil.upload(JSON.toJSONBytes(sceneJson), sceneJsonPath);
+        fYunFileService.uploadFile(bucket, JSON.toJSONBytes(sceneJson), sceneJsonPath);
 
         //sceneJson放入缓存
         String key = String.format(RedisKey.SCENE_JSON, num);
@@ -305,12 +292,12 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
 
         //删除发布数据中的user目录
         String publicUserPath = String.format(UploadFilePath.USER_VIEW_PATH, num);
-        uploadToOssUtil.deleteFile(publicUserPath);
+        fYunFileService.deleteFile(bucket, publicUserPath);
 
         //复制编辑目录到发布目录
         String editPath = String.format(UploadFilePath.USER_EDIT_PATH, param.getNum());
         String viewPath = String.format(UploadFilePath.USER_VIEW_PATH, param.getNum());
-        uploadToOssUtil.copyFiles(editPath,viewPath);
+        fYunFileService.copyFileBetweenBucket(bucket, editPath, bucket, viewPath);
 
         //入库
         if(sceneEditInfo.getId() == null){
@@ -325,7 +312,7 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         return ResultData.ok();
     }
 
-    public void publicLinkSceneData(String num) throws IOException {
+    public void publicLinkSceneData(String num, String bucket) throws IOException {
 
         String imgEditPath = String.format(UploadFilePath.IMG_EDIT_PATH, num);
         String userEditPath = String.format(UploadFilePath.USER_EDIT_PATH, num);
@@ -342,15 +329,15 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
             linkPanArr.add(JSON.parseObject(linkPan));
         });
         String linkScenePath = userEditPath + "links.json";
-        uploadToOssUtil.upload(linkPanArr.toString().getBytes(), linkScenePath);
+        fYunFileService.uploadFile(bucket, linkPanArr.toString().getBytes(), linkScenePath);
 
         //拷贝编辑目录到发布目录
-        uploadToOssUtil.deleteFile(imgViewPath + "panorama");
-        uploadToOssUtil.copyFiles(imgEditPath + "panorama",imgViewPath + "panorama");
+        fYunFileService.deleteFile(bucket,imgViewPath + "panorama");
+        fYunFileService.copyFileBetweenBucket(bucket, imgEditPath + "panorama", bucket, imgViewPath + "panorama");
 
     }
 
-    private void publicHotData(String sceneNum, SceneEditInfo sceneEditInfo) throws IOException {
+    private void publicHotData(String sceneNum, SceneEditInfo sceneEditInfo, String bucket) throws IOException {
         String hotDataKey = String.format(RedisKey.SCENE_HOT_DATA, sceneNum);
         Map<String, String> hotMap = redisUtil.hmget(hotDataKey);
         List<String> hotList = Lists.newArrayList();
@@ -365,7 +352,7 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
                 jsonhots.add(JSONObject.parseObject(hot));
             });
             String hotJsonPath = String.format(UploadFilePath.USER_EDIT_PATH, sceneNum) + "hot.json";
-            uploadToOssUtil.upload(jsonhots.toString().getBytes(), hotJsonPath);
+            fYunFileService.uploadFile(bucket, jsonhots.toString().getBytes(), hotJsonPath);
 
             //修改tags状态为是,标识有热点数据
             this.saveTagsToSceneEditInfo(sceneNum, sceneEditInfo);
@@ -472,6 +459,7 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
 
         //校验场景是否为空、封存、计算中
         ScenePlus scenePlus = scenePlusService.checkSceneAvail(num);
+        ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
 
         //访问量+1
         scenePlusService.updateViewCount(num);
@@ -494,7 +482,7 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
 
         //如果redis没找到,从scene.json中获取
         String objectName = String.format(ConstantFilePath.SCENE_VIEW_DATA_DATA_SCENEJSON, num);
-        String objectContent = uploadToOssUtil.getObjectContent(bucket, objectName);
+        String objectContent = fYunFileService.getFileContent(scenePlusExt.getYunFileBucket(), objectName);
         if(StrUtil.isEmpty(objectContent))
             return null;
         sceneInfoVO = JSON.parseObject(objectContent, SceneInfoVO.class);
@@ -514,11 +502,12 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
     public ResultData saveCad(BaseDataParamVO param) throws Exception {
 
         String num = param.getNum();
-//        ScenePro scenePro = sceneProService.findBySceneNum(num);
         ScenePlus scenePlus = scenePlusService.getScenePlusByNum(num);
         if(Objects.isNull(scenePlus))
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
+        ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
 
+        String bucket = scenePlusExt.getYunFileBucket();
         String editUserPath = String.format(UploadFilePath.USER_EDIT_PATH, num);
         String localDataPath = String.format(ConstantFilePath.SCENE_USER_PATH_V4, num);
 
@@ -535,14 +524,14 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         //处理户型图数据
         //上传floorplan_user.json文件
         FileUtils.writeFile(localDataPath + "floorplan_user.json", floorJsonData);
-        uploadToOssUtil.upload(localDataPath + "floorplan_user.json", editUserPath + "floorplan_user.json");
+        fYunFileService.uploadFile(bucket, localDataPath + "floorplan_user.json", editUserPath + "floorplan_user.json");
 
         //写入数据库
         Byte floorPlanUser = null;
         if(StrUtil.isNotEmpty(floorJsonData)){
             JSONObject houseTypeJson = CreateHouseJsonUtil
                 .createHouseTypeJsonByUser(localDataPath + "floorplan_user.json");
-            uploadToOssUtil.upload(houseTypeJson.toJSONString().getBytes(), editUserPath + "houseType.json");
+            fYunFileService.uploadFile(bucket, houseTypeJson.toJSONString().getBytes(), editUserPath + "houseType.json");
 
             floorPlanUser = CommonStatus.YES.code();
         }
@@ -588,6 +577,7 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
         ScenePlusExt scenePlusExt = scenePlusExtService
             .getScenePlusExtByPlusId(scenePlus.getId());
+        String bucket = scenePlusExt.getYunFileBucket();
         String path = scenePlusExt.getDataSource();
 
         //户型图上传
@@ -599,12 +589,12 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
                 String substring = str.substring(str.lastIndexOf(File.separator) + 1);
                 String[] arr = substring.split("floor");
                 String[] arr2 = arr[1].split("\\.");
-                uploadToOssUtil.upload(str, String.format(userEditPath, num, arr2[0], arr2[1]));
+                fYunFileService.uploadFile(bucket, str, String.format(userEditPath, num, arr2[0], arr2[1]));
             });
         }
 
         //根据floorplan_cad.json生成houseType.json
-        this.uploadHouseTypeJson(num);
+        this.uploadHouseTypeJson(num, bucket);
 
         SceneEditInfo sceneEditInfoDb = this.getByScenePlusId(scenePlus.getId());
         SceneEditInfoExt sceneEditInfoExt = null;
@@ -635,14 +625,14 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
 
     }
 
-    private void uploadHouseTypeJson(String num) throws IOException {
+    private void uploadHouseTypeJson(String num, String bucket) throws IOException {
 
         JSONObject result = new JSONObject();
         result.put("name", "houseType.json");
         result.put("version", "2.1");
 
         String floorplanCadPath = String.format(UploadFilePath.DATA_VIEW_PATH, num) + "floorplan_cad.json";
-        String floorcadStr = uploadToOssUtil.getObjectContent(this.bucket, floorplanCadPath);
+        String floorcadStr = fYunFileService.getFileContent(bucket, floorplanCadPath);
 
         JSONObject floorcadObj = JSON.parseObject(floorcadStr);
         JSONArray floors = floorcadObj.getJSONArray("floors");
@@ -661,7 +651,7 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         }
 
         String hourseTypeJsonPath = String.format(UploadFilePath.USER_EDIT_PATH, num) + "houseType.json";
-        uploadToOssUtil.upload(result.toJSONString().getBytes(), hourseTypeJsonPath);
+        fYunFileService.uploadFile(bucket, result.toJSONString().getBytes(), hourseTypeJsonPath);
     }
 
     private JSONArray[] createHouseTypeJsonHandler(JSONObject floor){
@@ -744,8 +734,15 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
     @Override
     public ResultData renameCad(RenameCadParamVO param) throws IOException {
 
+        ScenePlus scenePlus = scenePlusService.getScenePlusByNum(param.getNum());
+        if(Objects.isNull(scenePlus)){
+            throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
+        }
+        ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
+        String bucket = scenePlusExt.getYunFileBucket();
+
         String key = String.format(UploadFilePath.DATA_VIEW_PATH, param.getNum()) + "floorplan_cad.json";
-        String floorplanCadJson = uploadToOssUtil.getObjectContent(this.bucket, key);
+        String floorplanCadJson = fYunFileService.getFileContent(bucket, key);
         if(StrUtil.isEmpty(floorplanCadJson)){
             return ResultData.ok();
         }
@@ -770,7 +767,7 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
             }
             item.put("name", name);
         }
-        uploadToOssUtil.upload(jsonObject.toJSONString().getBytes(), key);
+        fYunFileService.uploadFile(bucket, jsonObject.toJSONString().getBytes(), key);
         return ResultData.ok();
     }
 
@@ -810,7 +807,7 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
     }
 
     @Override
-    public void upgradeSceneJsonVersion(String num, int version, Integer imgVersion) throws IOException {
+    public void upgradeSceneJsonVersion(String num, int version, Integer imgVersion, String bucket) throws IOException {
 
         //更新redis缓存版本号
         String key = String.format(RedisKey.SCENE_JSON, num);
@@ -826,14 +823,14 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
 
         //更新oss scene.json版本号
         String sceneJsonPath = String.format(UploadFilePath.DATA_VIEW_PATH, num) + "scene.json";
-        sceneJson= uploadToOssUtil.getObjectContent(this.bucket, sceneJsonPath);
+        sceneJson= fYunFileService.getFileContent(bucket, sceneJsonPath);
         if(StrUtil.isNotEmpty(sceneJson)){
             SceneJsonBean sceneJsonBean = JSON.parseObject(sceneJson, SceneJsonBean.class);
             sceneJsonBean.setVersion(version);
             if(Objects.nonNull(imgVersion)){
                 sceneJsonBean.setImgVersion(imgVersion + 1);
             }
-            uploadToOssUtil.upload(JSON.toJSONString(sceneJsonBean).getBytes(StandardCharsets.UTF_8), sceneJsonPath);
+            fYunFileService.uploadFile(bucket, JSON.toJSONString(sceneJsonBean).getBytes(StandardCharsets.UTF_8), sceneJsonPath);
         }
 
     }
@@ -849,8 +846,8 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         if(scenePlus == null){
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
         }
-        ScenePlusExt scenePlusExt = scenePlusExtService
-            .getScenePlusExtByPlusId(scenePlus.getId());
+        ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
+        String bucket = scenePlusExt.getYunFileBucket();
 
         //原始计算根目录
 //      String path = "F:\\test";
@@ -942,8 +939,7 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         Map<String, String> map = new HashMap<>();
 
         String imgViewPath = String.format(UploadFilePath.IMG_VIEW_PATH, num);
-        FileUtils.downLoadFromUrl(ossUrlPrefix + imgViewPath + "vision.modeldata" + "?m="+new Date().getTime(),
-            "vision.modeldata", target + File.separator + "extras" + File.separator);
+        fYunFileService.downloadFile(bucket, imgViewPath + "vision.modeldata", target + File.separator + "extras" + File.separator + "vision.modeldata");
         CreateObjUtil.convertVisionmodeldataToTxt(target + File.separator + "extras" + File.separator + "vision.modeldata",
             target + File.separator + "extras" + File.separator + "vision.txt");
 
@@ -982,7 +978,7 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         if(new File(target + File.separator + "results").exists()){
             FileUtils.delAllFile(target + File.separator + "results");
         }
-        if(StorageType.AWS.code().equals(this.type)){
+        if(FYunTypeEnum.AWS.code().equals(fyunType)){
             //亚马逊保持旧方式,超链接capture
             CreateObjUtil.createSoftConnection(path + File.separator + "capture", target + File.separator + "capture");
         }
@@ -1045,7 +1041,7 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
             }
         }
         if(map.size()>0) {
-            uploadToOssUtil.uploadMulFiles(map);
+            fYunFileService.uploadMulFiles(bucket, map);
         }
 
         //拷贝修改后的全景图到缓存目录
@@ -1058,7 +1054,7 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         SceneEditInfo sceneEditInfo = this.getByScenePlusId(scenePlus.getId());
         this.upgradeVersionAndImgVersionById(sceneEditInfo.getId());
         //更新scenejson缓存和oss文件版本号
-        this.upgradeSceneJsonVersion(num, sceneEditInfo.getVersion() + 1, sceneEditInfo.getImgVersion() + 1);
+        this.upgradeSceneJsonVersion(num, sceneEditInfo.getVersion() + 1, sceneEditInfo.getImgVersion() + 1, bucket);
 
         //如果部分成功,则需要返回成功数量和失败列表
         if(CollUtil.isNotEmpty(notExistFileList)){
@@ -1084,6 +1080,7 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
         }
         ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
+        String bucket = scenePlusExt.getYunFileBucket();
         String path = scenePlusExt.getDataSource();
 
         String cachePath = String.format(ConstantFilePath.SCENE_CACHE, num);
@@ -1103,9 +1100,8 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
             if(!cn.hutool.core.io.FileUtil.exist(localFilePath)){
                 throw new BusinessException(ErrorCode.FAILURE_CODE_5063);
             }
-            uploadToOssUtil.upload(localFilePath, ossFilePath);
+            fYunFileService.uploadFile(bucket, localFilePath, ossFilePath);
             url = ossUrlPrefix + ossFilePath;
-//                FileUtils.downLoadFromUrl(imageUrl, fileName, localImagesPath);
             downloadName = fileName;
         }else{
             if(!cn.hutool.core.io.FileUtil.exist(localImagesPath)
@@ -1121,7 +1117,7 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
             long end1 = Calendar.getInstance().getTimeInMillis();
             log.info("打包耗时:" + (end1 - start));
             //上传压缩包
-            uploadToOssUtil.uploadBySh(zipPath, String.format(cacheFormat, num) + downloadName);
+            fYunFileService.uploadFileByCommand(bucket, zipPath, String.format(cacheFormat, num) + downloadName);
             url = ossUrlPrefix + String.format(cacheFormat, num) + downloadName;
             long end2 = Calendar.getInstance().getTimeInMillis();
             log.info("上传耗时:" + (end2 - end1));
@@ -1170,11 +1166,13 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         ScenePlus scenePlus = scenePlusService.getScenePlusByNum(param.getNum());
         if(Objects.isNull(scenePlus))
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
+        ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
+        String bucket = scenePlusExt.getYunFileBucket();
 
         SceneEditInfo sceneEditInfo = this.getByScenePlusId(scenePlus.getId());
 
         //转换视频格式
-        this.transferToFlv(param.getNum(), param.getFileName());
+        this.transferToFlv(param.getNum(), param.getFileName(), bucket);
 
         //生成boxVideos数据
         String boxVideos = this.createBoxVideos(param.getNum(), sid, boxVideo, sceneEditInfo, OperationType.ADDORUPDATE.code());
@@ -1268,6 +1266,7 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
         }
         ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
+        String bucket = scenePlusExt.getYunFileBucket();
 
         String path = scenePlusExt.getDataSource();
         //校验文件名
@@ -1313,12 +1312,12 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
 
         for(String videoName : video.list()){
             log.info("球幕视频名称:{}", videoName);
-            uploadToOssUtil.upload(target + File.separator + "extras/video/" + videoName,videosViewPath + videoName);
+            fYunFileService.uploadFile(bucket, target + File.separator + "extras/video/" + videoName,videosViewPath + videoName);
 
             CreateObjUtil.mp4ToFlv(target + File.separator + "extras/video/" + videoName,
                 target + File.separator + "extras/video/" + videoName.replace("mp4", "flv"));
 
-            uploadToOssUtil.upload(target + File.separator + "extras/video/" + videoName.replace("mp4", "flv"),videosViewPath + videoName.replace("mp4", "flv"));
+            fYunFileService.uploadFile(bucket, target + File.separator + "extras/video/" + videoName.replace("mp4", "flv"),videosViewPath + videoName.replace("mp4", "flv"));
 
             //覆盖原始视频资源
             FileUtils.copyFile(target + File.separator + "extras/video/" + videoName,
@@ -1330,22 +1329,20 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         SceneEditInfo sceneEditInfo = this.getByScenePlusId(scenePlus.getId());
         this.upgradeVersionById(sceneEditInfo.getId());
 
-        //更新scene.json版本号
-//        this.upgradeVersionToSceneJson(num);
         //更新scenejson缓存和oss文件版本号
-        this.upgradeSceneJsonVersion(num, sceneEditInfo.getVersion() + 1, null);
+        this.upgradeSceneJsonVersion(num, sceneEditInfo.getVersion() + 1, null, bucket);
 
         return ResultData.ok();
     }
 
     @Override
-    public void upgradeVersionToSceneJson(String num) throws Exception{
+    public void upgradeVersionToSceneJson(String num, String bucket) throws Exception{
         String key = String.format(RedisKey.SCENE_JSON, num);
         String objectName = String.format(ConstantFilePath.SCENE_VIEW_DATA_DATA_SCENEJSON, num);
-        String objectContent = uploadToOssUtil.getObjectContent(bucket, objectName);
+        String objectContent = fYunFileService.getFileContent(bucket, objectName);
         SceneJsonBean sceneJsonBean = JSON.parseObject(objectContent, SceneJsonBean.class);
         sceneJsonBean.setVersion(sceneJsonBean.getVersion() +1);
-        uploadToOssUtil.upload(JSON.toJSONString(sceneJsonBean).getBytes(), objectName);
+        fYunFileService.uploadFile(bucket, JSON.toJSONString(sceneJsonBean).getBytes(), objectName);
         redisUtil.set(key, JSON.toJSONString(sceneJsonBean));
     }
 
@@ -1360,13 +1357,12 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         }
         try {
 
-//            ScenePro scenePro = sceneProService.findBySceneNum(num);
             ScenePlus scenePlus = scenePlusService.getScenePlusByNum(num);
             if(scenePlus == null){
                 throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
             }
-//            SceneProExt sceneProExt = sceneProExtService.findBySceneProId(scenePro.getId());
             ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
+            String bucket = scenePlusExt.getYunFileBucket();
 
             //更新scene.json文件
             String strsceneInfos = FileUtils.readFile(ConstantFilePath.SCENE_PATH + "data" + File.separator + "data" + num + File.separator + "scene.json");
@@ -1492,7 +1488,7 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
             }
             String fileMD5 = FileMd5Util.getFileMD5(new File(zipPath));
 
-            uploadToOssUtil.upload(zipPath, "data_download/" + num + ".zip");
+            fYunFileService.uploadFile(bucket, zipPath, "data_download/" + num + ".zip");
 
             SceneDataDownload sceneDataDownload = sceneDataDownloadService.findBySceneNum(num);
             if(sceneDataDownload == null){
@@ -1519,10 +1515,16 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
 
     @Override
     public ResultData checkKey(SceneCheckKeyParamVO param) throws Exception {
+        ScenePlus scenePlus = scenePlusService.getScenePlusByNum(param.getNum());
+        if(Objects.isNull(scenePlus)){
+            throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
+        }
+        ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
+        String bucket = scenePlusExt.getYunFileBucket();
         SceneJsonBean sceneJsonBean = null;
         String sceneJson = redisUtil.get(String.format(RedisKey.SCENE_JSON, param.getNum()));
         if(StrUtil.isEmpty(sceneJson)){
-            sceneJson = uploadToOssUtil.getObjectContent(bucket,
+            sceneJson = fYunFileService.getFileContent(bucket,
                 String.format(UploadFilePath.DATA_VIEW_PATH, param.getNum()) + "scene.json");
         }
         sceneJsonBean = JSON.parseObject(sceneJson, SceneJsonBean.class);
@@ -1667,6 +1669,7 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
         }
         ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
+        String bucket = scenePlusExt.getYunFileBucket();
 
         String localDataPath = String.format(ConstantFilePath.DATABUFFER_FORMAT, num);
         String localImagesPath = String.format(ConstantFilePath.IMAGESBUFFER_FORMAT, num);
@@ -1739,7 +1742,7 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
             cn.hutool.core.io.FileUtil.del(resultPath);
         }
         //下载data.fdage
-        if(StorageType.AWS.code().equals(this.type)){
+        if(FYunTypeEnum.AWS.code().equals(this.fyunType)){
             //亚马逊保持旧方式,超链接capture
             CreateObjUtil.createSoftConnection(path + File.separator + "capture", capturePath);
         }
@@ -1774,7 +1777,7 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         //上传全景图
         map.put(filePath, imgEditPath + "panorama/" + sid + "/high/" + fileName);
 
-        uploadToOssUtil.uploadMulFiles(map);
+        fYunFileService.uploadMulFiles(bucket, map);
 
         Map<String, String> result = new HashMap<>();
         result.put("type", type);
@@ -1842,11 +1845,13 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         ScenePlus scenePlus = scenePlusService.getScenePlusByNum(param.getNum());
         if (scenePlus == null)
             return ResultData.error(ErrorCode.FAILURE_CODE_5005);
+        ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
+        String bucket = scenePlusExt.getYunFileBucket();
 
         List<String> deleteSidList = param.getSidList();
 
         //处理删除状态数据
-        this.deletelinkPanData(param.getNum(), deleteSidList);
+        this.deletelinkPanData(param.getNum(), deleteSidList, bucket);
 
         //写入本地文件,作为备份
         this.writeLinkScene(param.getNum());
@@ -1857,7 +1862,7 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         return ResultData.ok();
     }
 
-    private void deletelinkPanData(String num, List<String> deleteSidList) throws Exception {
+    private void deletelinkPanData(String num, List<String> deleteSidList, String bucket) throws Exception {
 
         if(CollUtil.isEmpty(deleteSidList)){
             return;
@@ -1877,7 +1882,7 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         //删除oss文件
         String imgEditPath = String.format(UploadFilePath.IMG_EDIT_PATH, num);
         deleteSidList.stream().forEach(sid->{
-            uploadToOssUtil.deleteFile(imgEditPath + "panorama_edit/" + sid);
+            fYunFileService.deleteFolder(bucket, imgEditPath + "panorama_edit/" + sid);
         });
 
     }
@@ -2360,7 +2365,7 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         return result;
     }
 
-    private void transferToFlv(String num, String fileName) throws Exception {
+    private void transferToFlv(String num, String fileName, String bucket) throws Exception {
 
         String userEditPath = String.format(UploadFilePath.USER_EDIT_PATH, num);
         String localImagesPath = String.format(ConstantFilePath.SCENE_USER_PATH_V4, num);
@@ -2377,19 +2382,15 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         }
 
         //从用户编辑目录中下载视频到本地
-        if (!StorageType.LOCAL.code().equals(this.type)) {
-            String filePath = userEditPath + fileName;
-            String imageUrl = ossUrlPrefix + filePath + "?t=" + System.currentTimeMillis();
-            FileUtils.downLoadFromUrl(imageUrl, fileName, localImagesPath);
-        }
+        String filePath = userEditPath + fileName;
+        fYunFileService.downloadFile(bucket, filePath, localImagesPath + fileName);
 
         //视频格式转换
         CreateObjUtil.mp4ToFlv(localFilePath, localFilePath.replace("mp4", "flv"));
 
         //上传
         String flvFileName = fileName.replace("mp4", "flv");
-//        uploadToOssUtil.upload(localFilePath, userEditPath + fileName);
-        uploadToOssUtil.upload(localFilePath.replace("mp4", "flv"), userEditPath+flvFileName);
+        fYunFileService.uploadFile(bucket, localFilePath.replace("mp4", "flv"), userEditPath+flvFileName);
     }
 
     @Override

+ 21 - 16
src/main/java/com/fdkankan/scene/service/impl/SceneEditServiceImpl.java

@@ -13,11 +13,12 @@ import com.fdkankan.common.constant.UploadFilePath;
 import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.response.ResultData;
 import com.fdkankan.common.util.DateExtUtil;
-import com.fdkankan.fyun.oss.UploadToOssUtil;
+import com.fdkankan.fyun.face.FYunFileServiceInterface;
 import com.fdkankan.scene.entity.Camera;
 import com.fdkankan.scene.entity.CameraDetail;
 import com.fdkankan.scene.entity.SceneCooperation;
 import com.fdkankan.scene.entity.ScenePlus;
+import com.fdkankan.scene.entity.ScenePlusExt;
 import com.fdkankan.scene.entity.SceneResource;
 import com.fdkankan.scene.entity.User;
 import com.fdkankan.scene.entity.UserIncrement;
@@ -25,8 +26,8 @@ import com.fdkankan.scene.service.ICameraDetailService;
 import com.fdkankan.scene.service.ICameraService;
 import com.fdkankan.scene.service.ISceneCooperationService;
 import com.fdkankan.scene.service.ISceneEditInfoExtService;
-import com.fdkankan.scene.service.ISceneEditInfoService;
 import com.fdkankan.scene.service.ISceneEditService;
+import com.fdkankan.scene.service.IScenePlusExtService;
 import com.fdkankan.scene.service.IScenePlusService;
 import com.fdkankan.scene.service.ISceneProService;
 import com.fdkankan.scene.service.ISceneResourceService;
@@ -64,23 +65,15 @@ import org.springframework.stereotype.Service;
 @RefreshScope
 public class SceneEditServiceImpl implements ISceneEditService {
 
-    @Value("${oss.bucket:4dkankan}")
-    private String bucket;
-    @Value("${http.host.4dkankanMini}")
-    private String fkankanMiniHost;
-    @Value("${http.api-v4.getSceneProByNum}")
-    private String URL_GET_SCENEPRO_BY_NUM;
     @Autowired
     ISceneProService sceneProService;
     @Autowired
     IScenePlusService scenePlusService;
     @Autowired
-    private UploadToOssUtil uploadToOssUtil;
+    private FYunFileServiceInterface fYunFileService;
     @Autowired
     private ISceneUploadService sceneUploadService;
     @Autowired
-    private ISceneEditInfoService sceneEditInfoService;
-    @Autowired
     private ISceneEditInfoExtService sceneEditInfoExtService;
     @Autowired
     private ICameraDetailService cameraDetailService;
@@ -96,9 +89,11 @@ public class SceneEditServiceImpl implements ISceneEditService {
     private ISceneCooperationService sceneCooperationService;
     @Autowired
     private ISceneResourceService sceneResourceService;
+    @Autowired
+    private IScenePlusExtService scenePlusExtService;
 
     @Override
-    public SceneAuthVO getAuth(String num, SSOUser ssoUser) throws Exception{
+    public SceneAuthVO getAuth(String num, SSOUser ssoUser){
 
         // 解密获得username,用于和数据库进行对比
         String username = ssoUser.getUserName();
@@ -224,14 +219,19 @@ public class SceneEditServiceImpl implements ISceneEditService {
     @Override
     public ResultData locales(LocalesParamVO param) throws Exception {
         String key = "v4/www/locales/" + param.getFile();
-        uploadToOssUtil.upload(JSON.toJSONBytes(param.getData()), key);
+        fYunFileService.uploadFile(JSON.toJSONBytes(param.getData()), key);
         return ResultData.ok();
     }
 
     @Override
     public ResultData saveTour(BaseDataParamVO param) throws IOException {
+        ScenePlus scenePlus = scenePlusService.getScenePlusByNum(param.getNum());
+        if(Objects.isNull(scenePlus)){
+            throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
+        }
+        ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
         String key = String.format(UploadFilePath.USER_EDIT_PATH, param.getNum()) + "tour.json";
-        uploadToOssUtil.upload(param.getData().getBytes(StandardCharsets.UTF_8), key);
+        fYunFileService.uploadFile(scenePlusExt.getYunFileBucket(), param.getData().getBytes(StandardCharsets.UTF_8), key);
 
         sceneEditInfoExtService.updateToursByNum(
             param.getNum(), Integer.valueOf(CommonStatus.YES.code()));
@@ -241,9 +241,14 @@ public class SceneEditServiceImpl implements ISceneEditService {
 
     @Override
     public ResultData deleteTour(BaseSceneParamVO param) throws Exception {
+        ScenePlus scenePlus = scenePlusService.getScenePlusByNum(param.getNum());
+        if(Objects.isNull(scenePlus)){
+            throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
+        }
+        ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
         String userEditPath = String.format(UploadFilePath.USER_EDIT_PATH, param.getNum());
         String tourJsonPath = userEditPath + "tour.json";
-        String tourJson = uploadToOssUtil.getObjectContent(bucket, tourJsonPath);
+        String tourJson = fYunFileService.getFileContent(scenePlusExt.getYunFileBucket(), tourJsonPath);
         JSONArray tours = JSON.parseArray(tourJson);
         if(CollUtil.isNotEmpty(tours)){
             List<String> fileNames = new ArrayList<>();
@@ -281,7 +286,7 @@ public class SceneEditServiceImpl implements ISceneEditService {
             }
         }
         //删除tour.json文件
-        uploadToOssUtil.delete(tourJsonPath);
+        fYunFileService.deleteFile(scenePlusExt.getYunFileBucket(), tourJsonPath);
 
         sceneEditInfoExtService.updateToursByNum(
             param.getNum(), Integer.valueOf(CommonStatus.NO.code()));

+ 37 - 39
src/main/java/com/fdkankan/scene/service/impl/SceneProServiceImpl.java

@@ -22,8 +22,8 @@ import com.fdkankan.common.util.ConvertUtils;
 import com.fdkankan.common.util.CreateObjUtil;
 import com.fdkankan.common.util.FileUtils;
 import com.fdkankan.common.util.OkHttpUtils;
-import com.fdkankan.fyun.constant.StorageType;
-import com.fdkankan.fyun.oss.UploadToOssUtil;
+import com.fdkankan.fyun.constant.FYunTypeEnum;
+import com.fdkankan.fyun.face.FYunFileServiceInterface;
 import com.fdkankan.redis.constant.RedisKey;
 import com.fdkankan.redis.constant.RedisLockKey;
 import com.fdkankan.redis.util.RedisLockUtil;
@@ -84,12 +84,10 @@ import org.springframework.web.multipart.MultipartFile;
 @Service
 public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro> implements ISceneProService {
 
-    @Value("${oss.prefix.ali}")
-    private String prefixAli;
-    @Value("${oss.prefix.url}")
+    @Value("${fyun.host}")
     private String ossUrlPrefix;
-    @Value("${upload.type}")
-    private String type;
+    @Value("${fyun.type}")
+    private String fyunType;
     @Value("${hot.domain.list}")
     private String hotDomainList;
     @Value("${hot.delete}")
@@ -112,26 +110,25 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     private String URL_UPGRADE_TO_V4_RESULT_SYNC;
 
     @Autowired
-    @Qualifier("uploadToOssUtil")
-    UploadToOssUtil uploadToOssUtil;
+    private FYunFileServiceInterface fYunFileService;
     @Autowired
-    RedisLockUtil redisLockUtil;
+    private RedisLockUtil redisLockUtil;
     @Autowired
     private RedisUtil redisUtil;
     @Autowired
-    ISceneDataDownloadService sceneDataDownloadService;
+    private ISceneDataDownloadService sceneDataDownloadService;
     @Autowired
-    ISceneProService sceneProService;
+    private ISceneProService sceneProService;
     @Autowired
-    ISceneEditInfoService sceneEditInfoService;
+    private ISceneEditInfoService sceneEditInfoService;
     @Autowired
-    ISceneEditControlsService sceneEditControlsService;
+    private ISceneEditControlsService sceneEditControlsService;
     @Autowired
-    IScenePlusService scenePlusService;
+    private IScenePlusService scenePlusService;
     @Autowired
-    IScenePlusExtService scenePlusExtService;
+    private IScenePlusExtService scenePlusExtService;
     @Autowired
-    ISceneUploadService sceneUploadService;
+    private ISceneUploadService sceneUploadService;
 
     @Transactional
     @Override
@@ -226,13 +223,13 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
 //        ScenePro scenePro = this.findBySceneNum(param.getNum());
         ScenePlus scenePlus = scenePlusService.getScenePlusByNum(param.getNum());
         if (scenePlus == null)
-            return ResultData.error(ErrorCode.FAILURE_CODE_5005);
+            throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
+        ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
 
         List<String> deleteSidList = param.getSidList();
 
-
         //处理删除状态数据
-        this.deleteHotData(param.getNum(), deleteSidList);
+        this.deleteHotData(param.getNum(), deleteSidList, scenePlusExt.getYunFileBucket());
 
         //写入本地文件,作为备份
         this.writeHotJson(param.getNum());
@@ -494,7 +491,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
 
 
-    private void deleteHotData(String num, List<String> deleteSidList) throws Exception {
+    private void deleteHotData(String num, List<String> deleteSidList, String bucket) throws Exception {
 
         this.syncHotFromFileToRedis(num);
 
@@ -520,18 +517,18 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
                 String fileType = jsonObject.getString("media");
                 if(fileType.contains("photo"))
                 {
-                    uploadToOssUtil.delete(userDataPath + "hot"+sid+".jpg");
+                    fYunFileService.deleteFile(bucket,userDataPath + "hot"+sid+".jpg");
                 }
                 if(fileType.contains("audio") || fileType.contains("voice"))
                 {
-                    uploadToOssUtil.delete(userDataPath + "hot"+sid+".mp3");
+                    fYunFileService.deleteFile(bucket,userDataPath + "hot"+sid+".mp3");
                 }
                 if(fileType.contains("video"))
                 {
-                    uploadToOssUtil.delete(userDataPath + "hot"+sid+".mp4");
+                    fYunFileService.deleteFile(bucket,userDataPath + "hot"+sid+".mp4");
                 }
             }
-            if(!StorageType.AWS.code().equals(this.type)){
+            if(!FYunTypeEnum.AWS.code().equals(this.fyunType)){
                 JSONObject paramData = new JSONObject();
                 paramData.put("hotId", sid);
                 JSONObject hotListJson = JSONObject.parseObject(OkHttpUtils.httpGet(hotDomainList));
@@ -618,6 +615,8 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         if (scenePlus == null ) {
             return ResultData.error(ErrorCode.FAILURE_CODE_5005);
         }
+        ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
+        String bucket = scenePlusExt.getYunFileBucket();
 
         JSONArray inputData = JSONObject.parseArray(param.getData());
 
@@ -630,9 +629,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         String modeldataUrl = ossUrlPrefix + viewImagesPath + "vision.modeldata?t=" + System.currentTimeMillis();
 
         //如果是云存储,将vision.modeldata下载到本地,如果是本地存储,场景计算完就已经将这个文件拷贝到编辑目录了存在这个文件了,不需要再下载
-        if(!StorageType.LOCAL.code().equals(this.type)){
-            FileUtils.downLoadFromUrl(modeldataUrl, "vision.modeldata", localDataPath);
-        }
+        fYunFileService.downloadFile(bucket, viewImagesPath + "vision.modeldata", localDataPath + "vision.modeldata");
 
         //检查vision.modeldata本地是否存在,不存在抛出异常
         File file = new File(localDataPath + "vision.modeldata");
@@ -662,7 +659,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         FileUtils.deleteFile(localDataPath + "vision.modeldata");
         FileUtils.writeFile(localDataPath + "vision.json", json.toString());
         ConvertUtils.convertTxtToVisionModelData(localDataPath + "vision.json", localDataPath + "vision.modeldata");
-        uploadToOssUtil.upload(localDataPath + "vision.modeldata", viewImagesPath + "vision.modeldata");
+        fYunFileService.uploadFile(bucket, localDataPath + "vision.modeldata", viewImagesPath + "vision.modeldata");
 
         //更新版本号
         SceneEditInfo editInfo = sceneEditInfoService.getByScenePlusId(scenePlus.getId());
@@ -673,7 +670,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         }else{
             sceneEditInfoService.upgradeVersionById(editInfo.getId());
             //更新scenejson缓存和oss文件版本号
-            sceneEditInfoService.upgradeSceneJsonVersion(param.getNum(), editInfo.getVersion() + 1, null);
+            sceneEditInfoService.upgradeSceneJsonVersion(param.getNum(), editInfo.getVersion() + 1, null, bucket);
         }
 
         //更新scene.json版本号
@@ -703,6 +700,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
         }
         ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
+        String bucket = scenePlusExt.getYunFileBucket();
 
         //文件上传的位置可以自定义
         String path = scenePlusExt.getDataSource() + "_obj2txt";
@@ -725,7 +723,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         }
 
         //算法计算完后,生成压缩文件,上传到oss
-        this.uploadFileofterRebuildPanoram(path, num);
+        this.uploadFileofterRebuildPanoram(path, num, bucket);
 
         //更新版本信息
         SceneEditInfo sceneEditInfo = sceneEditInfoService.getByScenePlusId(scenePlus.getId());
@@ -746,13 +744,12 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
                     .set(SceneEditInfo::getIsUploadObj, CommonStatus.YES.code())
                     .eq(SceneEditInfo::getId, sceneEditInfo.getId()));
 
-            sceneEditInfoService.upgradeSceneJsonVersion(num, sceneEditInfo.getVersion() + 1, sceneEditInfo.getImgVersion() + 1);
-        }
+            sceneEditInfoService.upgradeSceneJsonVersion(num, sceneEditInfo.getVersion() + 1, sceneEditInfo.getImgVersion() + 1, bucket);        }
 
         return ResultData.ok();
     }
 
-    private void uploadFileofterRebuildPanoram(String path, String sceneNum) throws Exception {
+    private void uploadFileofterRebuildPanoram(String path, String sceneNum, String bucket) throws Exception {
         //因为共享目录有延迟,这里循环检测算法是否计算完毕3次,每次隔五秒
         String uploadJsonPath = path + File.separator + "results" +File.separator+"upload.json";
         boolean exist = ComputerUtil.checkComputeCompleted(uploadJsonPath, maxCheckTimes, waitTime);
@@ -793,7 +790,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         map.put(path + File.separator + "results" +File.separator+ConstantFileName.modelUUID+"_50k.dam.lzma", imgViewPath +ConstantFileName.modelUUID+"_50k.dam.lzma");
         map.put(path + File.separator + "results" +File.separator+ConstantFileName.modelUUID+"_50k.dam", imgViewPath+ConstantFileName.modelUUID+"_50k.dam");
 
-        uploadToOssUtil.uploadMulFiles(map);
+        fYunFileService.uploadMulFiles(bucket, map);
     }
 
     private void writeDataJson(String path) throws IOException {
@@ -913,6 +910,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
         }
         ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
+        String bucket = scenePlusExt.getYunFileBucket();
 
         SceneEditInfo sceneEditInfo = sceneEditInfoService.getByScenePlusId(scenePlus.getId());
 
@@ -933,7 +931,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
             //打包
             ZipUtil.zip(newData, zipPath);
             //上传压缩包
-            uploadToOssUtil.upload(zipPath, "downloads/extras/" + zipName);
+            fYunFileService.uploadFile(bucket, zipPath, "downloads/extras/" + zipName);
             String url = ossUrlPrefix + "downloads/extras/" + zipName + "?t=" + Calendar.getInstance().getTimeInMillis();
             return ResultData.ok(url);
         }
@@ -978,7 +976,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
                 //打包
                 ZipUtil.zip(meshPath, zipPath);
                 //上传压缩包
-                uploadToOssUtil.upload(zipPath, "downloads/extras/" + zipName);
+                fYunFileService.uploadFile(bucket, zipPath, "downloads/extras/" + zipName);
                 String url = ossUrlPrefix + "downloads/extras/" + zipName + "?t=" + Calendar.getInstance().getTimeInMillis();
 //                FileUtil.del(zipPath);
                 return ResultData.ok(url);
@@ -1003,7 +1001,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
 
             ZipUtil.zip(editData, zipPath);
             //上传压缩包
-            uploadToOssUtil.upload(zipPath, "downloads/extras/" + zipName);
+            fYunFileService.uploadFile(bucket, zipPath, "downloads/extras/" + zipName);
             String url = ossUrlPrefix + "downloads/extras/" + zipName + "?t=" + Calendar.getInstance().getTimeInMillis();
             return ResultData.ok(url);
         }
@@ -1027,7 +1025,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
 
         ZipUtil.zip(dataPath, zipPath);
         //上传压缩包
-        uploadToOssUtil.upload(zipPath, "downloads/extras/" + zipName);
+        fYunFileService.uploadFile(bucket, zipPath, "downloads/extras/" + zipName);
         String url = ossUrlPrefix + "downloads/extras/" + zipName + "?t=" + Calendar.getInstance().getTimeInMillis();
         return ResultData.ok(url);
     }

+ 6 - 10
src/main/java/com/fdkankan/scene/service/impl/SceneUpgradeToV4Service.java

@@ -4,12 +4,12 @@ import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSON;
 import com.fdkankan.common.constant.ConstantFilePath;
 import com.fdkankan.common.response.ResultData;
-import com.fdkankan.fyun.oss.UploadToOssUtil;
+import com.fdkankan.fyun.face.FYunFileServiceInterface;
 import com.fdkankan.redis.constant.RedisKey;
-import com.fdkankan.redis.util.RedisLockUtil;
 import com.fdkankan.redis.util.RedisUtil;
 import com.fdkankan.scene.bean.SceneUpgradeProgressBean;
 import com.fdkankan.scene.entity.ScenePlus;
+import com.fdkankan.scene.entity.ScenePlusExt;
 import com.fdkankan.scene.entity.SceneRepairLog;
 import com.fdkankan.scene.service.IScenePlusExtService;
 import com.fdkankan.scene.service.IScenePlusService;
@@ -21,7 +21,6 @@ import java.util.Calendar;
 import java.util.Objects;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 /**
@@ -36,11 +35,6 @@ import org.springframework.stereotype.Service;
 @Service
 public class SceneUpgradeToV4Service implements ISceneUpgradeToV4Service {
 
-    @Value("${oss.bucket:4dkankan}")
-    private String bucket;
-
-    @Autowired
-    private RedisLockUtil redisLockUtil;
     @Autowired
     private ISceneRepairLogService sceneRepairLogService;
     @Autowired
@@ -52,7 +46,7 @@ public class SceneUpgradeToV4Service implements ISceneUpgradeToV4Service {
     @Autowired
     private IScenePlusExtService scenePlusExtService;
     @Autowired
-    private UploadToOssUtil uploadToOssUtil;
+    private FYunFileServiceInterface fYunFileService;
 
     private void upgradeLog(SceneRepairLog sceneRepairLog, String num, int status, String reason){
         //写入升级日志
@@ -83,6 +77,8 @@ public class SceneUpgradeToV4Service implements ISceneUpgradeToV4Service {
     @Override
     public ResultData getSceneViewInfo(String num) {
         ScenePlus scenePlus = scenePlusService.getScenePlusByNum(num);
+        ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
+        String bucket = scenePlusExt.getYunFileBucket();
         String key = String.format(RedisKey.SCENE_JSON, num);
         String sceneJson = redisUtil.get(key);
         SceneInfoVO sceneInfoVO = null;
@@ -101,7 +97,7 @@ public class SceneUpgradeToV4Service implements ISceneUpgradeToV4Service {
 
         //如果redis没找到,从scene.json中获取
         String objectName = String.format(ConstantFilePath.SCENE_VIEW_DATA_DATA_SCENEJSON, num);
-        String objectContent = uploadToOssUtil.getObjectContent(bucket, objectName);
+        String objectContent = fYunFileService.getFileContent(bucket, objectName);
         if(StrUtil.isEmpty(objectContent))
             return ResultData.ok();
         sceneInfoVO = JSON.parseObject(objectContent, SceneInfoVO.class);

+ 34 - 28
src/main/java/com/fdkankan/scene/service/impl/SceneUploadServiceImpl.java

@@ -8,15 +8,18 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.common.constant.ErrorCode;
 import com.fdkankan.common.constant.RecStatus;
 import com.fdkankan.common.constant.ServerCode;
-import com.fdkankan.common.constant.TbStatus;
 import com.fdkankan.common.constant.UploadFilePath;
 import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.response.ResultData;
 import com.fdkankan.common.util.BASE64DecodedMultipartFile;
 import com.fdkankan.common.util.FileUtil;
-import com.fdkankan.fyun.oss.UploadToOssUtil;
+import com.fdkankan.fyun.face.FYunFileServiceInterface;
+import com.fdkankan.scene.entity.ScenePlus;
+import com.fdkankan.scene.entity.ScenePlusExt;
 import com.fdkankan.scene.entity.SceneUpload;
 import com.fdkankan.scene.mapper.ISceneUploadMapper;
+import com.fdkankan.scene.service.IScenePlusExtService;
+import com.fdkankan.scene.service.IScenePlusService;
 import com.fdkankan.scene.service.ISceneUploadService;
 import com.fdkankan.scene.vo.DeleteFileParamVO;
 import com.fdkankan.scene.vo.UploadContentParamVO;
@@ -28,6 +31,7 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Objects;
 import java.util.Set;
 import java.util.UUID;
 import javax.annotation.Resource;
@@ -48,25 +52,17 @@ import org.springframework.web.multipart.MultipartFile;
 @Service
 public class SceneUploadServiceImpl extends ServiceImpl<ISceneUploadMapper, SceneUpload> implements ISceneUploadService {
 
-    @Resource
-    UploadToOssUtil uploadToOssUtil;
-    @Value("${oss.point:http://oss-cn-shenzhen-internal.aliyuncs.com}")
-    private String point;
-
-    @Value("${oss.key:LTAIUrvuHqj8pvry}")
-    private String key;
-
-    @Value("${oss.secrey:JLOVl0k8Ke0aaM8nLMMiUAZ3EiiqI4}")
-    private String secrey;
-
-    @Value("${oss.bucket:4dkankan}")
-    private String bucket;
-
-    @Value("${oss.prefix.url}")
+    @Value("${fyun.host}")
     private String ossUrlPrefix;
 
     @Autowired
+    private FYunFileServiceInterface fYunFileService;
+    @Autowired
     private SSOLoginHelper ssoLoginHelper;
+    @Autowired
+    private IScenePlusService scenePlusService;
+    @Autowired
+    private IScenePlusExtService scenePlusExtService;
 
     @Override
     public String uploads(String imgData,String fileName,String blzType,MultipartFile[] files,
@@ -87,6 +83,12 @@ public class SceneUploadServiceImpl extends ServiceImpl<ISceneUploadMapper, Scen
 
     @Override
     public ResultData delete(DeleteFileParamVO param) throws Exception {
+        ScenePlus scenePlus = scenePlusService.getScenePlusByNum(param.getNum());
+        if(Objects.isNull(scenePlus)){
+            throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
+        }
+        ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
+
         String userEditPath = String.format(UploadFilePath.USER_EDIT_PATH, param.getNum());
         List<String> filePaths = new ArrayList<>();
         Set<String> hasDelete = new HashSet<>();
@@ -97,7 +99,7 @@ public class SceneUploadServiceImpl extends ServiceImpl<ISceneUploadMapper, Scen
             hasDelete.add(fileName);
             String key = userEditPath + fileName;
             filePaths.add(key);
-            uploadToOssUtil.delete(key);
+            fYunFileService.deleteFile(scenePlusExt.getYunFileBucket(), key);
         }
 
         this.update(new LambdaUpdateWrapper<SceneUpload>()
@@ -110,17 +112,22 @@ public class SceneUploadServiceImpl extends ServiceImpl<ISceneUploadMapper, Scen
     }
 
     public String uploadFiles(String sendFileName,String bizType,List<MultipartFile> files,
-        String sceneCode, Integer type,Long userId, String uploadPath) throws Exception{
-        if (StrUtil.isEmpty(sceneCode))
+        String num, Integer type,Long userId, String uploadPath) throws Exception{
+        if (StrUtil.isEmpty(num))
             throw new BusinessException(ServerCode.PARAM_REQUIRED, "num");
         if(CollUtil.isEmpty(files))
             throw new BusinessException(ServerCode.PARAM_REQUIRED, "files");
         if(StrUtil.isEmpty(bizType))
             throw new BusinessException(ServerCode.PARAM_REQUIRED, "bizType");
+        ScenePlus scenePlus = scenePlusService.getScenePlusByNum(num);
+        if(Objects.isNull(scenePlus))
+            throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
+        ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
+        String bucket = scenePlusExt.getYunFileBucket();
 
         List<String> urlList = new ArrayList<>();
         if(type != null && 1 == type){
-            this.updateFileByPreFix(sceneCode,bizType);
+            this.updateFileByPreFix(num,bizType,bucket);
         }
         for (MultipartFile file : files) {
             String fileName = file.getOriginalFilename();
@@ -137,19 +144,18 @@ public class SceneUploadServiceImpl extends ServiceImpl<ISceneUploadMapper, Scen
             String newExtName = oldExtName.toLowerCase();
             realFileName = realFileName.substring(0, realFileName.lastIndexOf(oldExtName)) + newExtName;
 
-            String ossPath = StrUtil.isNotBlank(uploadPath) ? uploadPath : (String.format(UploadFilePath.USER_EDIT_PATH ,sceneCode) + realFileName);
+            String ossPath = StrUtil.isNotBlank(uploadPath) ? uploadPath : (String.format(UploadFilePath.USER_EDIT_PATH ,num) + realFileName);
             try {
-                uploadToOssUtil.upload2(newFile.getPath(),ossPath);
+                fYunFileService.uploadFile(bucket, newFile.getPath(), ossPath);
             }catch (Exception e){
                 log.error(ossPath+"上传文件失败"+e);
                 throw new BusinessException(ErrorCode.FAILURE_CODE_7013);
             }
-            //String url =String.format("http://%s.%s/%s", bucket, point.replace("http://",""), ossPath);
             urlList.add(realFileName);
 
             FileUtil.delFile(newFile.getPath());
             //添加记录
-            this.saveData(sceneCode,ossPath,bizType,userId);
+            this.saveData(num,ossPath,bizType,userId);
         }
         StringBuilder returnString = new StringBuilder();
         for (String res : urlList) {
@@ -161,7 +167,7 @@ public class SceneUploadServiceImpl extends ServiceImpl<ISceneUploadMapper, Scen
         return returnString.toString();
     }
 
-    private void updateFileByPreFix(String sceneCode, String blzType) {
+    private void updateFileByPreFix(String sceneCode, String blzType, String bucket) {
         LambdaQueryWrapper<SceneUpload> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(SceneUpload::getNum,sceneCode)
                 .eq(SceneUpload::getBizType,blzType);
@@ -170,7 +176,7 @@ public class SceneUploadServiceImpl extends ServiceImpl<ISceneUploadMapper, Scen
         if(list != null && list.size() >0){
             for (SceneUpload sceneUpload : list) {
                 try {
-                    uploadToOssUtil.delete(sceneUpload.getFilePath());
+                    fYunFileService.deleteFile(bucket, sceneUpload.getFilePath());
                     this.removeEntity(sceneUpload);
                 }catch (Exception e){
                     log.error(sceneUpload.getFilePath()+"删除oss文件失败",e);
@@ -208,7 +214,7 @@ public class SceneUploadServiceImpl extends ServiceImpl<ISceneUploadMapper, Scen
 
         File tempFile = File.createTempFile(UUID.randomUUID().toString(), suffix);
         cn.hutool.core.io.FileUtil.writeString(param.getContent(), tempFile, StandardCharsets.UTF_8);
-        uploadToOssUtil.upload(tempFile.getPath(), param.getOssPath());
+        fYunFileService.uploadFile(param.getBucket(), tempFile.getPath(), param.getOssPath());
         tempFile.deleteOnExit();
 
         return this.ossUrlPrefix + param.getOssPath();

+ 3 - 0
src/main/java/com/fdkankan/scene/vo/UploadContentParamVO.java

@@ -20,4 +20,7 @@ public class UploadContentParamVO {
     @NotBlank(message = "ossPath不能为空")
     private String ossPath;
 
+    @NotBlank(message = "bucket不能为空")
+    private String bucket;
+
 }

+ 2 - 2
src/main/resources/bootstrap-test.yml

@@ -16,7 +16,7 @@ spring:
             group: DEFAULT_GROUP
             refresh: true
 
-          - data-id: common-redis-config-52.yaml
+          - data-id: common-redis-config.yaml
             group: DEFAULT_GROUP
             refresh: true
 
@@ -24,7 +24,7 @@ spring:
             group: DEFAULT_GROUP
             refresh: true
 
-          - data-id: common-upload-config.yaml
+          - data-id: common-fyun-config.yaml
             group: DEFAULT_GROUP
             refresh: true
       discovery: