瀏覽代碼

场景中心业务代码迁移

dengsixing 3 年之前
父節點
當前提交
5e017b70ae
共有 25 個文件被更改,包括 1322 次插入673 次删除
  1. 4 4
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/goods/service/impl/CameraDetailServiceImpl.java
  2. 82 425
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/controller/SceneAppController.java
  3. 225 0
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/controller/SceneAppEditController.java
  4. 2 0
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/controller/SceneController.java
  5. 33 33
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/controller/SceneEditController.java
  6. 4 3
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/entity/ScenePro.java
  7. 6 6
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/entity/SceneProExt.java
  8. 12 12
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/ISceneAppService.java
  9. 4 0
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/ISceneFileBuildService.java
  10. 39 20
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/ISceneProAppService.java
  11. 29 27
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/ISceneProService.java
  12. 6 6
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/ISceneService.java
  13. 2 4
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/FolderSceneServiceImpl.java
  14. 2 2
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/Scene3dfamilyServiceImpl.java
  15. 12 12
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneAppServiceImpl.java
  16. 214 4
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneFileBuildServiceImpl.java
  17. 471 39
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneProAppServiceImpl.java
  18. 72 61
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneProServiceImpl.java
  19. 6 6
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneServiceImpl.java
  20. 87 0
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/vo/BuildSceneParamVO.java
  21. 4 0
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/vo/FileParamVO.java
  22. 1 1
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/vo/SceneEditVO.java
  23. 1 1
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/vo/SceneVO.java
  24. 4 4
      4dkankan-center-scene/src/main/resources/mapper/scene/SceneProMapper.xml
  25. 0 3
      4dkankan-common/src/main/java/com/fdkankan/common/response/BaseResponseAdvice.java

+ 4 - 4
4dkankan-center-platform/src/main/java/com/fdkankan/platform/goods/service/impl/CameraDetailServiceImpl.java

@@ -34,10 +34,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
 /**
 /**
@@ -382,6 +379,9 @@ public class CameraDetailServiceImpl extends ServiceImpl<ICameraDetailMapper, Ca
     @Override
     @Override
     public CameraDetail updateCameraDetailByCameraIdAndSpace(Long cameraId, Long space) {
     public CameraDetail updateCameraDetailByCameraIdAndSpace(Long cameraId, Long space) {
         CameraDetail cameraDetail = this.getByCameraId(cameraId);
         CameraDetail cameraDetail = this.getByCameraId(cameraId);
+        if(Objects.isNull(cameraDetail)){
+            return null;
+        }
         cameraDetail.setUsedSpace(cameraDetail.getUsedSpace() + space);
         cameraDetail.setUsedSpace(cameraDetail.getUsedSpace() + space);
         if(cameraDetail.getUsedSpace() < 0){
         if(cameraDetail.getUsedSpace() < 0){
             cameraDetail.setUsedSpace(0L);
             cameraDetail.setUsedSpace(0L);

+ 82 - 425
4dkankan-center-scene/src/main/java/com/fdkankan/scene/controller/SceneAppController.java

@@ -3,8 +3,11 @@ package com.fdkankan.scene.controller;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fdkankan.common.controller.BaseController;
 import com.fdkankan.common.controller.BaseController;
+import com.fdkankan.common.response.ResultData;
 import com.fdkankan.common.util.RubberSheetingUtil;
 import com.fdkankan.common.util.RubberSheetingUtil;
 import com.fdkankan.scene.service.*;
 import com.fdkankan.scene.service.*;
+import com.fdkankan.scene.vo.BuildSceneParamVO;
+import com.fdkankan.scene.vo.SceneParamVO;
 import com.fdkankan.scene.vo.SceneVO;
 import com.fdkankan.scene.vo.SceneVO;
 import com.fdkankan.scene.vo.UserParamVO;
 import com.fdkankan.scene.vo.UserParamVO;
 import lombok.extern.log4j.Log4j2;
 import lombok.extern.log4j.Log4j2;
@@ -16,6 +19,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.bind.annotation.RestController;
 
 
 import java.util.List;
 import java.util.List;
+import java.util.Map;
 
 
 /**
 /**
  * Created by Hb_zzZ on 2019/6/10.
  * Created by Hb_zzZ on 2019/6/10.
@@ -26,49 +30,9 @@ import java.util.List;
 public class SceneAppController extends BaseController {
 public class SceneAppController extends BaseController {
 
 
     @Autowired
     @Autowired
-    private ObjectMapper mapper;
-
-    @Autowired
-    private ISceneProService sceneProService;
-
-    @Autowired
-    private ISceneService sceneService;
-
-    @Autowired
-    private ISceneProEditService sceneProEditService;
-
-//    @Autowired
-//    private UserFeignClient userService;
-//
-//    @Autowired
-//    private IScene3dNumNewService numService;
-
-    @Autowired
-    private ISceneCooperationService sceneCooperationService;
-
-//    @Autowired
-//    private ModelingMsgProducer producer;
-
-    @Autowired
-    private RubberSheetingUtil rubberSheetingUtil;
-
-    @Value("${main.url}")
-    private String mainUrl;
-
-    @Value("${scene.url}")
-    private String sceneUrl;
-
-    @Value("${scene.pro.url}")
-    private String sceneProUrl;
-
-    @Value("${ecs.type}")
-    private String ecsType;
-
-//    @Autowired
-//    private SceneNumService sceneNumService;
-    
-    @Autowired
     private ISceneProAppService sceneProAppService;
     private ISceneProAppService sceneProAppService;
+    @Autowired
+    private ISceneFileBuildService sceneFileBuildService;
 
 
     /**
     /**
      * <p>
      * <p>
@@ -104,389 +68,82 @@ public class SceneAppController extends BaseController {
         return sceneProAppService.getAllForCameraName(user);
         return sceneProAppService.getAllForCameraName(user);
     }
     }
 
 
-//    /**
-//     * 获取相机的场景数量
-//     * @param user
-//     * @return
-//     */
-//    @ApiOperation("获取相机的场景数量")
-//    @ApiImplicitParams({
-//            @ApiImplicitParam(name = "appUserName", value = "相机设备码", dataType = "String"),
-//            @ApiImplicitParam(name = "appPassword", value = "相机密码", dataType = "String")
-//    })
-//    @PostMapping(value = "/getSceneCount")
-//    public Result getSceneCount(@RequestBody UserParamVO user) throws Exception {
-//
-//        if(StrUtil.isEmpty(user.getAppUserName()) || StrUtil.isEmpty(user.getAppPassword())){
-//            throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
-//        }
-//        Result result = goodsService.findByChildNameAndChildPassword(user.getAppUserName(), user.getAppPassword());
-//        if (result.getCode() == Result.CODE_FAILURE){
-//            return result;
-//        }
-//        CameraEntity cameraEntity = mapper.convertValue(result.getData(), CameraEntity.class);
-//        if(cameraEntity == null){
-//            throw new BusinessException(ErrorCode.FAILURE_CODE_3014);
-//        }
-//
-//        return Result.success(sceneProService.getSceneCount(cameraEntity.getId()));
-//    }
-//
-//    /**
-//     * 获取场景的状态
-//     * @param user
-//     * @return
-//     */
-//    @ApiOperation("获取场景的状态")
-//    @ApiImplicitParams({
-//            @ApiImplicitParam(name = "appUserName", value = "相机设备码", dataType = "String"),
-//            @ApiImplicitParam(name = "appPassword", value = "相机密码", dataType = "String"),
-//            @ApiImplicitParam(name = "sceneNum", value = "场景码", dataType = "String")
-//    })
-//    @PostMapping(value = "/getSceneStatus")
-//    public Result getSceneStatus(@RequestBody UserParamVO user) throws Exception {
-//
-//        if(StrUtil.isEmpty(user.getAppUserName()) || StrUtil.isEmpty(user.getAppPassword())
-//                || StrUtil.isEmpty(user.getSceneNum())){
-//            throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
-//        }
-//        Result result = goodsService.findByChildNameAndChildPassword(user.getAppUserName(), user.getAppPassword());
-//        if (result.getCode() == Result.CODE_FAILURE){
-//            return result;
-//        }
-//        CameraEntity cameraEntity = mapper.convertValue(result.getData(), CameraEntity.class);
-//        if(cameraEntity == null){
-//            throw new BusinessException(ErrorCode.FAILURE_CODE_3014);
-//        }
-//
-//        SceneProEntity scene = sceneProService.findBySceneNum(user.getSceneNum());
-//        if(scene == null){
-//            scene = sceneProService.findDeleteSceneBySceneNum(user.getSceneNum());
-//            if(scene == null){
-//                throw new BusinessException(SceneConstant.FAILURE_CODE_5005, SceneConstant.FAILURE_MSG_5005);
-//            }
-//            throw new BusinessException(SceneConstant.FAILURE_CODE_5006, SceneConstant.FAILURE_MSG_5006);
-//        }
-//
-//        return Result.success(scene.getStatus());
-//    }
-//
-//    /**
-//     * 获取8目场景的状态
-//     * @param user
-//     * @return
-//     */
-//    @ApiOperation("获取8目场景的状态")
-//    @ApiImplicitParams({
-//            @ApiImplicitParam(name = "appUserName", value = "相机设备码", dataType = "String"),
-//            @ApiImplicitParam(name = "appPassword", value = "相机密码", dataType = "String"),
-//            @ApiImplicitParam(name = "unicode", value = "unicode码", dataType = "String")
-//    })
-//    @PostMapping(value = "/getSceneStatusByUnicode")
-//    public Result getSceneStatusByUnicode(@RequestBody UserParamVO user) throws Exception {
-//        if(StrUtil.isEmpty(user.getAppUserName()) || StrUtil.isEmpty(user.getAppPassword())
-//                || StrUtil.isEmpty(user.getUnicode())){
-//            log.info("appUserName:" + user.getAppUserName() + ",appPassword:" + user.getAppPassword() +
-//                ",unicode:" + user.getUnicode());
-//            throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
-//        }
-//        Result result = goodsService.findByChildNameAndChildPassword(user.getAppUserName(), user.getAppPassword());
-//        if (result.getCode() == Result.CODE_FAILURE){
-//            return result;
-//        }
-//        CameraEntity cameraEntity = mapper.convertValue(result.getData(), CameraEntity.class);
-//        if(cameraEntity == null){
-//            throw new BusinessException(ErrorCode.FAILURE_CODE_3014);
-//        }
-//
-//        SceneProEntity scene = sceneProService.getSceneStatusByUnicode(user.getUnicode(), "A");
-//        if(scene == null){
-//            scene = sceneProService.getSceneStatusByUnicode(user.getUnicode(), "I");
-//            if(scene == null){
-//                throw new BusinessException(SceneConstant.FAILURE_CODE_5005, SceneConstant.FAILURE_MSG_5005);
-//            }
-//            throw new BusinessException(SceneConstant.FAILURE_CODE_5009, SceneConstant.FAILURE_MSG_5009);
-//        }
-//        if(scene.getPayStatus() == -2){
-//            throw new BusinessException(SceneConstant.FAILURE_CODE_5006, SceneConstant.FAILURE_MSG_5006);
-//        }
-//        // 当计算时,返回给前端的状态为计算中
-//        if (scene.getStatus() == -1) {
-//            scene.setStatus(0);
-//        } else if (scene.getStatus() == 500) {
-//            scene.setStatus(-1);
-//        }
-//        Map map = new HashMap();
-//        //临时将-2改成1,app还没完全更新
-//        map.put("status", scene.getStatus() == -2? 1 : scene.getStatus());
-//        map.put("webSite", scene.getWebSite());
-//        map.put("sceneNum", scene.getNum());
-//        map.put("thumb", scene.getThumb());
-//        map.put("dataSource", scene.getDataSource());
-//        map.put("payStatus", scene.getPayStatus());
-//        map.put("recStatus", scene.getRecStatus());
-//        return Result.success(map);
-//    }
-//
-//    /**
-//     * 删除某个场景
-//     * @param user
-//     * @return
-//     */
-//    @ApiOperation("删除某个场景")
-//    @ApiImplicitParams({
-//            @ApiImplicitParam(name = "cameraId", value = "相机id", dataType = "String"),
-//            @ApiImplicitParam(name = "sceneNum", value = "场景码", dataType = "String")
-//    })
-//    @PostMapping(value = "/deleteForCameraName")
-//    public Result deleteForCameraName(@RequestBody UserParamVO user) throws Exception {
-//        if (user.getCameraId() == null || StrUtil.isEmpty(user.getSceneNum())) {
-//            throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
-//        }
-//        CameraDetailEntity detailEntity = goodsService.findCameraDetailByCameraId(user.getCameraId());
-//        if (detailEntity == null) {
-//            throw new BusinessException(CameraConstant.FAILURE_CODE_6003, CameraConstant.FAILURE_MSG_6003);
-//        }
-//
-//        SceneProEntity scene = sceneProService.findBySceneNum(user.getSceneNum());
-//        if(scene == null){
-//            throw new BusinessException(SceneConstant.FAILURE_CODE_5005, SceneConstant.FAILURE_MSG_5005);
-//        }
-//
-//        if(scene.getCameraId().longValue() != user.getCameraId().longValue()){
-//            throw new BusinessException(SceneConstant.FAILURE_CODE_5010, SceneConstant.FAILURE_MSG_5010);
-//        }
-//
-//
-//        return userService.deleteScene(null, user.getSceneNum());
-//    }
-//
-//    /**
-//     * app保存录屏音频文件
-//     * @param scene
-//     * @return
-//     */
-//    @ApiOperation("app保存录屏音频文件")
-//    @ApiImplicitParams({
-//            @ApiImplicitParam(name = "screencapMusic", value = "普通录屏音频文件地址", dataType = "String"),
-//            @ApiImplicitParam(name = "originalFileName", value = "文件名称", dataType = "String"),
-//            @ApiImplicitParam(name = "sceneNum", value = "场景码", dataType = "String")
-//    })
-//    @PostMapping(value = "/getScreencapVoice")
-//    public Result getScreencapVoice(@RequestBody RequestScene scene) throws Exception {
-//        if (StrUtil.isEmpty(scene.getScreencapMusic()) || StrUtil.isEmpty(scene.getOriginalFileName())
-//                || StrUtil.isEmpty(scene.getSceneNum())) {
-//            throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
-//        }
-//
-//        SceneProEntity sceneProEntity = sceneProService.findBySceneNum(scene.getSceneNum());
-//        if(sceneProEntity == null){
-//            throw new BusinessException(SceneConstant.FAILURE_CODE_5005, SceneConstant.FAILURE_MSG_5005);
-//        }
-//
-//        SceneProEditEntity updateScene = sceneProEditService.findByProId(sceneProEntity.getId());
-//
-//        //八目存放新的录音位置
-//        long time = System.currentTimeMillis();
-//        Map<String, Object> map = new HashMap();
-//        map.put("screencapVoiceSoundsyncFileName", scene.getScreencapMusic() + ".mp3");
-//        map.put("screencapVoiceSoundsync", scene.getOriginalFileName() + "?t=" + time);
-//        log.info("微信上传的音频路径:" + scene.getOriginalFileName() + "?t=" + time);
-//        map.put("screencapVoiceType", "soundsync");
-//        map.put("version", updateScene.getVersion() + 1);
-//
-//        StringBuffer dataBuffer = new StringBuffer(ConstantFilePath.SCENE_PATH)
-//                .append("data").append(File.separator)
-//                .append("data").append(scene.getSceneNum());
-//        FileUtils.writeJsonFile(dataBuffer.append(File.separator).append("scene.json").toString(), map);
-//
-//        updateScene.setScreencapVoiceSoundsync(scene.getOriginalFileName() + "?t=" + time);
-//        updateScene.setScreencapVoiceType("soundsync");
-//        updateScene.setVersion(updateScene.getVersion() + 1);
-//
-//        FileUtils.downLoadFromUrl(scene.getOriginalFileName() + "?t=" + time, scene.getScreencapMusic() + ".mp3",
-//                ConstantFilePath.SCENE_PATH+ "voice" + File.separator + "voice" + scene.getSceneNum());
-//        return Result.success(sceneProEditService.update(updateScene));
-//    }
-//
-//    /**
-//     * app获取用户所有场景
-//     * @param user
-//     * @return
-//     */
-//    @ApiOperation("app获取用户所有场景")
-//    @PostMapping(value = "/getAllSceneByUserName")
-//    @ApiImplicitParams({
-//            @ApiImplicitParam(name = "phoneNum", value = "用户名(手机号)", dataType = "String"),
-//            @ApiImplicitParam(name = "cameraType", value = "相机类型,1双目,4八目", dataType = "String")
-//    })
-//    public Result<List<ResponseScene>> getAllSceneByUserName(@RequestBody UserParamVO user) throws Exception {
-//        if (StrUtil.isEmpty(user.getPhoneNum())) {
-//            throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
-//        }
-//
-//        Result userResult = userService.findByUserName(user.getPhoneNum());
-//        if(userResult.getCode() == Result.CODE_FAILURE){
-//            return userResult;
-//        }
-//
-//        SSOUser ssoUser = mapper.convertValue(userResult.getData(), SSOUser.class);
-//        if (ssoUser == null) {
-//            throw new BusinessException(ErrorCode.FAILURE_CODE_3015);
-//        }
-//
-//        if(user.getCameraType() == null){
-//            user.setCameraType(4);
-//        }
-//        List<SceneProEntity> list = sceneProService.findByUserIdAndCameraType(ssoUser.getId(), user.getCameraType());
-//
-//        List<ResponseScene> sceneList = sceneProService.convert(list);
-//        CameraEntity camera = null;
-//        for(ResponseScene responseScene : sceneList){
-//            camera = goodsService.findCameraById(responseScene.getCameraId());
-//            if(camera != null){
-//                responseScene.setChildName(camera.getChildName());
-//            }
-//        }
-//        return Result.success(sceneList);
-//    }
-//
-//    /**
-//     * 场景建模
-//     */
-//    @ApiOperation("场景建模")
-//    @ApiImplicitParams({
-//            @ApiImplicitParam(name = "unicode", value = "unicode码", dataType = "String"),
-//            @ApiImplicitParam(name = "cameraName", value = "相机编码", dataType = "String"),
-//            @ApiImplicitParam(name = "phoneId", value = "phoneId", dataType = "String"),
-//            @ApiImplicitParam(name = "sceneKey", value = "大场景秘钥", dataType = "String"),
-//            @ApiImplicitParam(name = "prefix", value = "zip文件下载地址前缀", dataType = "String"),
-//            @ApiImplicitParam(name = "fileName", value = "文件名zip.Zip", dataType = "String"),
-//            @ApiImplicitParam(name = "sceneName", value = "大场景名称", dataType = "String"),
-//            @ApiImplicitParam(name = "sceneDec", value = "大场景描述", dataType = "String"),
-//            @ApiImplicitParam(name = "sceneType", value = "大场景类型", dataType = "String"),
-//            @ApiImplicitParam(name = "shootCount", value = "拍摄点位数", dataType = "String"),
-//            @ApiImplicitParam(name = "gps", value = "gps", dataType = "String"),
-//            @ApiImplicitParam(name = "thumb", value = "场景缩略图", dataType = "String"),
-//            @ApiImplicitParam(name = "algorithm", value = "sfm或slam", dataType = "String")
-//    })
-//    @PostMapping(value = "/buildScene")
-//    public Result buildScene(@RequestBody RequestBuildScene buildScene) throws Exception {
-//        if(StrUtil.isEmpty(buildScene.getUnicode()) || StrUtil.isEmpty(buildScene.getCameraName()) ||
-//                StrUtil.isEmpty(buildScene.getSceneKey()) ||
-//                StrUtil.isEmpty(buildScene.getPrefix()) || StrUtil.isEmpty(buildScene.getFileName()) ||
-//                StrUtil.isEmpty(buildScene.getSceneName()) || StrUtil.isEmpty(buildScene.getSceneDec()) ||
-//                buildScene.getSceneType() == null || buildScene.getShootCount() == null ||
-//                StrUtil.isEmpty(buildScene.getThumb()) || StrUtil.isEmpty(buildScene.getAlgorithm()) ){
-//            throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
-//        }
-//        String sceneNum = null;
-//        try{
-//            sceneNum = sceneNumService.generateSceneNum();
-//            if(sceneNum == null){
-//                log.error("大场景序号为空:" + sceneNum);
-//                throw new BusinessException(SceneConstant.FAILURE_CODE_5005, SceneConstant.FAILURE_MSG_5005);
-//            }
-//
-//            log.info("查询相机:" + buildScene.getCameraName());
-//            CameraEntity cameraEntity = goodsService.findByChildName(buildScene.getCameraName());
-//
-//            if(cameraEntity ==  null){
-//                log.error("该相机不存在:" + buildScene.getCameraName());
-//                throw new BusinessException(CameraConstant.FAILURE_CODE_6003, CameraConstant.FAILURE_MSG_6003);
-//            }
-//
-//            CameraDetailEntity detailEntity = goodsService.findCameraDetailByCameraId(cameraEntity.getId());
-//
-//            int balance = Integer.valueOf(detailEntity.getBalance());
-//            if(balance - Constant.MONEY_SCENE <0){
-//                log.error("相机点数不足:" + buildScene.getCameraName());
-//                throw new BusinessException(CameraConstant.FAILURE_CODE_6006, CameraConstant.FAILURE_MSG_6006);
-//            }
-//
-//            Result result = userService.findById(detailEntity.getUserId());
-//            SSOUser user = mapper.convertValue(result.getData(), SSOUser.class);
-//            if(user == null){
-//                log.error("用户id不存在:" + detailEntity.getUserId());
-//                throw new BusinessException(ErrorCode.FAILURE_CODE_3015);
-//            }
-//            SceneEntity sceneProEntity = ComputerUtil.createScene(sceneNum, cameraEntity.getId(), cameraEntity.getChildName(), buildScene.getPhoneId(),
-//                    buildScene.getSceneKey(), buildScene.getUnicode(), detailEntity.getGoodsId(), "0", buildScene.getPrefix(),
-//                    buildScene.getFileName(), buildScene.getThumb(), "0", detailEntity.getUserId(), user.getUserName(),
-//                    buildScene.getAlgorithm(), buildScene.getShootCount(), buildScene.getSceneName(),
-//                    buildScene.getSceneDec(), buildScene.getSceneType(), buildScene.getGps(), sceneService, 0, producer, mainUrl + sceneUrl, ecsType, rubberSheetingUtil);
-//
-//            return Result.success(sceneProEntity);
-//        }catch (Exception e){
-//            log.error("增加大场景失败:" + sceneNum);
-//            sceneProService.updateStatus(sceneNum, -1);
-//            throw new BusinessException(SceneConstant.FAILURE_CODE_5011, SceneConstant.FAILURE_MSG_5011);
-//        }
-//    }
-//
-//    /**
-//     * 协作的场景
-//     * @return
-//     */
-//    @ApiOperation("协作的场景")
-//    @PostMapping(value = "/cooperationSceneList")
-//    @ApiImplicitParams({
-//            @ApiImplicitParam(name = "phoneNum", value = "用户名(手机号)", dataType = "String"),
-//            @ApiImplicitParam(name = "cameraType", value = "相机类型,1双目,4八目", dataType = "String")
-//    })
-//    public Result cooperationSceneList(@RequestBody UserParamVO user) throws Exception{
-//        if (StrUtil.isEmpty(user.getPhoneNum())) {
-//            throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
-//        }
-//
-//        Result userResult = userService.findByUserName(user.getPhoneNum());
-//        if(userResult.getCode() == Result.CODE_FAILURE){
-//            return userResult;
-//        }
-//
-//        SSOUser ssoUser = mapper.convertValue(userResult.getData(), SSOUser.class);
-//        if (ssoUser == null) {
-//            throw new BusinessException(ErrorCode.FAILURE_CODE_3015);
-//        }
-//
-//        if(user.getCameraType() == null){
-//            user.setCameraType(4);
-//        }
-//
-//        Condition condition = new Condition(SceneCooperationEntity.class);
-//        condition.and().andEqualTo("userId", ssoUser.getId());
-//        condition.orderBy("id").desc();
-//        List<SceneCooperationEntity> list = sceneCooperationService.findAll(condition);
-//
-//        if(list == null || list.size() <= 0){
-//            return Result.success();
-//        }
-//
-//        StringBuilder nums = new StringBuilder();
-//        SceneCooperationEntity cooperationEntity = null;
-//        for(int i = 0, len = list.size(); i < len; i++){
-//            cooperationEntity = list.get(i);
-//            if(i != len - 1){
-//                nums.append("'").append(cooperationEntity.getSceneNum()).append("'").append(",");
-//            }else {
-//                nums.append("'").append(cooperationEntity.getSceneNum()).append("'");
-//            }
-//        }
-//
-//        List<SceneProEntity>  sceneProEntityList = sceneProService.findBySceneNums(nums.toString(), user.getCameraType());
-//
-//        List<ResponseScene> responseScenes = sceneProService.convert(sceneProEntityList);
-//        CameraEntity cameraEntity = null;
-//        for(ResponseScene responseScene : responseScenes){
-//            cameraEntity = goodsService.findCameraById(responseScene.getCameraId());
-//            if(cameraEntity != null){
-//                responseScene.setChildName(cameraEntity.getChildName());
-//                responseScene.setSnCode(cameraEntity.getSnCode());
-//            }
-//        }
-//
-//        return Result.success(responseScenes);
-//    }
+    /**
+     * 获取相机的场景数量
+     * @param user
+     * @return
+     */
+    @PostMapping(value = "/getSceneCount")
+    public Long getSceneCount(@RequestBody UserParamVO user) throws Exception {
+        return sceneProAppService.getSceneCount(user);
+    }
+
+    /**
+     * 获取场景的状态
+     * @param user
+     * @return
+     */
+    @PostMapping(value = "/getSceneStatus")
+    public Integer getSceneStatus(@RequestBody UserParamVO user) throws Exception {
+        return sceneProAppService.getSceneStatus(user);
+    }
+
+    /**
+     * 获取8目场景的状态
+     * @param user
+     * @return
+     */
+    @PostMapping(value = "/getSceneStatusByUnicode")
+    public Map<String, Object> getSceneStatusByUnicode(@RequestBody UserParamVO user) throws Exception {
+        return sceneProAppService.getSceneStatusByUnicode(user);
+    }
+
+    /**
+     * 删除某个场景
+     * @param user
+     * @return
+     */
+    @PostMapping(value = "/deleteForCameraName")
+    public ResultData deleteForCameraName(@RequestBody UserParamVO user) throws Exception {
+        return sceneProAppService.deleteForCameraName(user);
+    }
+
+    /**
+     * app保存录屏音频文件
+     * @param scene
+     * @return
+     */
+    @PostMapping(value = "/getScreencapVoice")
+    public ResultData getScreencapVoice(@RequestBody SceneParamVO scene) throws Exception {
+        return sceneProAppService.getScreencapVoice(scene);
+    }
+
+    /**
+     * app获取用户所有场景
+     * @param user
+     * @return
+     */
+    @PostMapping(value = "/getAllSceneByUserName")
+    public List<SceneVO> getAllSceneByUserName(@RequestBody UserParamVO user) throws Exception {
+        return sceneProAppService.getAllSceneByUserName(user);
+    }
+
+    /**
+     * 场景建模
+     */
+    @PostMapping(value = "/buildScene")
+    public ResultData buildScene(@RequestBody BuildSceneParamVO buildScene) throws Exception {
+        return sceneFileBuildService.buildScene(buildScene);
+    }
+
+    /**
+     * 协作的场景
+     * @return
+     */
+    @PostMapping(value = "/cooperationSceneList")
+    public ResultData cooperationSceneList(@RequestBody UserParamVO user) throws Exception{
+        return sceneProAppService.cooperationSceneList(user);
+    }
 
 
 
 
 }
 }

+ 225 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/controller/SceneAppEditController.java

@@ -0,0 +1,225 @@
+package com.fdkankan.scene.controller;
+
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.scene.service.ISceneProAppService;
+import com.fdkankan.scene.vo.FileParamVO;
+import com.fdkankan.scene.vo.SceneEditParamVO;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * Created by Hb_zzZ on 2019/6/28.
+ */
+
+@Log4j2
+@RestController
+@RequestMapping("/api/scene/edit/forApp")
+public class SceneAppEditController {
+
+    @Autowired
+    private ISceneProAppService sceneProAppService;
+
+    /**
+     * 保存初始页面
+     * @return
+     */
+    @PostMapping(value = "/saveInitialPage")
+    public ResultData saveInitialPage(@RequestBody SceneEditParamVO param) throws Exception {
+        return sceneProAppService.saveInitialPage(param);
+    }
+
+    /**
+     * 保存地面logo
+     * @return
+     */
+    @PostMapping(value = "/saveFloorLogo")
+    public ResultData saveFloorLogo(@RequestBody SceneEditParamVO param) throws Exception {
+        return sceneProAppService.saveFloorLogo(param);
+    }
+
+    /**
+     * 保存场景热点
+     * @return
+     */
+    @PostMapping(value = "/saveHot")
+    public ResultData saveHot(@RequestBody SceneEditParamVO param) throws Exception {
+        return sceneProAppService.saveHot(param);
+    }
+
+    /**
+     * 保存背景音乐(只是编辑页面生效)
+     * @return
+     */
+    @PostMapping(value = "/saveBackgroundMusic")
+    public ResultData saveBackgroundMusic(@RequestBody SceneEditParamVO param) throws Exception {
+        return sceneProAppService.saveBackgroundMusic(param);
+    }
+
+    /**
+     * 保存编辑的数据并生效
+     * @return
+     */
+    @PostMapping(value = "/saveSceneInfo")
+    public ResultData saveSceneInfo(@RequestBody SceneEditParamVO param) throws Exception {
+        return sceneProAppService.saveSceneInfo(param);
+    }
+
+    /**
+     * 修改场景秘钥
+     * @return
+     */
+    @PostMapping(value = "/saveSceneKey")
+    public ResultData saveSceneKey(@RequestBody SceneEditParamVO param) throws Exception {
+        return sceneProAppService.saveSceneKey(param);
+    }
+
+    /**
+     * 单独保存tourList
+     * @return
+     */
+    @PostMapping(value = "/saveTourList")
+    public ResultData saveTourList(@RequestBody SceneEditParamVO param) throws Exception {
+        return sceneProAppService.saveTourList(param);
+    }
+
+    /**
+     * 上传图片多媒体数据,直接到七牛云
+     * @param file
+     * @return
+     */
+    @PostMapping(value = "/uploadPic")
+    public ResultData uploadPic(@RequestBody FileParamVO param, @RequestParam("file") MultipartFile file) throws Exception {
+        return sceneProAppService.uploadPic(param.getSceneNum(), param.getFolderName(), file);
+    }
+
+    /**
+     * 上传音频
+     * @param file
+     * @return
+     */
+    @PostMapping(value = "/uploadScreencapVoice")
+    public ResultData uploadScreencapVoice(@RequestBody FileParamVO param, @RequestParam("file")  MultipartFile file) throws Exception {
+        return sceneProAppService.uploadScreencapVoice(param.getSceneNum(), file);
+    }
+
+    /**
+     * 增加热点媒体文件
+     * @return
+     */
+    @PostMapping(value = "/saveScreencapFile")
+    public ResultData saveScreencapFile(@RequestBody SceneEditParamVO param) throws Exception {
+        return sceneProAppService.saveScreencapFile(param);
+    }
+
+    /**
+     * 保存热点可见性的数据
+     * @return
+     *
+     */
+    @PostMapping(value = "/saveHotVisible")
+    public ResultData saveHotVisible(@RequestBody SceneEditParamVO param) throws Exception {
+        return sceneProAppService.saveHotVisible(param);
+    }
+
+    /**
+     * 漫游可行
+     * @return
+     */
+    @PostMapping(value = "/saveLinkPano")
+    public ResultData saveLinkPano(@RequestBody SceneEditParamVO param) throws Exception {
+        return sceneProAppService.saveLinkPano(param);
+    }
+
+    /**
+     * 获取从微信服务器的音频
+     * @return
+     */
+    @PostMapping(value = "/getRecordAudioFromWeixin")
+    public ResultData getRecordAudioFromWeixin(@RequestBody SceneEditParamVO param) throws Exception {
+        return sceneProAppService.getRecordAudioFromWeixin(param);
+    }
+
+    /**
+     * V3版本获取从微信服务器的音频
+     * @return
+     */
+    @PostMapping(value = "/getRecordAudioFromWeixinV3")
+    public ResultData getRecordAudioFromWeixinV3(@RequestBody FileParamVO param) throws Exception {
+        return sceneProAppService.getRecordAudioFromWeixinV3(param);
+    }
+
+    /**
+     * V3版本获取app上传的音频
+     * @return
+     */
+    @PostMapping(value = "/getRecordAudioFromAppV3")
+    public ResultData getRecordAudioFromAppV3(@RequestBody FileParamVO param) throws Exception {
+        return sceneProAppService.getRecordAudioFromAppV3(param);
+    }
+
+    /**
+     * App端删除某部分音频
+     * @return
+     */
+    @PostMapping(value = "/deleteRecordAudioPart")
+    public ResultData deleteRecordAudioPart(@RequestBody FileParamVO param) throws Exception {
+        return sceneProAppService.deleteRecordAudioPart(param);
+    }
+
+    /**
+     * 新增画墙重建模型(钟文)
+     */
+    @PostMapping(value = "/uploadFloorJsonAndRebuild")
+    public ResultData uploadFloorJsonAndRebuild(@RequestBody SceneEditParamVO param) throws Exception{
+        return sceneProAppService.uploadFloorJsonAndRebuild(param);
+    }
+
+
+    /**
+     * 保存场景热点
+     * @return
+     */
+    @PostMapping(value = "/saveScreencapData")
+    public ResultData saveScreencapData(@RequestBody SceneEditParamVO param) throws Exception {
+        return sceneProAppService.saveScreencapData(param);
+    }
+
+    /**
+     * 保存场景热点
+     * @return
+     */
+    @PostMapping(value = "/saveAllVisi")
+    public ResultData saveAllVisi(@RequestBody SceneEditParamVO param) throws Exception {
+        return sceneProAppService.saveAllVisi(param);
+    }
+
+    /**
+     * 上传图片多媒体数据,直接到七牛云
+     * @param file
+     * @return
+     */
+    @PostMapping(value = "/uploadFloorplanPng")
+    public ResultData uploadFloorplanPng(@RequestBody FileParamVO param, @RequestParam("file") MultipartFile file) throws Exception {
+        return sceneProAppService.uploadFloorplanPng(param.getSceneNum(), file, param.getCadInfo());
+    }
+
+    /**
+     * 上传场景背景音乐
+     */
+    @PostMapping(value = "/uploadBgMusic")
+    public ResultData uploadBgMusic(@RequestBody FileParamVO param, @RequestParam("file") MultipartFile file) throws Exception{
+        return sceneProAppService.uploadBgMusic(param.getSceneNum(), param.getFileName(), file);
+    }
+
+    /**
+     * 删除上传的场景背景音乐
+     */
+    @PostMapping(value = "/deleteUploadBgMusic")
+    public ResultData deleteUploadBgMusic(@RequestBody FileParamVO param) throws Exception{
+        return sceneProAppService.deleteUploadBgMusic(param.getSceneNum());
+    }
+
+
+}

+ 2 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/controller/SceneController.java

@@ -34,5 +34,7 @@ public class SceneController {
         return sceneProService.getInfo(sceneNum);
         return sceneProService.getInfo(sceneNum);
     }
     }
 
 
+
+
 }
 }
 
 

+ 33 - 33
4dkankan-center-scene/src/main/java/com/fdkankan/scene/controller/SceneEditController.java

@@ -2,7 +2,7 @@ package com.fdkankan.scene.controller;
 
 
 import com.fdkankan.common.controller.BaseController;
 import com.fdkankan.common.controller.BaseController;
 import com.fdkankan.scene.service.ISceneProService;
 import com.fdkankan.scene.service.ISceneProService;
-import com.fdkankan.scene.vo.SceneEditVO;
+import com.fdkankan.scene.vo.SceneEditParamVO;
 import com.fdkankan.common.response.ResultData;
 import com.fdkankan.common.response.ResultData;
 import com.fdkankan.scene.vo.FileParamVO;
 import com.fdkankan.scene.vo.FileParamVO;
 import lombok.extern.log4j.Log4j2;
 import lombok.extern.log4j.Log4j2;
@@ -28,12 +28,12 @@ public class SceneEditController extends BaseController {
      * </p>
      * </p>
      * @author dengsixing
      * @author dengsixing
      * @date 2022/1/12
      * @date 2022/1/12
-     * @param sceneEditVO
+     * @param sceneEditParamVO
      * @return com.fdkankan.common.response.ResultData
      * @return com.fdkankan.common.response.ResultData
      **/
      **/
     @PostMapping(value = "/saveSceneInfo")
     @PostMapping(value = "/saveSceneInfo")
-    public ResultData saveSceneInfo(@RequestBody SceneEditVO sceneEditVO) throws Exception {
-        return sceneProService.saveSceneInfo(sceneEditVO);
+    public ResultData saveSceneInfo(@RequestBody SceneEditParamVO sceneEditParamVO) throws Exception {
+        return sceneProService.saveSceneInfo(sceneEditParamVO);
     }
     }
 
 
     /**
     /**
@@ -42,12 +42,12 @@ public class SceneEditController extends BaseController {
      * </p>
      * </p>
      * @author dengsixing
      * @author dengsixing
      * @date 2022/1/12
      * @date 2022/1/12
-     * @param sceneEditVO
+     * @param sceneEditParamVO
      * @return com.fdkankan.common.response.ResultData
      * @return com.fdkankan.common.response.ResultData
      **/
      **/
     @PostMapping(value = "/saveTourList")
     @PostMapping(value = "/saveTourList")
-    public ResultData saveTourList(@RequestBody SceneEditVO sceneEditVO) throws Exception {
-        return sceneProService.saveTourList(sceneEditVO);
+    public ResultData saveTourList(@RequestBody SceneEditParamVO sceneEditParamVO) throws Exception {
+        return sceneProService.saveTourList(sceneEditParamVO);
     }
     }
 
 
     /**
     /**
@@ -56,12 +56,12 @@ public class SceneEditController extends BaseController {
      * </p>
      * </p>
      * @author dengsixing
      * @author dengsixing
      * @date 2022/1/12
      * @date 2022/1/12
-     * @param sceneEditVO
+     * @param sceneEditParamVO
      * @return com.fdkankan.common.response.ResultData
      * @return com.fdkankan.common.response.ResultData
      **/
      **/
     @PostMapping(value = "/deleteScreencap")
     @PostMapping(value = "/deleteScreencap")
-    public ResultData deleteScreencap(@RequestBody SceneEditVO sceneEditVO) throws Exception {
-        return sceneProService.deleteScreencap(sceneEditVO);
+    public ResultData deleteScreencap(@RequestBody SceneEditParamVO sceneEditParamVO) throws Exception {
+        return sceneProService.deleteScreencap(sceneEditParamVO);
     }
     }
 
 
     /**
     /**
@@ -70,12 +70,12 @@ public class SceneEditController extends BaseController {
      * </p>
      * </p>
      * @author dengsixing
      * @author dengsixing
      * @date 2022/1/12
      * @date 2022/1/12
-     * @param sceneEditVO
+     * @param sceneEditParamVO
      * @return com.fdkankan.common.response.ResultData
      * @return com.fdkankan.common.response.ResultData
      **/
      **/
     @PostMapping(value = "/deleteScreencapVoiceNew")
     @PostMapping(value = "/deleteScreencapVoiceNew")
-    public ResultData deleteScreencapVoiceNew(@RequestBody SceneEditVO sceneEditVO) throws Exception {
-        return sceneProService.deleteScreencapVoice(sceneEditVO);
+    public ResultData deleteScreencapVoiceNew(@RequestBody SceneEditParamVO sceneEditParamVO) throws Exception {
+        return sceneProService.deleteScreencapVoice(sceneEditParamVO);
     }
     }
 
 
     /**
     /**
@@ -134,7 +134,7 @@ public class SceneEditController extends BaseController {
      * @return com.fdkankan.common.response.ResultData
      * @return com.fdkankan.common.response.ResultData
      **/
      **/
     @PostMapping(value = "/getScreencapVoice")
     @PostMapping(value = "/getScreencapVoice")
-    public ResultData getScreencapVoice(@RequestBody SceneEditVO param) throws Exception {
+    public ResultData getScreencapVoice(@RequestBody SceneEditParamVO param) throws Exception {
         return sceneProService.getScreencapVoice(param);
         return sceneProService.getScreencapVoice(param);
     }
     }
 
 
@@ -148,7 +148,7 @@ public class SceneEditController extends BaseController {
      * @return com.fdkankan.common.response.ResultData
      * @return com.fdkankan.common.response.ResultData
      **/
      **/
     @PostMapping(value = "/saveInitialPage")
     @PostMapping(value = "/saveInitialPage")
-    public ResultData saveInitialPage(@RequestBody SceneEditVO param) throws Exception {
+    public ResultData saveInitialPage(@RequestBody SceneEditParamVO param) throws Exception {
         return sceneProService.saveInitialPage(param);
         return sceneProService.saveInitialPage(param);
     }
     }
 
 
@@ -162,7 +162,7 @@ public class SceneEditController extends BaseController {
      * @return com.fdkankan.common.response.ResultData
      * @return com.fdkankan.common.response.ResultData
      **/
      **/
     @PostMapping(value = "/saveBackgroundMusic")
     @PostMapping(value = "/saveBackgroundMusic")
-    public ResultData saveBackgroundMusic(@RequestBody SceneEditVO param) throws Exception {
+    public ResultData saveBackgroundMusic(@RequestBody SceneEditParamVO param) throws Exception {
         return sceneProService.saveBackgroundMusic(param);
         return sceneProService.saveBackgroundMusic(param);
     }
     }
 
 
@@ -176,7 +176,7 @@ public class SceneEditController extends BaseController {
      * @return com.fdkankan.common.response.ResultData
      * @return com.fdkankan.common.response.ResultData
      **/
      **/
     @PostMapping(value = "/saveFloorLogo")
     @PostMapping(value = "/saveFloorLogo")
-    public ResultData saveFloorLogo(@RequestBody SceneEditVO param) throws Exception {
+    public ResultData saveFloorLogo(@RequestBody SceneEditParamVO param) throws Exception {
         return sceneProService.saveFloorLogo(param);
         return sceneProService.saveFloorLogo(param);
     }
     }
 
 
@@ -190,7 +190,7 @@ public class SceneEditController extends BaseController {
      * @return com.fdkankan.common.response.ResultData
      * @return com.fdkankan.common.response.ResultData
      **/
      **/
     @PostMapping(value = "/saveHot")
     @PostMapping(value = "/saveHot")
-    public ResultData saveHot(@RequestBody SceneEditVO param) throws Exception {
+    public ResultData saveHot(@RequestBody SceneEditParamVO param) throws Exception {
         return sceneProService.saveHot(param);
         return sceneProService.saveHot(param);
     }
     }
 
 
@@ -204,7 +204,7 @@ public class SceneEditController extends BaseController {
      * @return com.fdkankan.common.response.ResultData
      * @return com.fdkankan.common.response.ResultData
      **/
      **/
     @PostMapping(value = "/saveShopHot")
     @PostMapping(value = "/saveShopHot")
-    public ResultData saveShopHot(@RequestBody SceneEditVO param) throws Exception {
+    public ResultData saveShopHot(@RequestBody SceneEditParamVO param) throws Exception {
         return sceneProService.saveShopHot(param);
         return sceneProService.saveShopHot(param);
     }
     }
 
 
@@ -218,7 +218,7 @@ public class SceneEditController extends BaseController {
      * @return com.fdkankan.common.response.ResultData
      * @return com.fdkankan.common.response.ResultData
      **/
      **/
     @PostMapping(value = "/saveOverlay")
     @PostMapping(value = "/saveOverlay")
-    public ResultData saveOverlay(@RequestBody SceneEditVO param) throws Exception {
+    public ResultData saveOverlay(@RequestBody SceneEditParamVO param) throws Exception {
         return sceneProService.saveOverlay(param);
         return sceneProService.saveOverlay(param);
     }
     }
 
 
@@ -232,7 +232,7 @@ public class SceneEditController extends BaseController {
      * @return com.fdkankan.common.response.ResultData
      * @return com.fdkankan.common.response.ResultData
      **/
      **/
     @PostMapping(value = "/saveScreencapData")
     @PostMapping(value = "/saveScreencapData")
-    public ResultData saveScreencapData(@RequestBody SceneEditVO param) throws Exception {
+    public ResultData saveScreencapData(@RequestBody SceneEditParamVO param) throws Exception {
         return sceneProService.saveScreencapData(param);
         return sceneProService.saveScreencapData(param);
     }
     }
 
 
@@ -246,7 +246,7 @@ public class SceneEditController extends BaseController {
      * @return com.fdkankan.common.response.ResultData
      * @return com.fdkankan.common.response.ResultData
      **/
      **/
     @PostMapping(value = "/saveSceneKey")
     @PostMapping(value = "/saveSceneKey")
-    public ResultData saveSceneKey(@RequestBody SceneEditVO param) throws Exception {
+    public ResultData saveSceneKey(@RequestBody SceneEditParamVO param) throws Exception {
         return sceneProService.saveSceneKey(param);
         return sceneProService.saveSceneKey(param);
     }
     }
 
 
@@ -260,7 +260,7 @@ public class SceneEditController extends BaseController {
      * @return com.fdkankan.common.response.ResultData
      * @return com.fdkankan.common.response.ResultData
      **/
      **/
     @PostMapping(value = "/saveScreencapFile")
     @PostMapping(value = "/saveScreencapFile")
-    public ResultData saveScreencapFile(@RequestBody SceneEditVO param) throws Exception {
+    public ResultData saveScreencapFile(@RequestBody SceneEditParamVO param) throws Exception {
         return sceneProService.saveScreencapFile(param);
         return sceneProService.saveScreencapFile(param);
     }
     }
 
 
@@ -304,7 +304,7 @@ public class SceneEditController extends BaseController {
      * @return com.fdkankan.common.response.ResultData
      * @return com.fdkankan.common.response.ResultData
      **/
      **/
     @PostMapping(value = "/addHotMediaInfo")
     @PostMapping(value = "/addHotMediaInfo")
-    public ResultData addHotMediaInfo(@RequestBody SceneEditVO param) throws Exception {
+    public ResultData addHotMediaInfo(@RequestBody SceneEditParamVO param) throws Exception {
         return sceneProService.addHotMediaInfo(param);
         return sceneProService.addHotMediaInfo(param);
     }
     }
 
 
@@ -318,7 +318,7 @@ public class SceneEditController extends BaseController {
      * @return com.fdkankan.common.response.ResultData
      * @return com.fdkankan.common.response.ResultData
      **/
      **/
     @PostMapping(value = "/saveLinkPano")
     @PostMapping(value = "/saveLinkPano")
-    public ResultData saveLinkPano(@RequestBody SceneEditVO param) throws Exception {
+    public ResultData saveLinkPano(@RequestBody SceneEditParamVO param) throws Exception {
         return sceneProService.saveLinkPano(param);
         return sceneProService.saveLinkPano(param);
     }
     }
 
 
@@ -327,7 +327,7 @@ public class SceneEditController extends BaseController {
      * @return
      * @return
      */
      */
     @PostMapping(value = "/saveHotVisible")
     @PostMapping(value = "/saveHotVisible")
-    public ResultData saveHotVisible(@RequestBody SceneEditVO param) throws Exception {
+    public ResultData saveHotVisible(@RequestBody SceneEditParamVO param) throws Exception {
         return sceneProService.saveHotVisible(param);
         return sceneProService.saveHotVisible(param);
     }
     }
 
 
@@ -344,7 +344,7 @@ public class SceneEditController extends BaseController {
      * 新增画墙重建模型(钟文)
      * 新增画墙重建模型(钟文)
      */
      */
     @PostMapping(value = "/uploadFloorJson")
     @PostMapping(value = "/uploadFloorJson")
-    public ResultData uploadFloorJson(@RequestBody SceneEditVO param) throws Exception{
+    public ResultData uploadFloorJson(@RequestBody SceneEditParamVO param) throws Exception{
         return sceneProService.uploadFloorJson(param);
         return sceneProService.uploadFloorJson(param);
     }
     }
 
 
@@ -362,7 +362,7 @@ public class SceneEditController extends BaseController {
      * @return
      * @return
      */
      */
     @PostMapping(value = "/resetUploadFloorJson")
     @PostMapping(value = "/resetUploadFloorJson")
-    public ResultData resetUploadFloorJson(@RequestBody SceneEditVO param) throws Exception {
+    public ResultData resetUploadFloorJson(@RequestBody SceneEditParamVO param) throws Exception {
         return sceneProService.resetUploadFloorJson(param);
         return sceneProService.resetUploadFloorJson(param);
     }
     }
 
 
@@ -371,7 +371,7 @@ public class SceneEditController extends BaseController {
      * @return
      * @return
      */
      */
     @PostMapping(value = "/uploadShareLogo")
     @PostMapping(value = "/uploadShareLogo")
-    public ResultData uploadShareLogo(@RequestBody SceneEditVO param, @RequestParam("file") MultipartFile file) throws Exception {
+    public ResultData uploadShareLogo(@RequestBody SceneEditParamVO param, @RequestParam("file") MultipartFile file) throws Exception {
         return sceneProService.uploadShareLogo(param, file);
         return sceneProService.uploadShareLogo(param, file);
     }
     }
 
 
@@ -390,7 +390,7 @@ public class SceneEditController extends BaseController {
      * @return
      * @return
      */
      */
     @PostMapping(value = "/uploadHotJsonToOss")
     @PostMapping(value = "/uploadHotJsonToOss")
-    public ResultData uploadHotJsonToOss(@RequestBody SceneEditVO param) throws Exception {
+    public ResultData uploadHotJsonToOss(@RequestBody SceneEditParamVO param) throws Exception {
         return sceneProService.uploadHotJsonToOss(param);
         return sceneProService.uploadHotJsonToOss(param);
     }
     }
 
 
@@ -427,7 +427,7 @@ public class SceneEditController extends BaseController {
      * 肖安需求,下载场景obj和贴图
      * 肖安需求,下载场景obj和贴图
      */
      */
     @PostMapping(value = "/downloadTexData")
     @PostMapping(value = "/downloadTexData")
-    public ResultData downloadTexData(@RequestBody SceneEditVO param) throws Exception {
+    public ResultData downloadTexData(@RequestBody SceneEditParamVO param) throws Exception {
         return sceneProService.downloadTexData(param);
         return sceneProService.downloadTexData(param);
     }
     }
 
 
@@ -546,7 +546,7 @@ public class SceneEditController extends BaseController {
      * 下载点位数据
      * 下载点位数据
      */
      */
     @PostMapping(value = "/downloadVisionData")
     @PostMapping(value = "/downloadVisionData")
-    public ResultData downloadVisionData(@RequestBody SceneEditVO param) throws Exception{
+    public ResultData downloadVisionData(@RequestBody SceneEditParamVO param) throws Exception{
         return sceneProService.downloadVisionData(param);
         return sceneProService.downloadVisionData(param);
     }
     }
 
 
@@ -554,7 +554,7 @@ public class SceneEditController extends BaseController {
      * 下载全景图数据
      * 下载全景图数据
      */
      */
     @PostMapping(value = "/downloadPanoramaData")
     @PostMapping(value = "/downloadPanoramaData")
-    public ResultData downloadPanoramaData(@RequestBody SceneEditVO param) throws Exception{
+    public ResultData downloadPanoramaData(@RequestBody SceneEditParamVO param) throws Exception{
         return sceneProService.downloadPanoramaData(param);
         return sceneProService.downloadPanoramaData(param);
     }
     }
 
 

+ 4 - 3
4dkankan-center-scene/src/main/java/com/fdkankan/scene/entity/ScenePro.java

@@ -88,10 +88,11 @@ public class ScenePro implements Serializable {
     private Integer sceneStatus;
     private Integer sceneStatus;
 
 
     /**
     /**
-     * 拍摄数量
+     * 0表示未付款,1表示付款了,-1表示欠费,-2表示容量不足
      */
      */
-    @TableField("shoot_count")
-    private Integer shootCount;
+    @TableField("pay_status")
+    private Integer payStatus;
+
 
 
     /**
     /**
      * 点位视频
      * 点位视频

+ 6 - 6
4dkankan-center-scene/src/main/java/com/fdkankan/scene/entity/SceneProExt.java

@@ -40,12 +40,6 @@ public class SceneProExt implements Serializable {
     private String dataSource;
     private String dataSource;
 
 
     /**
     /**
-     * 0表示未付款,1表示付款了,-1表示欠费,-2表示容量不足
-     */
-    @TableField("pay_status")
-    private Integer payStatus;
-
-    /**
      * 手机id
      * 手机id
      */
      */
     @TableField("phone_id")
     @TableField("phone_id")
@@ -115,6 +109,12 @@ public class SceneProExt implements Serializable {
     private Integer viewCount;
     private Integer viewCount;
 
 
     /**
     /**
+     * 拍摄数量
+     */
+    @TableField("shoot_count")
+    private Integer shootCount;
+
+    /**
      * 相机类型
      * 相机类型
      */
      */
     @TableField("camera_type")
     @TableField("camera_type")

+ 12 - 12
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/ISceneAppService.java

@@ -2,36 +2,36 @@ package com.fdkankan.scene.service;
 
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.scene.entity.Scene;
 import com.fdkankan.scene.entity.Scene;
-import com.fdkankan.scene.vo.SceneEditVO;
+import com.fdkankan.scene.vo.SceneEditParamVO;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartFile;
 
 
 import java.io.IOException;
 import java.io.IOException;
 
 
 public interface ISceneAppService extends IService<Scene> {
 public interface ISceneAppService extends IService<Scene> {
 
 
-    int saveInitialPage(SceneEditVO base) throws Exception;
+    int saveInitialPage(SceneEditParamVO base) throws Exception;
 
 
-    int saveFloorLogo(SceneEditVO base) throws Exception;
+    int saveFloorLogo(SceneEditParamVO base) throws Exception;
 
 
-    int saveHot(SceneEditVO base) throws Exception;
+    int saveHot(SceneEditParamVO base) throws Exception;
 
 
-    int saveBackgroundMusic(SceneEditVO base) throws Exception;
+    int saveBackgroundMusic(SceneEditParamVO base) throws Exception;
 
 
-    int saveSceneInfo(SceneEditVO base) throws Exception;
+    int saveSceneInfo(SceneEditParamVO base) throws Exception;
 
 
-    int saveSceneKey(SceneEditVO base) throws Exception;
+    int saveSceneKey(SceneEditParamVO base) throws Exception;
 
 
-    int saveTourList(SceneEditVO base) throws Exception;
+    int saveTourList(SceneEditParamVO base) throws Exception;
 
 
     Object uploadPic(String sceneNum, String folderName, MultipartFile file) throws IOException;
     Object uploadPic(String sceneNum, String folderName, MultipartFile file) throws IOException;
 
 
     Object uploadScreencapVoice(String sceneNum, MultipartFile file) throws IOException;
     Object uploadScreencapVoice(String sceneNum, MultipartFile file) throws IOException;
 
 
-    int saveScreencapFile(SceneEditVO base) throws Exception;
+    int saveScreencapFile(SceneEditParamVO base) throws Exception;
 
 
-    int saveHotVisible(SceneEditVO base) throws Exception;
+    int saveHotVisible(SceneEditParamVO base) throws Exception;
 
 
-    int saveLinkPano(SceneEditVO base) throws Exception;
+    int saveLinkPano(SceneEditParamVO base) throws Exception;
 
 
-    Object getRecordAudioFromWeixin(SceneEditVO base) throws Exception;
+    Object getRecordAudioFromWeixin(SceneEditParamVO base) throws Exception;
 }
 }

+ 4 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/ISceneFileBuildService.java

@@ -2,8 +2,10 @@ package com.fdkankan.scene.service;
 
 
 import com.fdkankan.scene.entity.SceneFileBuild;
 import com.fdkankan.scene.entity.SceneFileBuild;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.scene.vo.BuildSceneParamVO;
 import com.fdkankan.scene.vo.ResponseSceneFile;
 import com.fdkankan.scene.vo.ResponseSceneFile;
 import com.fdkankan.common.response.ResultData;
 import com.fdkankan.common.response.ResultData;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartFile;
 
 
 /**
 /**
@@ -43,4 +45,6 @@ public interface ISceneFileBuildService extends IService<SceneFileBuild> {
 
 
     ResultData buildScene(String prefix, String unicode, String zip, String dataFdage) throws Exception;
     ResultData buildScene(String prefix, String unicode, String zip, String dataFdage) throws Exception;
 
 
+    ResultData buildScene(@RequestBody BuildSceneParamVO buildScene) throws Exception;
+
 }
 }

+ 39 - 20
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/ISceneProAppService.java

@@ -3,14 +3,13 @@ package com.fdkankan.scene.service;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.scene.entity.ScenePro;
 import com.fdkankan.scene.entity.ScenePro;
-import com.fdkankan.scene.vo.SceneEditVO;
+import com.fdkankan.scene.vo.*;
 import com.fdkankan.common.response.ResultData;
 import com.fdkankan.common.response.ResultData;
-import com.fdkankan.scene.vo.SceneVO;
-import com.fdkankan.scene.vo.UserParamVO;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartFile;
 
 
 import java.util.List;
 import java.util.List;
+import java.util.Map;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -22,43 +21,43 @@ import java.util.List;
  */
  */
 public interface ISceneProAppService extends IService<ScenePro> {
 public interface ISceneProAppService extends IService<ScenePro> {
 
 
-    ResultData saveInitialPage(SceneEditVO base) throws Exception;
+    ResultData saveInitialPage(SceneEditParamVO base) throws Exception;
 
 
-    ResultData saveFloorLogo(SceneEditVO base) throws Exception;
+    ResultData saveFloorLogo(SceneEditParamVO base) throws Exception;
 
 
-    ResultData saveHot(SceneEditVO base) throws Exception;
+    ResultData saveHot(SceneEditParamVO base) throws Exception;
 
 
-    ResultData saveBackgroundMusic(SceneEditVO base) throws Exception;
+    ResultData saveBackgroundMusic(SceneEditParamVO base) throws Exception;
 
 
-    ResultData saveSceneInfo(SceneEditVO base) throws Exception;
+    ResultData saveSceneInfo(SceneEditParamVO base) throws Exception;
 
 
-    ResultData saveSceneKey(SceneEditVO base) throws Exception;
+    ResultData saveSceneKey(SceneEditParamVO base) throws Exception;
 
 
-    ResultData saveTourList(SceneEditVO base) throws Exception;
+    ResultData saveTourList(SceneEditParamVO base) throws Exception;
 
 
     ResultData uploadPic(String sceneNum, String folderName, MultipartFile file) throws Exception;
     ResultData uploadPic(String sceneNum, String folderName, MultipartFile file) throws Exception;
 
 
     ResultData uploadScreencapVoice(String sceneNum, MultipartFile file) throws Exception;
     ResultData uploadScreencapVoice(String sceneNum, MultipartFile file) throws Exception;
 
 
-    ResultData saveScreencapFile(SceneEditVO base) throws Exception;
+    ResultData saveScreencapFile(SceneEditParamVO base) throws Exception;
 
 
-    ResultData saveHotVisible(SceneEditVO sceneEdit) throws Exception;
+    ResultData saveHotVisible(SceneEditParamVO sceneEdit) throws Exception;
 
 
-    ResultData saveLinkPano(SceneEditVO base) throws Exception;
+    ResultData saveLinkPano(SceneEditParamVO base) throws Exception;
 
 
-    ResultData getRecordAudioFromWeixin(SceneEditVO base) throws Exception;
+    ResultData getRecordAudioFromWeixin(SceneEditParamVO base) throws Exception;
 
 
-    ResultData getRecordAudioFromWeixinV3(String sceneNum, String id, String type, String fileName, String length, String replace, String times, String index) throws Exception;
+    ResultData getRecordAudioFromWeixinV3(FileParamVO param) throws Exception;
 
 
-    ResultData getRecordAudioFromAppV3(String sceneNum, String soundFile, String type, String fileName, String length, String replace, String times, String index) throws Exception;
+    ResultData getRecordAudioFromAppV3(FileParamVO param) throws Exception;
 
 
-    ResultData deleteRecordAudioPart(String sceneNum, String fileName, String times, String index, String type) throws Exception;
+    ResultData deleteRecordAudioPart(FileParamVO param) throws Exception;
 
 
-    ResultData uploadFloorJsonAndRebuild(SceneEditVO base) throws Exception;
+    ResultData uploadFloorJsonAndRebuild(SceneEditParamVO base) throws Exception;
 
 
-    ResultData saveScreencapData(SceneEditVO base) throws Exception;
+    ResultData saveScreencapData(SceneEditParamVO base) throws Exception;
 
 
-    ResultData saveAllVisi(SceneEditVO base) throws Exception;
+    ResultData saveAllVisi(SceneEditParamVO base) throws Exception;
 
 
     ResultData uploadFloorplanPng(String sceneNum, MultipartFile file, String cadInfo) throws Exception;
     ResultData uploadFloorplanPng(String sceneNum, MultipartFile file, String cadInfo) throws Exception;
 
 
@@ -70,4 +69,24 @@ public interface ISceneProAppService extends IService<ScenePro> {
 
 
     List<SceneVO> getAllForCameraName(UserParamVO user);
     List<SceneVO> getAllForCameraName(UserParamVO user);
 
 
+    Long getSceneCount(UserParamVO user);
+
+    Integer getSceneStatus(@RequestBody UserParamVO user);
+
+    Map<String, Object> getSceneStatusByUnicode(UserParamVO user);
+
+    ResultData deleteForCameraName(UserParamVO user) throws Exception;
+
+    ResultData deleteScene(String sceneNum) throws Exception;
+
+    List<SceneVO> findScenesByUserIdAndSceneScheme(Long cameraId, String orderBy, Integer payStatus);
+
+    void unlockBeyondSpaceScenes(Long newSpace, Long cameraId) throws Exception;
+
+    ResultData getScreencapVoice(SceneParamVO scene) throws Exception;
+
+    List<SceneVO> getAllSceneByUserName(@RequestBody UserParamVO user) throws Exception;
+
+    ResultData cooperationSceneList(UserParamVO user);
+
 }
 }

+ 29 - 27
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/ISceneProService.java

@@ -1,15 +1,13 @@
 package com.fdkankan.scene.service;
 package com.fdkankan.scene.service;
 
 
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.common.response.ResultData;
 import com.fdkankan.common.response.ResultData;
 import com.fdkankan.scene.entity.ScenePro;
 import com.fdkankan.scene.entity.ScenePro;
 import com.fdkankan.scene.entity.SceneProPO;
 import com.fdkankan.scene.entity.SceneProPO;
-import com.fdkankan.scene.vo.SceneEditVO;
+import com.fdkankan.scene.vo.SceneEditParamVO;
 import com.fdkankan.scene.vo.SceneVO;
 import com.fdkankan.scene.vo.SceneVO;
 import com.fdkankan.scene.vo.FileParamVO;
 import com.fdkankan.scene.vo.FileParamVO;
-import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartFile;
 
 
 import java.io.IOException;
 import java.io.IOException;
@@ -27,6 +25,8 @@ public interface ISceneProService extends IService<ScenePro> {
 
 
     List<SceneVO> convert(List<ScenePro> list);
     List<SceneVO> convert(List<ScenePro> list);
 
 
+    List<SceneVO> convert2(List<SceneProPO> list);
+
     Long getSceneCount(Long cameraId);
     Long getSceneCount(Long cameraId);
 
 
     ScenePro findBySceneNum(String sceneNum);
     ScenePro findBySceneNum(String sceneNum);
@@ -43,25 +43,25 @@ public interface ISceneProService extends IService<ScenePro> {
 
 
     void updateStatus(String sceneNum, int sceneStatus);
     void updateStatus(String sceneNum, int sceneStatus);
 
 
-    ResultData resetUploadFloorJson(SceneEditVO sceneEdit) throws Exception;
+    ResultData resetUploadFloorJson(SceneEditParamVO sceneEdit) throws Exception;
 
 
-    ResultData uploadFloorJson(SceneEditVO sceneEdit) throws Exception;
+    ResultData uploadFloorJson(SceneEditParamVO sceneEdit) throws Exception;
 
 
     ResultData uploadFloorJsonAjk(FileParamVO param, MultipartFile[] file) throws Exception;
     ResultData uploadFloorJsonAjk(FileParamVO param, MultipartFile[] file) throws Exception;
 
 
-    ResultData addHotMediaInfo(SceneEditVO base) throws Exception;
+    ResultData addHotMediaInfo(SceneEditParamVO base) throws Exception;
 
 
-    ResultData saveScreencapFile(SceneEditVO base) throws Exception;
+    ResultData saveScreencapFile(SceneEditParamVO base) throws Exception;
 
 
-    ResultData saveSceneKey(SceneEditVO base) throws Exception;
+    ResultData saveSceneKey(SceneEditParamVO base) throws Exception;
 
 
-    ResultData saveFloorLogo(SceneEditVO base) throws Exception;
+    ResultData saveFloorLogo(SceneEditParamVO base) throws Exception;
 
 
-    ResultData saveBackgroundMusic(SceneEditVO base) throws Exception;
+    ResultData saveBackgroundMusic(SceneEditParamVO base) throws Exception;
 
 
-    ResultData saveInitialPage(SceneEditVO base) throws Exception;
+    ResultData saveInitialPage(SceneEditParamVO base) throws Exception;
 
 
-    ResultData getScreencapVoice(SceneEditVO base) throws Exception;
+    ResultData getScreencapVoice(SceneEditParamVO base) throws Exception;
 
 
     ResultData uploadScreencapVoiceNew(FileParamVO param, MultipartFile file) throws Exception;
     ResultData uploadScreencapVoiceNew(FileParamVO param, MultipartFile file) throws Exception;
 
 
@@ -69,35 +69,35 @@ public interface ISceneProService extends IService<ScenePro> {
 
 
     ResultData deleteScreencapVoicePart(FileParamVO param) throws Exception;
     ResultData deleteScreencapVoicePart(FileParamVO param) throws Exception;
 
 
-    ResultData deleteScreencapVoice(SceneEditVO base) throws Exception;
+    ResultData deleteScreencapVoice(SceneEditParamVO base) throws Exception;
 
 
-    ResultData deleteScreencap(SceneEditVO base) throws Exception;
+    ResultData deleteScreencap(SceneEditParamVO base) throws Exception;
 
 
-    ResultData saveTourList(SceneEditVO base) throws Exception;
+    ResultData saveTourList(SceneEditParamVO base) throws Exception;
 
 
-    ResultData saveSceneInfo(SceneEditVO base) throws Exception;
+    ResultData saveSceneInfo(SceneEditParamVO base) throws Exception;
 
 
     ResultData uploadHotMedia(FileParamVO param, MultipartFile file) throws Exception;
     ResultData uploadHotMedia(FileParamVO param, MultipartFile file) throws Exception;
 
 
-    ResultData saveHot(SceneEditVO base) throws Exception;
+    ResultData saveHot(SceneEditParamVO base) throws Exception;
 
 
-    ResultData saveShopHot(SceneEditVO base) throws Exception;
+    ResultData saveShopHot(SceneEditParamVO base) throws Exception;
 
 
-    ResultData saveOverlay(SceneEditVO base) throws Exception;
+    ResultData saveOverlay(SceneEditParamVO base) throws Exception;
 
 
     ResultData uploadOverlayMedia(FileParamVO param, MultipartFile file) throws Exception;
     ResultData uploadOverlayMedia(FileParamVO param, MultipartFile file) throws Exception;
 
 
-    ResultData saveScreencapData(SceneEditVO base) throws Exception;
+    ResultData saveScreencapData(SceneEditParamVO base) throws Exception;
 
 
-    ResultData saveLinkPano(SceneEditVO base) throws Exception;
+    ResultData saveLinkPano(SceneEditParamVO base) throws Exception;
 
 
-    ResultData saveHotVisible(SceneEditVO base) throws Exception;
+    ResultData saveHotVisible(SceneEditParamVO base) throws Exception;
 
 
-    ResultData uploadShareLogo(SceneEditVO base, MultipartFile file) throws Exception;
+    ResultData uploadShareLogo(SceneEditParamVO base, MultipartFile file) throws Exception;
 
 
     ResultData uploadPic(FileParamVO param, MultipartFile file) throws Exception;
     ResultData uploadPic(FileParamVO param, MultipartFile file) throws Exception;
 
 
-    ResultData uploadHotJsonToOss(SceneEditVO param) throws Exception;
+    ResultData uploadHotJsonToOss(SceneEditParamVO param) throws Exception;
 
 
     ResultData deleteOss(FileParamVO param) throws Exception;
     ResultData deleteOss(FileParamVO param) throws Exception;
 
 
@@ -159,7 +159,7 @@ public interface ISceneProService extends IService<ScenePro> {
 
 
     void updatePayStatusByCameraId(Integer payStatus, Long cameraId);
     void updatePayStatusByCameraId(Integer payStatus, Long cameraId);
 
 
-    ResultData downloadPanoramaData(SceneEditVO param) throws Exception;
+    ResultData downloadPanoramaData(SceneEditParamVO param) throws Exception;
 
 
     ResultData getSceneAndCameras(Long userId,List<String> excludeNums);
     ResultData getSceneAndCameras(Long userId,List<String> excludeNums);
 
 
@@ -167,7 +167,7 @@ public interface ISceneProService extends IService<ScenePro> {
 
 
     Integer findFolderIdScence(Long folderId, Long userId);
     Integer findFolderIdScence(Long folderId, Long userId);
 
 
-    ResultData downloadVisionData(SceneEditVO param) throws Exception;
+    ResultData downloadVisionData(SceneEditParamVO param) throws Exception;
 
 
     SceneVO getInfo(String sceneNum);
     SceneVO getInfo(String sceneNum);
 
 
@@ -179,7 +179,9 @@ public interface ISceneProService extends IService<ScenePro> {
 
 
     ResultData checkVideoUrl(FileParamVO param);
     ResultData checkVideoUrl(FileParamVO param);
 
 
-    ResultData downloadTexData(SceneEditVO param) throws Exception ;
+    ResultData downloadTexData(SceneEditParamVO param) throws Exception ;
+
+
 
 
 
 
 }
 }

+ 6 - 6
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/ISceneService.java

@@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.scene.entity.Scene;
 import com.fdkankan.scene.entity.Scene;
 import com.fdkankan.scene.entity.ScenePO;
 import com.fdkankan.scene.entity.ScenePO;
 import com.fdkankan.scene.entity.SceneProPO;
 import com.fdkankan.scene.entity.SceneProPO;
-import com.fdkankan.scene.vo.SceneEditVO;
+import com.fdkankan.scene.vo.SceneEditParamVO;
 import com.fdkankan.scene.vo.SceneParamVO;
 import com.fdkankan.scene.vo.SceneParamVO;
 import com.fdkankan.scene.vo.SceneVO;
 import com.fdkankan.scene.vo.SceneVO;
 import com.fdkankan.common.response.ResultData;
 import com.fdkankan.common.response.ResultData;
@@ -49,11 +49,11 @@ public interface ISceneService extends IService<Scene> {
 
 
     ResultData deleteHot(SceneParamVO base) throws Exception;
     ResultData deleteHot(SceneParamVO base) throws Exception;
 
 
-    ResultData saveHot(SceneEditVO base) throws Exception;
+    ResultData saveHot(SceneEditParamVO base) throws Exception;
 
 
-    ResultData saveLinkPano(SceneEditVO base) throws Exception;
+    ResultData saveLinkPano(SceneEditParamVO base) throws Exception;
 
 
-    ResultData saveHotVisible(SceneEditVO base) throws Exception;
+    ResultData saveHotVisible(SceneEditParamVO base) throws Exception;
 
 
     IPage<SceneVO> queryByParam(SceneParamVO param) throws Exception;
     IPage<SceneVO> queryByParam(SceneParamVO param) throws Exception;
 
 
@@ -71,9 +71,9 @@ public interface ISceneService extends IService<Scene> {
 
 
     void updateTime(String sceneNum, Long space, int payStatus);
     void updateTime(String sceneNum, Long space, int payStatus);
 
 
-    ResultData addHotMediaInfo(SceneEditVO base) throws Exception;
+    ResultData addHotMediaInfo(SceneEditParamVO base) throws Exception;
 
 
-    ResultData saveScreencapFile(SceneEditVO base) throws Exception;
+    ResultData saveScreencapFile(SceneEditParamVO base) throws Exception;
 
 
     List<SceneProPO> findAllScene(String order, String sceneType, Integer sceneScheme,
     List<SceneProPO> findAllScene(String order, String sceneType, Integer sceneScheme,
                                   Integer pageNum, Integer pageSize, Long userId,
                                   Integer pageNum, Integer pageSize, Long userId,

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

@@ -1,5 +1,6 @@
 package com.fdkankan.scene.service.impl;
 package com.fdkankan.scene.service.impl;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.fdkankan.common.constant.TbStatus;
 import com.fdkankan.common.constant.TbStatus;
 import com.fdkankan.scene.entity.FolderScene;
 import com.fdkankan.scene.entity.FolderScene;
@@ -36,10 +37,7 @@ public class FolderSceneServiceImpl extends ServiceImpl<IFolderSceneMapper, Fold
 
 
     @Override
     @Override
     public void deleteBySceneId(Long sceneId) {
     public void deleteBySceneId(Long sceneId) {
-//        FolderScene folderScene  = new FolderScene();
-//        folderScene.setTbStatus(TbStatus.DELETE.code());
-//        folderSceneMapper.update(folderScene, new QueryWrapper<FolderScene>().eq("sceneId", sceneId));
-        remove(new QueryWrapper<FolderScene>().eq("sceneId", sceneId));
+        remove(new LambdaQueryWrapper<FolderScene>().eq(FolderScene::getSceneId, sceneId));
     }
     }
 
 
     @Override
     @Override

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

@@ -13,7 +13,7 @@ import com.fdkankan.scene.mapper.IScene3dfamilyMapper;
 import com.fdkankan.scene.service.IScene3dfamilyService;
 import com.fdkankan.scene.service.IScene3dfamilyService;
 import com.fdkankan.scene.service.ISceneProService;
 import com.fdkankan.scene.service.ISceneProService;
 import com.fdkankan.scene.vo.Scene3dfamilyVO;
 import com.fdkankan.scene.vo.Scene3dfamilyVO;
-import com.fdkankan.scene.vo.SceneEditVO;
+import com.fdkankan.scene.vo.SceneEditParamVO;
 import com.fdkankan.scene.vo.SceneProVO;
 import com.fdkankan.scene.vo.SceneProVO;
 import com.fdkankan.scene.vo.SceneVO;
 import com.fdkankan.scene.vo.SceneVO;
 import com.fdkankan.common.constant.ErrorCode;
 import com.fdkankan.common.constant.ErrorCode;
@@ -75,7 +75,7 @@ public class Scene3dfamilyServiceImpl extends ServiceImpl<IScene3dfamilyMapper,
             FileUtils.createDir(path);
             FileUtils.createDir(path);
 
 
             //生成vision.json
             //生成vision.json
-            sceneProService.downloadVisionData(SceneEditVO.builder().sceneNum(sceneProVo.getSceneCode()).build());
+            sceneProService.downloadVisionData(SceneEditParamVO.builder().sceneNum(sceneProVo.getSceneCode()).build());
             //拉取data
             //拉取data
             CreateObjUtil.ossUtilCp("data" + File.separator + "data" + sceneProVo.getSceneCode()  + File.separator,
             CreateObjUtil.ossUtilCp("data" + File.separator + "data" + sceneProVo.getSceneCode()  + File.separator,
                     path + File.separator + "scene" + File.separator + "data" + File.separator + "data" + sceneProVo.getSceneCode());
                     path + File.separator + "scene" + File.separator + "data" + File.separator + "data" + sceneProVo.getSceneCode());

+ 12 - 12
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneAppServiceImpl.java

@@ -18,7 +18,7 @@ import com.fdkankan.scene.mapper.ISceneMapper;
 import com.fdkankan.scene.service.ISceneAppService;
 import com.fdkankan.scene.service.ISceneAppService;
 import com.fdkankan.scene.service.ISceneExtService;
 import com.fdkankan.scene.service.ISceneExtService;
 import com.fdkankan.scene.service.ISceneService;
 import com.fdkankan.scene.service.ISceneService;
-import com.fdkankan.scene.vo.SceneEditVO;
+import com.fdkankan.scene.vo.SceneEditParamVO;
 import com.fdkankan.common.constant.ErrorCode;
 import com.fdkankan.common.constant.ErrorCode;
 import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.exception.BusinessException;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
@@ -71,7 +71,7 @@ public class SceneAppServiceImpl extends ServiceImpl<ISceneMapper, Scene> implem
 
 
 
 
     @Override
     @Override
-    public int saveInitialPage(SceneEditVO base) throws Exception {
+    public int saveInitialPage(SceneEditParamVO base) throws Exception {
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getInitialPoint())){
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getInitialPoint())){
             return -102;
             return -102;
         }
         }
@@ -134,7 +134,7 @@ public class SceneAppServiceImpl extends ServiceImpl<ISceneMapper, Scene> implem
     }
     }
 
 
     @Override
     @Override
-    public int saveFloorLogo(SceneEditVO base) throws Exception {
+    public int saveFloorLogo(SceneEditParamVO base) throws Exception {
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getSize()) ||
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getSize()) ||
                 StrUtil.isEmpty(base.getLogoType())){
                 StrUtil.isEmpty(base.getLogoType())){
             return -102;
             return -102;
@@ -178,7 +178,7 @@ public class SceneAppServiceImpl extends ServiceImpl<ISceneMapper, Scene> implem
     }
     }
 
 
     @Override
     @Override
-    public int saveHot(SceneEditVO base) throws Exception {
+    public int saveHot(SceneEditParamVO base) throws Exception {
         if(StrUtil.isEmpty(base.getType())){
         if(StrUtil.isEmpty(base.getType())){
             return -102;
             return -102;
         }
         }
@@ -321,7 +321,7 @@ public class SceneAppServiceImpl extends ServiceImpl<ISceneMapper, Scene> implem
     }
     }
 
 
     @Override
     @Override
-    public int saveBackgroundMusic(SceneEditVO base) throws Exception {
+    public int saveBackgroundMusic(SceneEditParamVO base) throws Exception {
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getMusicName())){
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getMusicName())){
             return -102;
             return -102;
         }
         }
@@ -358,7 +358,7 @@ public class SceneAppServiceImpl extends ServiceImpl<ISceneMapper, Scene> implem
     }
     }
 
 
     @Override
     @Override
-    public int saveSceneInfo(SceneEditVO base) throws Exception {
+    public int saveSceneInfo(SceneEditParamVO base) throws Exception {
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getSceneName()) ||
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getSceneName()) ||
                 StrUtil.isEmpty(base.getSceneType()) || StrUtil.isEmpty(base.getSceneDec())){
                 StrUtil.isEmpty(base.getSceneType()) || StrUtil.isEmpty(base.getSceneDec())){
             return -102;
             return -102;
@@ -399,7 +399,7 @@ public class SceneAppServiceImpl extends ServiceImpl<ISceneMapper, Scene> implem
     }
     }
 
 
     @Override
     @Override
-    public int saveSceneKey(SceneEditVO base) throws Exception {
+    public int saveSceneKey(SceneEditParamVO base) throws Exception {
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getSceneKey())){
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getSceneKey())){
             return -102;
             return -102;
         }
         }
@@ -432,7 +432,7 @@ public class SceneAppServiceImpl extends ServiceImpl<ISceneMapper, Scene> implem
     }
     }
 
 
     @Override
     @Override
-    public int saveTourList(SceneEditVO base) throws Exception {
+    public int saveTourList(SceneEditParamVO base) throws Exception {
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getTourList())){
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getTourList())){
             return -102;
             return -102;
         }
         }
@@ -632,7 +632,7 @@ public class SceneAppServiceImpl extends ServiceImpl<ISceneMapper, Scene> implem
     }
     }
 
 
     @Override
     @Override
-    public int saveScreencapFile(SceneEditVO base) throws Exception {
+    public int saveScreencapFile(SceneEditParamVO base) throws Exception {
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getIndex()) ||
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getIndex()) ||
                 StringUtils.isEmpty(base.getCamerasData())){
                 StringUtils.isEmpty(base.getCamerasData())){
             return -102;
             return -102;
@@ -694,7 +694,7 @@ public class SceneAppServiceImpl extends ServiceImpl<ISceneMapper, Scene> implem
     }
     }
 
 
     @Override
     @Override
-    public int saveHotVisible(SceneEditVO base) throws Exception {
+    public int saveHotVisible(SceneEditParamVO base) throws Exception {
         if(StrUtil.isEmpty(base.getData())){
         if(StrUtil.isEmpty(base.getData())){
             return -102;
             return -102;
         }
         }
@@ -745,7 +745,7 @@ public class SceneAppServiceImpl extends ServiceImpl<ISceneMapper, Scene> implem
     }
     }
 
 
     @Override
     @Override
-    public int saveLinkPano(SceneEditVO base) throws Exception {
+    public int saveLinkPano(SceneEditParamVO base) throws Exception {
         if(StrUtil.isEmpty(base.getData()) || StrUtil.isEmpty(base.getSceneNum())){
         if(StrUtil.isEmpty(base.getData()) || StrUtil.isEmpty(base.getSceneNum())){
             return -102;
             return -102;
         }
         }
@@ -809,7 +809,7 @@ public class SceneAppServiceImpl extends ServiceImpl<ISceneMapper, Scene> implem
     }
     }
 
 
     @Override
     @Override
-    public Object getRecordAudioFromWeixin(SceneEditVO base) throws Exception {
+    public Object getRecordAudioFromWeixin(SceneEditParamVO base) throws Exception {
         if(StrUtil.isEmpty(base.getData()) || StrUtil.isEmpty(base.getId())){
         if(StrUtil.isEmpty(base.getData()) || StrUtil.isEmpty(base.getId())){
             return -102;
             return -102;
         }
         }

+ 214 - 4
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneFileBuildServiceImpl.java

@@ -27,7 +27,9 @@ import com.fdkankan.redis.util.RedisUtil;
 import com.fdkankan.scene.entity.*;
 import com.fdkankan.scene.entity.*;
 import com.fdkankan.scene.mapper.ISceneFileBuildMapper;
 import com.fdkankan.scene.mapper.ISceneFileBuildMapper;
 import com.fdkankan.scene.service.*;
 import com.fdkankan.scene.service.*;
+import com.fdkankan.scene.vo.BuildSceneParamVO;
 import com.fdkankan.scene.vo.ResponseSceneFile;
 import com.fdkankan.scene.vo.ResponseSceneFile;
+import com.fdkankan.scene.vo.SceneVO;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.codec.binary.Base64;
 import org.apache.commons.codec.binary.Base64;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -37,8 +39,10 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.util.ObjectUtils;
 import org.springframework.util.ObjectUtils;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartFile;
 
 
+import javax.xml.transform.Result;
 import java.io.BufferedReader;
 import java.io.BufferedReader;
 import java.io.File;
 import java.io.File;
 import java.io.IOException;
 import java.io.IOException;
@@ -121,6 +125,10 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
     RocketMQProducer mqProducer;
     RocketMQProducer mqProducer;
     @Autowired
     @Autowired
     RedisUtil redisUtil;
     RedisUtil redisUtil;
+    @Autowired
+    ISceneService sceneService;
+    @Autowired
+    ISceneExtService sceneExtService;
 
 
     @Override
     @Override
     public SceneFileBuild findByFileId(String fileId) {
     public SceneFileBuild findByFileId(String fileId) {
@@ -1058,6 +1066,63 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
         }
         }
     }
     }
 
 
+
+    @Override
+    public ResultData buildScene(BuildSceneParamVO buildScene) throws Exception {
+        if(StrUtil.isEmpty(buildScene.getUnicode()) || StrUtil.isEmpty(buildScene.getCameraName()) ||
+                StrUtil.isEmpty(buildScene.getSceneKey()) ||
+                StrUtil.isEmpty(buildScene.getPrefix()) || StrUtil.isEmpty(buildScene.getFileName()) ||
+                StrUtil.isEmpty(buildScene.getSceneName()) || StrUtil.isEmpty(buildScene.getSceneDec()) ||
+                buildScene.getSceneType() == null || buildScene.getShootCount() == null ||
+                StrUtil.isEmpty(buildScene.getThumb()) || StrUtil.isEmpty(buildScene.getAlgorithm()) ){
+            throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
+        }
+        String sceneNum = null;
+        try{
+            sceneNum = scene3dNumService.generateSceneNum();
+            if(sceneNum == null){
+                log.error("大场景序号为空:" + sceneNum);
+                throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
+            }
+
+            log.info("查询相机:" + buildScene.getCameraName());
+            ResultData<Camera> cameraResult= platformGoodsClient.getCameraByChildName(buildScene.getCameraName());
+            Camera camera = cameraResult.getData();
+
+            if(camera ==  null){
+                log.error("该相机不存在:" + buildScene.getCameraName());
+                throw new BusinessException(CameraConstant.FAILURE_6003);
+            }
+
+            ResultData<CameraDetail> cameraDetailResult = platformGoodsClient.getCameraDetailByCameraId(camera.getId());
+            CameraDetail cameraDetail = cameraDetailResult.getData();
+
+            int balance = Integer.valueOf(cameraDetail.getBalance());
+            if(balance - Constant.MONEY_SCENE <0){
+                log.error("相机点数不足:" + buildScene.getCameraName());
+                throw new BusinessException(CameraConstant.FAILURE_6006);
+            }
+
+            ResultData<SSOUser> ssoUserResult = platformUserClient.getSSOUserByUserId(cameraDetail.getUserId());
+            SSOUser user = ssoUserResult.getData();
+            if(user == null){
+                log.error("用户id不存在:" + cameraDetail.getUserId());
+                throw new BusinessException(ErrorCode.FAILURE_CODE_3015);
+            }
+            ScenePO scenePO = this.createScene(sceneNum, camera.getId(), camera.getChildName(), buildScene.getPhoneId(),
+                    buildScene.getSceneKey(), buildScene.getUnicode(), cameraDetail.getGoodsId(), "0", buildScene.getPrefix(),
+                    buildScene.getFileName(), buildScene.getThumb(), "0", cameraDetail.getUserId(), user.getUserName(),
+                    buildScene.getAlgorithm(), buildScene.getShootCount(), buildScene.getSceneName(),
+                    buildScene.getSceneDec(), buildScene.getSceneType(), buildScene.getGps(), 0, mainUrl + sceneUrl, ecsType);
+
+            return ResultData.ok(scenePO);
+        }catch (Exception e){
+            log.error("增加大场景失败:" + sceneNum);
+            sceneProService.updateStatus(sceneNum, -1);
+            throw new BusinessException(ErrorCode.FAILURE_CODE_5011);
+        }
+    }
+
     public void buildScene(String filePath, String fileId, boolean fromOss, String prefix) throws Exception{
     public void buildScene(String filePath, String fileId, boolean fromOss, String prefix) throws Exception{
         //获取解压后的资源的data.fdage中的数据
         //获取解压后的资源的data.fdage中的数据
         String data = FileUtils.readFile(filePath + "data.fdage");
         String data = FileUtils.readFile(filePath + "data.fdage");
@@ -1336,6 +1401,151 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
         }
         }
     }
     }
 
 
+    public ScenePO createScene(String projectNum, Long cameraId, String cameraName, String phoneId, String scenepsd,
+                                      String unicode, Long cameraType, String fileId, String prefix,
+                                      String imgsName, String pic, String isModel, Long userId, String userName,
+                                      String algorithm, Integer sceneShootCount, String sceneName,
+                                      String sceneDec, Integer sceneType, String gps,
+                                      Integer type, String url, String ecsType)throws Exception{
+        //先返回链接地址
+        ScenePO scenePo = new ScenePO();
+        Scene scene = new Scene();
+        SceneExt sceneExt = new SceneExt();
+        scene.setWebSite(url+projectNum);
+        scene.setCameraId(cameraId);
+        scene.setPhoneId(phoneId);
+        scene.setSceneCode(String.valueOf(projectNum));
+        if(scenepsd == null)
+        {
+            scenepsd = "";
+        }
+        if(!scenepsd.equals(""))
+        {
+            scene.setSceneKey(scenepsd);
+        }
+
+        if(!org.springframework.util.StringUtils.isEmpty(ecsType)){
+            sceneExt.setOss(ecsType);
+        }
+
+        String path =  ConstantFilePath.BUILD_MODEL_PATH + unicode;
+
+        if(cameraType.longValue() >= 4){
+            scene.setDataSource(ConstantFilePath.BUILD_MODEL_PATH +
+                    cameraName.replace("4DKKPRO_", "").replace("-fdage", "").toLowerCase() + File.separator + fileId + File.separator + unicode);
+        }else {
+            scene.setDataSource(prefix+imgsName);
+        }
+
+        if(cameraType.longValue() == 14){
+
+            scene.setDataSource(ConstantFilePath.BUILD_MODEL_LASER_PATH +
+                    cameraName.replace("4DKKPRO_", "").replace("-fdage", "").toLowerCase() + File.separator +
+                    fileId + File.separator + unicode);
+
+            log.info("激光相机 dataSource :" + scene.getDataSource());
+
+        }
+
+        if(pic!=null&&pic.length()>5) {
+            scene.setThumb(pic);
+        }else{
+            scene.setThumb(ConstantUrl.DEFAULT_SCENE_PIC);
+        }
+
+        String parametr = "";
+        parametr+=unicode+":;"+path+":;"+prefix+":;"+imgsName+":;"+projectNum+":;"+isModel;
+        if(userName!=null&&!userName.trim().equals(""))
+        {
+            parametr+=":;"+userName;
+            scene.setUserId(userId);
+        }
+        else
+        {
+            parametr+=":;noMan";
+        }
+        parametr+=":;"+cameraType;
+        parametr+=":;"+algorithm;
+        parametr += ":;" + fileId;
+        parametr += ":;" + cameraName;
+        parametr += ":;1";
+        log.info("大场景添加到队列:"+parametr);
+        mqProducer.syncSend(topicModelingA, parametr);
+
+        if(sceneShootCount == null)
+        {
+            sceneExt.setShootCount(0);
+        }
+        else
+        {
+            sceneExt.setShootCount(sceneShootCount);
+        }
+        if(sceneName!=null)
+        {
+            scene.setSceneName(sceneName);
+        }
+        if(sceneDec!=null)
+        {
+            scene.setSceneDec("<p>"+sceneDec+"</p>");
+        }
+
+        if(sceneType!=null)
+        {
+            scene.setSceneType(sceneType);
+        }
+
+        if(gps!=null&&!gps.trim().equals(""))
+        {
+            sceneExt.setGps(gps);
+        }
+
+        sceneExt.setSceneScheme(cameraType.intValue());
+        sceneExt.setAlgorithm(algorithm);
+        log.info("场景记录添加到数据库:"+projectNum);
+        //type=0为新生成场景,其余为重新计算场景
+        if(type == 0){
+            sceneService.save(scene);
+            sceneExt.setSceneId(scene.getId());
+            sceneExtService.save(sceneExt);
+        }
+
+        JSONObject scenejson = JSONObject.parseObject(JSONObject.toJSONString(scene));
+        scenejson.put("thumbImg", 0);
+        scenejson.put("version", 0);
+        scenejson.put("floorLogo", 0);
+        if(!scenepsd.equals("")){
+            scenejson.put("scenePsd", scenepsd);
+            scenejson.put("public", 1);
+        }else{
+            scenejson.put("scenePsd", "");
+            scenejson.put("public", 0);
+        }
+        if(cameraType < 4){
+            scenejson.put("visions", 1);
+        }else {
+            scenejson.put("visions", 2);
+        }
+        scenejson.put("createTime", new DateTime(new Date()).toString("yyyy-MM-dd HH:mm"));
+
+        File file = new File(ConstantFilePath.SCENE_PATH+"data/data"+projectNum);
+        if(!file.exists()||!file.isDirectory())
+        {
+            file.mkdirs();
+        }
+        FileUtils.writeFile(ConstantFilePath.SCENE_PATH+"data/data"+projectNum+File.separator+"scene.json", scenejson.toString());
+//        UploadToOssUtil.upload(ConstantFilePath.SCENE_PATH+"data/data"+projectNum+File.separator+"scene.json", "data/data"+projectNum+File.separator+"scene.json");
+
+        //生成二维码
+        MatrixToImageWriterUtil.createQRCode(url + projectNum, ConstantFilePath.BASE_PATH + File.separator + "sceneQRcode/"+projectNum+".png", null);
+        MatrixToImageWriterUtil.createQRCode(url + projectNum + "&lang=en", ConstantFilePath.BASE_PATH + File.separator + "sceneQRcode/"+projectNum+"_en.png", null);
+        log.info("二维码生成完成");
+
+        BeanUtil.copyProperties(sceneExt, scenePo);
+        BeanUtil.copyProperties(scene, scenePo);
+
+        return scenePo;
+    }
+
     public SceneProPO createScenePro(String projectNum, Long cameraId, String cameraName, String phoneId, String sceneKey,
     public SceneProPO createScenePro(String projectNum, Long cameraId, String cameraName, String phoneId, String sceneKey,
                                      String unicode, Long cameraType, String fileId, String prefix,
                                      String unicode, Long cameraType, String fileId, String prefix,
                                      String imgsName, String pic, String isModel, Long userId, String userName,
                                      String imgsName, String pic, String isModel, Long userId, String userName,
@@ -1418,11 +1628,11 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
 
 
         if(sceneShootCount == null)
         if(sceneShootCount == null)
         {
         {
-            scenePro.setShootCount(0);
+            sceneProExt.setShootCount(0);
         }
         }
         else
         else
         {
         {
-            scenePro.setShootCount(sceneShootCount);
+            sceneProExt.setShootCount(sceneShootCount);
         }
         }
         if(sceneName!=null)
         if(sceneName!=null)
         {
         {
@@ -1516,10 +1726,10 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
             scenePro.setId(oldScene.getId());
             scenePro.setId(oldScene.getId());
             scenePro.setSceneStatus(0);
             scenePro.setSceneStatus(0);
             scenePro.setRecStatus("A");
             scenePro.setRecStatus("A");
+            scenePro.setPayStatus(0);
             scenePro.setCreateTime(new Date());
             scenePro.setCreateTime(new Date());
 
 
             SceneProExt oldSceneProExt = sceneProExtService.findBySceneProId(oldScene.getId());
             SceneProExt oldSceneProExt = sceneProExtService.findBySceneProId(oldScene.getId());
-            sceneProExt.setPayStatus(0);
             sceneProExt.setSpace(oldSceneProExt.getSpace());
             sceneProExt.setSpace(oldSceneProExt.getSpace());
             sceneProExt.setEcs(oldSceneProExt.getEcs());
             sceneProExt.setEcs(oldSceneProExt.getEcs());
             sceneProExt.setViewCount(oldSceneProExt.getViewCount());
             sceneProExt.setViewCount(oldSceneProExt.getViewCount());
@@ -1580,7 +1790,7 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
                 projectNum, cameraName, unicode, cameraType, fileId, prefix, imgsName, isModel,
                 projectNum, cameraName, unicode, cameraType, fileId, prefix, imgsName, isModel,
                 userName, algorithm, resolution, buildType, path, scenePro.getId(), scenePro.getSceneName(),
                 userName, algorithm, resolution, buildType, path, scenePro.getId(), scenePro.getSceneName(),
                 scenePro.getWebSite(), scenePro.getCreateTime(), scenePro.getUserId(),
                 scenePro.getWebSite(), scenePro.getCreateTime(), scenePro.getUserId(),
-                sceneProExt.getDataSource(), scenePro.getSceneStatus(), sceneProExt.getPayStatus(), scenePro.getThumb());
+                sceneProExt.getDataSource(), scenePro.getSceneStatus(), scenePro.getPayStatus(), scenePro.getThumb());
 
 
         sceneProPO.setMqMsg(buildSceneMqMessage);
         sceneProPO.setMqMsg(buildSceneMqMessage);
         BeanUtil.copyProperties(sceneProExt, sceneProPO);
         BeanUtil.copyProperties(sceneProExt, sceneProPO);

+ 471 - 39
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneProAppServiceImpl.java

@@ -2,16 +2,14 @@ package com.fdkankan.scene.service.impl;
 
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.util.StrUtil;
-import cn.hutool.http.HttpStatus;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.common.constant.*;
 import com.fdkankan.common.constant.*;
-import com.fdkankan.common.response.PageInfo;
 import com.fdkankan.common.util.*;
 import com.fdkankan.common.util.*;
 import com.fdkankan.platform.api.feign.PlatformGoodsClient;
 import com.fdkankan.platform.api.feign.PlatformGoodsClient;
 import com.fdkankan.platform.api.feign.PlatformUserClient;
 import com.fdkankan.platform.api.feign.PlatformUserClient;
@@ -21,23 +19,19 @@ import com.fdkankan.platform.api.vo.User;
 import com.fdkankan.redis.constant.RedisKey;
 import com.fdkankan.redis.constant.RedisKey;
 import com.fdkankan.redis.constant.RedisLockKey;
 import com.fdkankan.redis.constant.RedisLockKey;
 import com.fdkankan.redis.util.RedisLockUtil;
 import com.fdkankan.redis.util.RedisLockUtil;
-import com.fdkankan.scene.entity.SceneCooperation;
-import com.fdkankan.scene.entity.ScenePro;
-import com.fdkankan.scene.entity.SceneProEdit;
-import com.fdkankan.scene.entity.SceneProEditExt;
+import com.fdkankan.scene.entity.*;
 import com.fdkankan.scene.mapper.ISceneProMapper;
 import com.fdkankan.scene.mapper.ISceneProMapper;
 import com.fdkankan.scene.service.*;
 import com.fdkankan.scene.service.*;
-import com.fdkankan.scene.vo.SceneEditVO;
+import com.fdkankan.scene.vo.*;
 import com.fdkankan.common.constant.ErrorCode;
 import com.fdkankan.common.constant.ErrorCode;
 import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.response.ResultData;
 import com.fdkankan.common.response.ResultData;
 import com.fdkankan.fyun.oss.UploadToOssUtil;
 import com.fdkankan.fyun.oss.UploadToOssUtil;
-import com.fdkankan.scene.vo.SceneVO;
-import com.fdkankan.scene.vo.UserParamVO;
-import com.google.common.collect.Lists;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import net.coobird.thumbnailator.Thumbnails;
 import net.coobird.thumbnailator.Thumbnails;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.joda.time.DateTime;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.beans.factory.annotation.Value;
@@ -98,7 +92,7 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
     private ISceneCooperationService sceneCooperationService;
     private ISceneCooperationService sceneCooperationService;
 
 
     @Override
     @Override
-    public ResultData saveInitialPage(SceneEditVO base) throws Exception {
+    public ResultData saveInitialPage(SceneEditParamVO base) throws Exception {
         if(StringUtils.isEmpty(base.getSceneNum()) || StringUtils.isEmpty(base.getInitialPoint())){
         if(StringUtils.isEmpty(base.getSceneNum()) || StringUtils.isEmpty(base.getInitialPoint())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
         }
@@ -163,7 +157,7 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
     }
     }
 
 
     @Override
     @Override
-    public ResultData saveFloorLogo(SceneEditVO base) throws Exception {
+    public ResultData saveFloorLogo(SceneEditParamVO base) throws Exception {
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getSize()) ||
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getSize()) ||
                 StrUtil.isEmpty(base.getLogoType())){
                 StrUtil.isEmpty(base.getLogoType())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
@@ -209,7 +203,7 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
 
 
     @Override
     @Override
     @SuppressWarnings("unchecked")
     @SuppressWarnings("unchecked")
-    public ResultData saveHot(SceneEditVO base) throws Exception {
+    public ResultData saveHot(SceneEditParamVO base) throws Exception {
         if(StrUtil.isEmpty(base.getType())){
         if(StrUtil.isEmpty(base.getType())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
         }
@@ -265,7 +259,7 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
     }
     }
 
 
     @Override
     @Override
-    public ResultData saveBackgroundMusic(SceneEditVO base) throws Exception {
+    public ResultData saveBackgroundMusic(SceneEditParamVO base) throws Exception {
         if(StringUtils.isEmpty(base.getSceneNum()) || StringUtils.isEmpty(base.getMusicName())){
         if(StringUtils.isEmpty(base.getSceneNum()) || StringUtils.isEmpty(base.getMusicName())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
         }
@@ -298,7 +292,7 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
     }
     }
 
 
     @Override
     @Override
-    public ResultData saveSceneInfo(SceneEditVO base) throws Exception{
+    public ResultData saveSceneInfo(SceneEditParamVO base) throws Exception{
         if(StringUtils.isEmpty(base.getSceneNum()) || StringUtils.isEmpty(base.getSceneName()) ||
         if(StringUtils.isEmpty(base.getSceneNum()) || StringUtils.isEmpty(base.getSceneName()) ||
                 StringUtils.isEmpty(base.getSceneType()) || StringUtils.isEmpty(base.getSceneDec())){
                 StringUtils.isEmpty(base.getSceneType()) || StringUtils.isEmpty(base.getSceneDec())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
@@ -357,7 +351,7 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
     }
     }
 
 
     @Override
     @Override
-    public ResultData saveSceneKey(SceneEditVO base) throws Exception{
+    public ResultData saveSceneKey(SceneEditParamVO base) throws Exception{
         if(StringUtils.isEmpty(base.getSceneNum()) || StringUtils.isEmpty(base.getSceneKey())){
         if(StringUtils.isEmpty(base.getSceneNum()) || StringUtils.isEmpty(base.getSceneKey())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
         }
@@ -393,7 +387,7 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
     }
     }
 
 
     @Override
     @Override
-    public ResultData saveTourList(SceneEditVO base) throws Exception{
+    public ResultData saveTourList(SceneEditParamVO base) throws Exception{
         if(StringUtils.isEmpty(base.getSceneNum()) || StringUtils.isEmpty(base.getTourList())){
         if(StringUtils.isEmpty(base.getSceneNum()) || StringUtils.isEmpty(base.getTourList())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
         }
@@ -588,7 +582,7 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
     }
     }
 
 
     @Override
     @Override
-    public ResultData saveScreencapFile(SceneEditVO base) throws Exception{
+    public ResultData saveScreencapFile(SceneEditParamVO base) throws Exception{
         if(StringUtils.isEmpty(base.getSceneNum()) || StringUtils.isEmpty(base.getIndex()) ||
         if(StringUtils.isEmpty(base.getSceneNum()) || StringUtils.isEmpty(base.getIndex()) ||
                 StringUtils.isEmpty(base.getCamerasData())){
                 StringUtils.isEmpty(base.getCamerasData())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
@@ -646,7 +640,7 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
     }
     }
 
 
     @Override
     @Override
-    public ResultData saveHotVisible(SceneEditVO base) throws Exception{
+    public ResultData saveHotVisible(SceneEditParamVO base) throws Exception{
         if(StringUtils.isEmpty(base.getData())){
         if(StringUtils.isEmpty(base.getData())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
         }
@@ -701,7 +695,7 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
     }
     }
 
 
     @Override
     @Override
-    public ResultData saveLinkPano(SceneEditVO base) throws Exception{
+    public ResultData saveLinkPano(SceneEditParamVO base) throws Exception{
         if(StringUtils.isEmpty(base.getData()) || StringUtils.isEmpty(base.getSceneNum())){
         if(StringUtils.isEmpty(base.getData()) || StringUtils.isEmpty(base.getSceneNum())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
         }
@@ -785,7 +779,7 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
     }
     }
 
 
     @Override
     @Override
-    public ResultData getRecordAudioFromWeixin(SceneEditVO base) throws Exception{
+    public ResultData getRecordAudioFromWeixin(SceneEditParamVO base) throws Exception{
         if(StringUtils.isEmpty(base.getSceneNum()) || StringUtils.isEmpty(base.getId())){
         if(StringUtils.isEmpty(base.getSceneNum()) || StringUtils.isEmpty(base.getId())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
         }
@@ -866,7 +860,10 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
     }
     }
 
 
     @Override
     @Override
-    public ResultData getRecordAudioFromWeixinV3(String sceneNum, String id, String type, String fileName, String length, String replace, String times, String index) throws Exception {
+    public ResultData getRecordAudioFromWeixinV3(FileParamVO param) throws Exception {
+        String sceneNum = param.getSceneNum();
+        String id = param.getId();
+        String fileName = param.getFileName();
         if(StringUtils.isEmpty(sceneNum) || StringUtils.isEmpty(id)){
         if(StringUtils.isEmpty(sceneNum) || StringUtils.isEmpty(id)){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
         }
@@ -911,9 +908,9 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
         if(!partFile.exists()){
         if(!partFile.exists()){
             partFile.mkdirs();
             partFile.mkdirs();
         }
         }
-        if(!"1".equals(replace)){
+        if(!"1".equals(param.getReplace())){
             return ResultData.ok(this.replaceForWeixinV3(sceneProEdit, scenejson,
             return ResultData.ok(this.replaceForWeixinV3(sceneProEdit, scenejson,
-                    path, partPath, fileName, originalFileName, sceneNum, times));
+                    path, partPath, fileName, originalFileName, sceneNum, param.getTimes()));
         }
         }
 
 
         FileUtils.delAllFile(path + File.separator + "part");
         FileUtils.delAllFile(path + File.separator + "part");
@@ -950,7 +947,10 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
     }
     }
 
 
     @Override
     @Override
-    public ResultData getRecordAudioFromAppV3(String sceneNum, String soundFile, String type, String fileName, String length, String replace, String times, String index) throws Exception {
+    public ResultData getRecordAudioFromAppV3(FileParamVO param) throws Exception {
+        String sceneNum = param.getSceneNum();
+        String soundFile = param.getSoundFile();
+        String fileName = param.getFileName();
         if(StringUtils.isEmpty(sceneNum) || StringUtils.isEmpty(soundFile)){
         if(StringUtils.isEmpty(sceneNum) || StringUtils.isEmpty(soundFile)){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
         }
@@ -980,9 +980,9 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
             partFile.mkdirs();
             partFile.mkdirs();
         }
         }
 
 
-        if(!"1".equals(replace)){
+        if(!"1".equals(param.getReplace())){
             return ResultData.ok(this.replaceForAppV3(sceneProEdit, scenejson,
             return ResultData.ok(this.replaceForAppV3(sceneProEdit, scenejson,
-                    path, partPath, fileName, originalFileName, sceneNum, times, soundFile));
+                    path, partPath, fileName, originalFileName, sceneNum, param.getTimes(), soundFile));
         }
         }
 
 
         FileUtils.delAllFile(path + File.separator + "part");
         FileUtils.delAllFile(path + File.separator + "part");
@@ -1021,8 +1021,11 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
     }
     }
 
 
     @Override
     @Override
-    public ResultData deleteRecordAudioPart(String sceneNum, String fileName, String times, String index, String type) throws Exception {
+    public ResultData deleteRecordAudioPart(FileParamVO param) throws Exception {
 
 
+        String sceneNum = param.getSceneNum();
+        String index = param.getIndex();
+        String times = param.getTimes();
         if(StringUtils.isEmpty(sceneNum)){
         if(StringUtils.isEmpty(sceneNum)){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
         }
@@ -1137,7 +1140,7 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
     }
     }
 
 
     @Override
     @Override
-    public ResultData uploadFloorJsonAndRebuild(SceneEditVO sceneEdit) throws Exception {
+    public ResultData uploadFloorJsonAndRebuild(SceneEditParamVO sceneEdit) throws Exception {
 
 
         String lockKey = String.format(RedisLockKey.LOCK_UPLOAD_FLOORJSON_REBUILD, sceneEdit.getSceneNum());
         String lockKey = String.format(RedisLockKey.LOCK_UPLOAD_FLOORJSON_REBUILD, sceneEdit.getSceneNum());
         Boolean lock = redisLockUtil.lock(lockKey, RedisKey.EXPIRE_TIME_2_HOUR);
         Boolean lock = redisLockUtil.lock(lockKey, RedisKey.EXPIRE_TIME_2_HOUR);
@@ -1217,7 +1220,7 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
     }
     }
 
 
     @Override
     @Override
-    public ResultData saveScreencapData(SceneEditVO base) throws Exception {
+    public ResultData saveScreencapData(SceneEditParamVO base) throws Exception {
         if(StringUtils.isEmpty(base.getSceneNum())){
         if(StringUtils.isEmpty(base.getSceneNum())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
         }
@@ -1301,7 +1304,7 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
 
 
     }
     }
 
 
-    public ResultData saveAllVisi(SceneEditVO base) throws Exception {
+    public ResultData saveAllVisi(SceneEditParamVO base) throws Exception {
         if(StrUtil.isEmpty(base.getSceneNum())){
         if(StrUtil.isEmpty(base.getSceneNum())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
         }
@@ -1524,7 +1527,7 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
         return ResultData.ok();
         return ResultData.ok();
     }
     }
 
 
-    private void updateVisiData(SceneEditVO base, SceneProEdit sceneProEdit, JSONObject scenejson){
+    private void updateVisiData(SceneEditParamVO base, SceneProEdit sceneProEdit, JSONObject scenejson){
         SceneProEditExt sceneProEditExt = sceneProEditExtService.getOne(
         SceneProEditExt sceneProEditExt = sceneProEditExtService.getOne(
                 new QueryWrapper<SceneProEditExt>().eq("pro_edit_id", sceneProEdit.getId()));
                 new QueryWrapper<SceneProEditExt>().eq("pro_edit_id", sceneProEdit.getId()));
         if(!StringUtils.isEmpty(base.getMapVisi())){
         if(!StringUtils.isEmpty(base.getMapVisi())){
@@ -1762,9 +1765,9 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
     }
     }
 
 
 
 
-    private Object[] getUploadFileMapAndSceneJson(SceneEditVO base, JSONArray jsonhots, JSONObject jsonhot, String sid,
-                                                StringBuffer imagesBuf, StringBuffer imagesBuffer,
-                                                StringBuffer dataBuf, StringBuffer dataBuffer) throws Exception {
+    private Object[] getUploadFileMapAndSceneJson(SceneEditParamVO base, JSONArray jsonhots, JSONObject jsonhot, String sid,
+                                                  StringBuffer imagesBuf, StringBuffer imagesBuffer,
+                                                  StringBuffer dataBuf, StringBuffer dataBuffer) throws Exception {
         Object[] result = new Object[2];
         Object[] result = new Object[2];
         Map<String,String> map = new HashMap<String,String>();
         Map<String,String> map = new HashMap<String,String>();
         if(jsonhot.containsKey("media")) {
         if(jsonhot.containsKey("media")) {
@@ -1846,7 +1849,7 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
         return result;
         return result;
     }
     }
 
 
-    private String deleteCustomStyleHots(SceneEditVO base, JSONArray jsonhots, JSONObject jsonhot, String sid){
+    private String deleteCustomStyleHots(SceneEditParamVO base, JSONArray jsonhots, JSONObject jsonhot, String sid){
         String hotsids = "";
         String hotsids = "";
         String[] styles = null;
         String[] styles = null;
         if(StrUtil.isNotEmpty(base.getStyleName())){
         if(StrUtil.isNotEmpty(base.getStyleName())){
@@ -1898,7 +1901,7 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
         return hotsids;
         return hotsids;
     }
     }
 
 
-    private JSONArray getJsonhots(SceneEditVO base, StringBuffer dataBuffer, JSONObject jsonhot) throws Exception {
+    private JSONArray getJsonhots(SceneEditParamVO base, StringBuffer dataBuffer, JSONObject jsonhot) throws Exception {
         String str = FileUtils.readFile(dataBuffer.toString() + "hot.json");
         String str = FileUtils.readFile(dataBuffer.toString() + "hot.json");
         JSONArray jsonhots = null;
         JSONArray jsonhots = null;
         if (StrUtil.isNotEmpty(str)) {
         if (StrUtil.isNotEmpty(str)) {
@@ -1920,7 +1923,7 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
         return jsonhots;
         return jsonhots;
     }
     }
 
 
-    private String getSidFromParams(SceneEditVO base, JSONObject jsonhot){
+    private String getSidFromParams(SceneEditParamVO base, JSONObject jsonhot){
         String sid = base.getSid();
         String sid = base.getSid();
         //添加或者修改
         //添加或者修改
         if(SceneEditType.ADD.code().equals(base.getType())){
         if(SceneEditType.ADD.code().equals(base.getType())){
@@ -2083,6 +2086,435 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
         return sceneList;
         return sceneList;
     }
     }
 
 
+    @Override
+    public Long getSceneCount(@RequestBody UserParamVO user) {
+
+        if(StrUtil.isEmpty(user.getAppUserName()) || StrUtil.isEmpty(user.getAppPassword())){
+            throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
+        }
+        ResultData<Camera> CameraResult = platformGoodsClient.getByChildNameAndChildPassword(user.getAppUserName(), user.getAppPassword());
+        Camera camera = CameraResult.getData();
+        if(camera == null){
+            throw new BusinessException(ErrorCode.FAILURE_CODE_3014);
+        }
+
+        return sceneProService.getSceneCount(camera.getId());
+    }
+
+    @Override
+    public Integer getSceneStatus(@RequestBody UserParamVO user) {
+
+        if(StrUtil.isEmpty(user.getAppUserName()) || StrUtil.isEmpty(user.getAppPassword())
+                || StrUtil.isEmpty(user.getSceneNum())){
+            throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
+        }
+        ResultData<Camera> CameraResult = platformGoodsClient.getByChildNameAndChildPassword(user.getAppUserName(), user.getAppPassword());
+        Camera camera = CameraResult.getData();
+        if(camera == null){
+            throw new BusinessException(ErrorCode.FAILURE_CODE_3014);
+        }
+
+        ScenePro scene = sceneProService.findBySceneNum(user.getSceneNum());
+        if(scene == null){
+            scene = sceneProService.findDeleteSceneBySceneNum(user.getSceneNum());
+            if(scene == null){
+                throw new BusinessException(SceneConstant.FAILURE_CODE_5005, SceneConstant.FAILURE_MSG_5005);
+            }
+            throw new BusinessException(SceneConstant.FAILURE_CODE_5006, SceneConstant.FAILURE_MSG_5006);
+        }
+
+        return scene.getSceneStatus();
+    }
+
+    @Override
+    public Map<String, Object> getSceneStatusByUnicode(@RequestBody UserParamVO user){
+        if(StrUtil.isEmpty(user.getAppUserName()) || StrUtil.isEmpty(user.getAppPassword())
+                || StrUtil.isEmpty(user.getUnicode())){
+            log.info("appUserName:" + user.getAppUserName() + ",appPassword:" + user.getAppPassword() +
+                    ",unicode:" + user.getUnicode());
+            throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
+        }
+        ResultData<Camera> CameraResult = platformGoodsClient.getByChildNameAndChildPassword(user.getAppUserName(), user.getAppPassword());
+        Camera camera = CameraResult.getData();
+        if(camera == null){
+            throw new BusinessException(ErrorCode.FAILURE_CODE_3014);
+        }
+
+        SceneProPO sceneProPO = sceneProService.getSceneStatusByUnicode(user.getUnicode(), "A");
+        if(sceneProPO == null){
+            sceneProPO = sceneProService.getSceneStatusByUnicode(user.getUnicode(), "I");
+            if(sceneProPO == null){
+                throw new BusinessException(SceneConstant.FAILURE_CODE_5005, SceneConstant.FAILURE_MSG_5005);
+            }
+            throw new BusinessException(SceneConstant.FAILURE_CODE_5009, SceneConstant.FAILURE_MSG_5009);
+        }
+        if(sceneProPO.getPayStatus() == -2){
+            throw new BusinessException(SceneConstant.FAILURE_CODE_5006, SceneConstant.FAILURE_MSG_5006);
+        }
+        // 当计算时,返回给前端的状态为计算中
+        if (sceneProPO.getSceneStatus() == -1) {
+            sceneProPO.setSceneStatus(0);
+        } else if (sceneProPO.getSceneStatus() == 500) {
+            sceneProPO.setSceneStatus(-1);
+        }
+        Map<String, Object> map = new HashMap<>();
+        //临时将-2改成1,app还没完全更新
+        map.put("status", sceneProPO.getSceneStatus() == -2? 1 : sceneProPO.getSceneStatus());
+        map.put("webSite", sceneProPO.getWebSite());
+        map.put("sceneNum", sceneProPO.getSceneCode());
+        map.put("thumb", sceneProPO.getThumb());
+        map.put("dataSource", sceneProPO.getDataSource());
+        map.put("payStatus", sceneProPO.getPayStatus());
+        map.put("recStatus", sceneProPO.getRecStatus());
+
+        return map;
+    }
+
+    @Autowired
+    ISceneService sceneService;
+    @Autowired
+    ISceneProExtService sceneProExtService;
+    @Autowired
+    IFolderSceneService folderSceneService;
+
+    @Override
+    public ResultData deleteForCameraName(@RequestBody UserParamVO user) throws Exception {
+        if (user.getCameraId() == null || StrUtil.isEmpty(user.getSceneNum())) {
+            throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
+        }
+        ResultData<CameraDetail> detailResult = platformGoodsClient.getCameraDetailByCameraId(user.getCameraId());
+        CameraDetail detail = detailResult.getData();
+        if (detail == null) {
+            throw new BusinessException(CameraConstant.FAILURE_6003);
+        }
+
+        ScenePro scenePro = sceneProService.findBySceneNum(user.getSceneNum());
+        if(scenePro == null){
+            throw new BusinessException(SceneConstant.FAILURE_CODE_5005, SceneConstant.FAILURE_MSG_5005);
+        }
+
+        if(scenePro.getCameraId().longValue() != user.getCameraId().longValue()){
+            throw new BusinessException(SceneConstant.FAILURE_CODE_5010, SceneConstant.FAILURE_MSG_5010);
+        }
+
+        String[] nums = user.getSceneNum().split(",");
+        for (String num : nums) {
+            SceneVO sceneVO = this.getSceneDetail(num);
+            if (sceneVO == null){
+                return ResultData.error(ErrorCode.FAILURE_CODE_5005);
+            }
+            ResultData resultData = this.deleteScene(num);
+            if (sceneVO.getSceneScheme() >= 3 && sceneVO.getSpace() != null){
+
+                ResultData<CameraDetail> cameraDetailResultData = platformGoodsClient.updateCameraDetailByCameraIdAndSpace(sceneVO.getCameraId(), -sceneVO.getSpace());
+                CameraDetail detail2 = cameraDetailResultData.getData();
+                if(detail2 != null){
+                    //计算该相机所有扣费成功的场景容量总和
+                    List<SceneVO> scenes = this.findScenesByUserIdAndSceneScheme(sceneVO.getCameraId(), "create_time", 1);
+                    Long accumulateSpace = new Long("0");
+                    for(SceneVO vo : scenes){
+                        accumulateSpace = accumulateSpace + vo.getSpace();
+                    }
+                    //相机总容量 - 所有扣费成功的容量 = 可恢复场景的容量
+                    if (detail2.getTotalSpace().compareTo(accumulateSpace) != -1){
+                        this.unlockBeyondSpaceScenes(detail2.getTotalSpace() - accumulateSpace, sceneVO.getCameraId());
+                    }
+                }
+            }
+
+            //删除文件夹里面的场景关联
+            folderSceneService.deleteBySceneId(sceneVO.getId());
+        }
+
+
+        return ResultData.ok();
+    }
+
+    @Override
+    public void unlockBeyondSpaceScenes(Long newSpace, Long cameraId) throws Exception{
+        List<SceneVO> scenes = this.findScenesByUserIdAndSceneScheme(cameraId, "create_time", PayStatus.NO_CAPACITY.code());
+        Long accumulateSpace = new Long("0");
+        List<Long> unlockedIds = new ArrayList<>();
+        if (scenes != null && scenes.size() > 0){
+            for (SceneVO responseScene : scenes){
+                if (responseScene.getPayStatus() == -1 || responseScene.getPayStatus() == -2){
+                    //newSpace为空的时候,表示无限容量
+                    if(newSpace == null){
+                        unlockedIds.add(responseScene.getId());
+                        continue;
+                    }
+
+                    accumulateSpace = accumulateSpace + responseScene.getSpace();
+                    if (accumulateSpace.compareTo(newSpace) != 1){
+                        unlockedIds.add(responseScene.getId());
+                    }else {
+                        break;
+                    }
+                }
+
+            }
+        }
+        unlockScenes(unlockedIds);
+    }
+
+    public void unlockScenes(List<Long> lockedIds) {
+        if (lockedIds == null || lockedIds.size() == 0){
+            return;
+        }
+        for (Long id : lockedIds){
+            ScenePro scenePro = sceneProService.getById(id);
+            scenePro.setPayStatus(1);
+            sceneProService.updateById(scenePro);
+
+            try{
+                Map<String, Object> map = new HashMap<>();
+                map.put("payStatus", 1);
+                FileUtils.writeJsonFile(ConstantFilePath.SCENE_PATH + "data/data" + scenePro.getSceneCode() + "/scene.json", map);
+                com.alibaba.fastjson.JSONObject statusJson = new com.alibaba.fastjson.JSONObject();
+
+                //临时将-2改成1,app还没完全更新
+                statusJson.put("status", scenePro.getSceneStatus() == -2? 1 : scenePro.getSceneStatus());
+                statusJson.put("webSite", scenePro.getWebSite());
+                statusJson.put("sceneNum", scenePro.getSceneCode());
+                statusJson.put("thumb", scenePro.getThumb());
+                statusJson.put("payStatus", scenePro.getPayStatus());
+                FileUtils.writeFile(ConstantFilePath.SCENE_PATH+"data/data"+scenePro.getSceneCode()+ File.separator+"status.json", statusJson.toString());
+                uploadToOssUtil.upload(ConstantFilePath.SCENE_PATH+"data/data"+scenePro.getSceneCode()+File.separator+"status.json",
+                        "data/data"+scenePro.getSceneCode()+File.separator+"status.json");
+
+            }catch (Exception e){
+                e.printStackTrace();
+            }
+        }
+    }
+
+
+
+    public SceneVO getSceneDetail(String sceneNum) throws Exception{
+        SceneVO vo = null;
+        ScenePO scene = sceneService.findBySceneNum(sceneNum);
+        if(scene != null){
+            vo = getResponseScene(vo, scene);
+            return vo;
+        }
+
+        ScenePro scenePro = sceneProService.findBySceneNum(sceneNum);
+        SceneProExt sceneProExt = sceneProExtService.findBySceneProId(scenePro.getId());
+        SceneProEdit sceneProEdit = sceneProEditService.findByProId(scenePro.getId());
+        SceneProEditExt sceneProEditExt = sceneProEditExtService.getByProEditId(sceneProEdit.getId());
+        vo = getResponseProScene(vo, scenePro, sceneProExt, sceneProEdit, sceneProEditExt);
+        return vo;
+    }
+
+    private SceneVO getResponseScene(SceneVO vo, ScenePO scene) {
+        if (Objects.isNull(scene))
+            return vo;
+        vo = new SceneVO();
+        BeanUtils.copyProperties(scene, vo);
+        vo.setThumbImg(scene.getThumbStatus());
+        vo.setCreateTime(new DateTime(scene.getCreateTime()).toString("yyyy-MM-dd HH:mm"));
+        vo.setSceneIndex(scene.getStyle());
+        vo.setHasBGM(scene.getBgMusic());
+        vo.setCameraType(scene.getSceneScheme());
+        vo.setIsPublic(StringUtils.isEmpty(scene.getSceneKey()) ? 0 : 1);
+        return vo;
+    }
+
+    private SceneVO getResponseProScene(SceneVO vo, ScenePro scenePro, SceneProExt sceneProExt,
+                                        SceneProEdit sceneProEdit, SceneProEditExt sceneProEditExt) {
+        if (Objects.isNull(scenePro))
+            return vo;
+        vo = new SceneVO();
+        BeanUtils.copyProperties(sceneProEditExt, vo);
+        BeanUtils.copyProperties(sceneProEdit, vo);
+        BeanUtils.copyProperties(sceneProExt, vo);
+        BeanUtils.copyProperties(scenePro, vo);
+        vo.setCreateTime(new DateTime(scenePro.getCreateTime()).toString("yyyy-MM-dd HH:mm"));
+        vo.setCameraType(scenePro.getSceneScheme());
+
+        vo.setThumbImg(sceneProEdit.getThumbStatus());
+        vo.setHasBGM(sceneProEdit.getBgMusic());
+        vo.setIsPublic(StringUtils.isEmpty(sceneProEdit.getSceneKey()) ? 0 : 1);
+        return vo;
+    }
+
+    @Override
+    public ResultData deleteScene(String sceneNum) throws Exception {
+        ScenePO scenePo = sceneService.findBySceneNum(sceneNum);
+        SceneVO vo = null;
+        if(scenePo != null){
+            sceneService.update(new LambdaUpdateWrapper<Scene>()
+                    .eq(Scene::getId, scenePo.getId())
+                    .set(Scene::getRecStatus, RecStatus.DISABLE.code())
+                    .set(Scene::getUpdateTime, Calendar.getInstance().getTime()));
+
+            vo = getResponseScene(vo, scenePo);
+            return ResultData.ok(vo);
+        }
+
+        ScenePro scenePro = sceneProService.findBySceneNum(sceneNum);
+        SceneProExt sceneProExt = sceneProExtService.findBySceneProId(scenePro.getId());
+        scenePro.setRecStatus("I");
+        scenePro.setUpdateTime(new Date());
+        sceneProService.updateById(scenePro);
+
+        JSONObject statusJson = new JSONObject();
+        //临时将-2改成1,app还没完全更新
+        statusJson.put("status", scenePro.getSceneStatus() == -2? 1 : scenePro.getSceneStatus());
+        statusJson.put("webSite", scenePro.getWebSite());
+        statusJson.put("sceneNum", scenePro.getSceneCode());
+        statusJson.put("thumb", scenePro.getThumb());
+        statusJson.put("payStatus", scenePro.getPayStatus());
+        statusJson.put("recStatus", scenePro.getRecStatus());
+        FileUtils.writeFile(ConstantFilePath.SCENE_PATH+"data/data"+sceneNum+File.separator+"status.json", statusJson.toString());
+        uploadToOssUtil.upload(ConstantFilePath.SCENE_PATH+"data/data"+sceneNum+File.separator+"status.json",
+                "data/data"+sceneNum+File.separator+"status.json");
+
+        return ResultData.ok();
+    }
+
+    @Override
+    public List<SceneVO> findScenesByUserIdAndSceneScheme(Long cameraId, String orderBy, Integer payStatus) {
+        List<ScenePro> sceneProList = sceneProService.list(new LambdaQueryWrapper<ScenePro>()
+                .eq(ScenePro::getRecStatus, RecStatus.VALID.code())
+                .in(ScenePro::getSceneStatus, SceneStatus.SUCCESS.code(), SceneStatus.NO_DISPLAY.code())
+                .eq(ScenePro::getCameraId, cameraId)
+                .eq(ScenePro::getPayStatus, payStatus).last(orderBy));
+
+        List<Long> idList = sceneProList.stream().map(pro -> {
+            return pro.getId();
+        }).collect(Collectors.toList());
+
+        List<SceneProExt> sceneProExtList = sceneProExtService.list(new LambdaQueryWrapper<SceneProExt>().in(SceneProExt::getSceneProId, idList));
+        Map<Long, SceneProExt> extMap = new HashMap<>();
+        sceneProExtList.forEach(ext -> {
+            extMap.put(ext.getSceneProId(), ext);
+        });
+
+        List<SceneVO> voList = sceneProList.parallelStream().map(pro -> {
+            SceneVO vo = new SceneVO();
+            SceneProExt sceneProExt = extMap.get(pro.getId());
+            BeanUtils.copyProperties(sceneProExt, vo);
+            BeanUtils.copyProperties(pro, vo);
+            return vo;
+        }).collect(Collectors.toList());
+
+        return voList;
+    }
+
+    @Override
+    public ResultData getScreencapVoice(@RequestBody SceneParamVO scene) throws Exception {
+        if (StrUtil.isEmpty(scene.getScreencapMusic()) || StrUtil.isEmpty(scene.getOriginalFileName())
+                || StrUtil.isEmpty(scene.getSceneNum())) {
+            throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
+        }
+
+        ScenePro scenePro = sceneProService.findBySceneNum(scene.getSceneNum());
+        if(scenePro == null){
+            throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
+        }
+
+        SceneProEdit sceneProEdit = sceneProEditService.findByProId(scenePro.getId());
+
+        //八目存放新的录音位置
+        long time = System.currentTimeMillis();
+        Map<String, Object> map = new HashMap();
+        map.put("screencapVoiceSoundsyncFileName", scene.getScreencapMusic() + ".mp3");
+        map.put("screencapVoiceSoundsync", scene.getOriginalFileName() + "?t=" + time);
+        log.info("微信上传的音频路径:" + scene.getOriginalFileName() + "?t=" + time);
+        map.put("screencapVoiceType", "soundsync");
+        map.put("version", sceneProEdit.getVersion() + 1);
+
+        StringBuffer dataBuffer = new StringBuffer(ConstantFilePath.SCENE_PATH)
+                .append("data").append(File.separator)
+                .append("data").append(scene.getSceneNum());
+        FileUtils.writeJsonFile(dataBuffer.append(File.separator).append("scene.json").toString(), map);
+
+        sceneProEdit.setScreencapVoiceSoundsync(scene.getOriginalFileName() + "?t=" + time);
+        sceneProEdit.setScreencapVoiceType("soundsync");
+        sceneProEdit.setVersion(sceneProEdit.getVersion() + 1);
+
+        FileUtils.downLoadFromUrl(scene.getOriginalFileName() + "?t=" + time, scene.getScreencapMusic() + ".mp3",
+                ConstantFilePath.SCENE_PATH+ "voice" + File.separator + "voice" + scene.getSceneNum());
+
+        sceneProEditService.updateById(sceneProEdit);
+        return ResultData.ok();
+    }
+
+    public List<SceneVO> getAllSceneByUserName(UserParamVO user) throws Exception {
+        if (StrUtil.isEmpty(user.getPhoneNum())) {
+            throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
+        }
+
+        ResultData<User> userResult = platformUserClient.getUserByName(user.getPhoneNum());
+        User ssoUser = userResult.getData();
+
+        if (ssoUser == null) {
+            throw new BusinessException(ErrorCode.FAILURE_CODE_3015);
+        }
+
+        if(user.getCameraType() == null){
+            user.setCameraType(4);
+        }
+        List<SceneProPO> list = sceneProService.findByUserIdAndCameraType(ssoUser.getId(), user.getCameraType());
+
+        List<SceneVO> sceneList = sceneProService.convert2(list);
+        for(SceneVO vo : sceneList){
+            ResultData<Camera> cameraResult = platformGoodsClient.getCameraById(vo.getCameraId());
+            Camera camera = cameraResult.getData();
+            if(camera != null){
+                vo.setChildName(camera.getChildName());
+            }
+        }
+        return sceneList;
+    }
+
+    @Override
+    public ResultData cooperationSceneList(@RequestBody UserParamVO user){
+        if (StrUtil.isEmpty(user.getPhoneNum())) {
+            throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
+        }
+
+        ResultData<User> userResult = platformUserClient.getUserByName(user.getPhoneNum());
+        User ssoUser = userResult.getData();
+
+        if (ssoUser == null) {
+            throw new BusinessException(ErrorCode.FAILURE_CODE_3015);
+        }
+
+        if(user.getCameraType() == null){
+            user.setCameraType(4);
+        }
+
+        List<SceneCooperation> list = sceneCooperationService.list(
+                    new LambdaQueryWrapper<SceneCooperation>()
+                            .eq(SceneCooperation::getRecStatus, RecStatus.VALID.code())
+                            .eq(SceneCooperation::getUserId, ssoUser.getId())
+                            .orderByDesc(SceneCooperation::getId));
+
+        if(list == null || list.size() <= 0){
+            return ResultData.ok();
+        }
+
+        List<String> sceneCodeList = list.parallelStream().map(sc -> {
+            return sc.getSceneCode();
+        }).collect(Collectors.toList());
+
+        List<SceneProPO>  sceneProPOList = sceneProService.findBySceneNums(sceneCodeList, user.getCameraType());
+
+        List<SceneVO> sceneVOList = sceneProService.convert2(sceneProPOList);
+        for(SceneVO responseScene : sceneVOList){
+            ResultData<Camera> cameraResult = platformGoodsClient.getCameraById(responseScene.getCameraId());
+            Camera camera = cameraResult.getData();
+            if(camera != null){
+                responseScene.setChildName(camera.getChildName());
+                responseScene.setSnCode(camera.getSnCode());
+            }
+        }
+
+        return ResultData.ok(sceneVOList);
+    }
+
 
 
 
 
 
 

+ 72 - 61
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneProServiceImpl.java

@@ -24,7 +24,7 @@ import com.fdkankan.scene.entity.*;
 import com.fdkankan.scene.mapper.ISceneProMapper;
 import com.fdkankan.scene.mapper.ISceneProMapper;
 import com.fdkankan.scene.service.*;
 import com.fdkankan.scene.service.*;
 import com.fdkankan.scene.vo.FileParamVO;
 import com.fdkankan.scene.vo.FileParamVO;
-import com.fdkankan.scene.vo.SceneEditVO;
+import com.fdkankan.scene.vo.SceneEditParamVO;
 import com.fdkankan.scene.vo.SceneProVO;
 import com.fdkankan.scene.vo.SceneProVO;
 import com.fdkankan.scene.vo.SceneVO;
 import com.fdkankan.scene.vo.SceneVO;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
@@ -124,6 +124,26 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
     }
 
 
     @Override
     @Override
+    public List<SceneVO> convert2(List<SceneProPO> list){
+        List<SceneVO> sceneVOS = list.parallelStream().map(po -> {
+            SceneVO sceneVo = new SceneVO();
+            SceneProEdit sceneProEdit = sceneProEditService.findByProId(po.getId());
+            SceneProEditExt sceneProEditExt = sceneProEditExtService.getByProEditId(sceneProEdit.getId());
+            BeanUtils.copyProperties(sceneProEditExt, sceneVo);
+            BeanUtils.copyProperties(sceneProEdit, sceneVo);
+            BeanUtils.copyProperties(po, sceneVo);
+
+            sceneVo.setCreateTime(DateUtil.format(po.getCreateTime(), DateExtUtil.dateStyle4));
+            sceneVo.setCreateDate(po.getCreateTime().getTime());
+
+            return sceneVo;
+
+        }).collect(Collectors.toList());
+
+        return sceneVOS;
+    }
+
+    @Override
     public Long getSceneCount(Long cameraId) {
     public Long getSceneCount(Long cameraId) {
 
 
         return this.count(new QueryWrapper<ScenePro>()
         return this.count(new QueryWrapper<ScenePro>()
@@ -186,7 +206,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
     }
 
 
     @Override
     @Override
-    public ResultData resetUploadFloorJson(SceneEditVO sceneEdit) throws Exception{
+    public ResultData resetUploadFloorJson(SceneEditParamVO sceneEdit) throws Exception{
         if(StrUtil.isEmpty(sceneEdit.getSceneNum())){
         if(StrUtil.isEmpty(sceneEdit.getSceneNum())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
         }
@@ -241,7 +261,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
     }
 
 
     @Override
     @Override
-    public ResultData uploadFloorJson(SceneEditVO sceneEdit) throws Exception {
+    public ResultData uploadFloorJson(SceneEditParamVO sceneEdit) throws Exception {
 
 
         String lockKey = String.format(RedisLockKey.LOCK_UPLOAD_FLOORJSON_REBUILD, sceneEdit.getSceneNum());
         String lockKey = String.format(RedisLockKey.LOCK_UPLOAD_FLOORJSON_REBUILD, sceneEdit.getSceneNum());
         Boolean lock = redisLockUtil.lock(lockKey, RedisKey.EXPIRE_TIME_2_HOUR);
         Boolean lock = redisLockUtil.lock(lockKey, RedisKey.EXPIRE_TIME_2_HOUR);
@@ -660,7 +680,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
     }
 
 
     @Override
     @Override
-    public ResultData addHotMediaInfo(SceneEditVO base) throws Exception{
+    public ResultData addHotMediaInfo(SceneEditParamVO base) throws Exception{
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getType()) ||
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getType()) ||
                 StrUtil.isEmpty(base.getInfo())){
                 StrUtil.isEmpty(base.getInfo())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
@@ -692,7 +712,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
     }
 
 
     @Override
     @Override
-    public ResultData saveScreencapFile(SceneEditVO base) throws Exception{
+    public ResultData saveScreencapFile(SceneEditParamVO base) throws Exception{
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getIndex()) ||
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getIndex()) ||
                 StrUtil.isEmpty(base.getCamerasData())){
                 StrUtil.isEmpty(base.getCamerasData())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
@@ -744,7 +764,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
     }
 
 
     @Override
     @Override
-    public ResultData saveSceneKey(SceneEditVO base) throws Exception{
+    public ResultData saveSceneKey(SceneEditParamVO base) throws Exception{
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getSceneKey())){
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getSceneKey())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
         }
@@ -765,7 +785,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
     }
 
 
     @Override
     @Override
-    public ResultData saveFloorLogo(SceneEditVO base) throws Exception{
+    public ResultData saveFloorLogo(SceneEditParamVO base) throws Exception{
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getSize()) ||
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getSize()) ||
                 StrUtil.isEmpty(base.getLogoType())){
                 StrUtil.isEmpty(base.getLogoType())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
@@ -792,7 +812,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
     }
 
 
     @Override
     @Override
-    public ResultData saveBackgroundMusic(SceneEditVO base) throws Exception{
+    public ResultData saveBackgroundMusic(SceneEditParamVO base) throws Exception{
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getMusicName())){
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getMusicName())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
         }
@@ -817,7 +837,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
     }
 
 
     @Override
     @Override
-    public ResultData saveInitialPage(SceneEditVO base) throws Exception{
+    public ResultData saveInitialPage(SceneEditParamVO base) throws Exception{
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getInitialPoint())){
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getInitialPoint())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
         }
@@ -852,7 +872,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
     }
 
 
     @Override
     @Override
-    public ResultData getScreencapVoice(SceneEditVO base) throws Exception{
+    public ResultData getScreencapVoice(SceneEditParamVO base) throws Exception{
         if(StrUtil.isEmpty(base.getSceneNum())){
         if(StrUtil.isEmpty(base.getSceneNum())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
         }
@@ -1313,7 +1333,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
     }
 
 
     @Override
     @Override
-    public ResultData deleteScreencapVoice(SceneEditVO base) throws Exception{
+    public ResultData deleteScreencapVoice(SceneEditParamVO base) throws Exception{
         if(StrUtil.isEmpty(base.getSceneNum())){
         if(StrUtil.isEmpty(base.getSceneNum())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
         }
@@ -1375,7 +1395,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
     }
 
 
     @Override
     @Override
-    public ResultData deleteScreencap(SceneEditVO base) throws Exception{
+    public ResultData deleteScreencap(SceneEditParamVO base) throws Exception{
         if(StrUtil.isEmpty(base.getSceneNum())){
         if(StrUtil.isEmpty(base.getSceneNum())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
         }
@@ -1425,7 +1445,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
     }
 
 
     @Override
     @Override
-    public ResultData saveTourList(SceneEditVO base) throws Exception{
+    public ResultData saveTourList(SceneEditParamVO base) throws Exception{
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getTourList()) ||
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getTourList()) ||
                 StrUtil.isEmpty(base.getScreencapLen())){
                 StrUtil.isEmpty(base.getScreencapLen())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
@@ -1456,7 +1476,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
     }
 
 
     @Override
     @Override
-    public ResultData saveSceneInfo(SceneEditVO base) throws Exception{
+    public ResultData saveSceneInfo(SceneEditParamVO base) throws Exception{
 
 
         if(StrUtil.isEmpty(base.getSceneNum())){
         if(StrUtil.isEmpty(base.getSceneNum())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
@@ -2146,7 +2166,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
 
 
     @Override
     @Override
 //    @SystemServiceLog(description = "保存场景热点")
 //    @SystemServiceLog(description = "保存场景热点")
-    public ResultData saveHot(SceneEditVO base) throws Exception {
+    public ResultData saveHot(SceneEditParamVO base) throws Exception {
         if(StrUtil.isEmpty(base.getType())){
         if(StrUtil.isEmpty(base.getType())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
         }
@@ -2313,7 +2333,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
 
 
     @Override
     @Override
 //    @SystemServiceLog(description = "保存场景热点")
 //    @SystemServiceLog(description = "保存场景热点")
-    public ResultData saveShopHot(SceneEditVO base) throws Exception {
+    public ResultData saveShopHot(SceneEditParamVO base) throws Exception {
         if(StrUtil.isEmpty(base.getType())){
         if(StrUtil.isEmpty(base.getType())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
         }
@@ -2424,7 +2444,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
     }
 
 
     @Override
     @Override
-    public ResultData saveOverlay(SceneEditVO base) throws Exception {
+    public ResultData saveOverlay(SceneEditParamVO base) throws Exception {
         if(StrUtil.isEmpty(base.getType())){
         if(StrUtil.isEmpty(base.getType())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
         }
@@ -2572,7 +2592,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
 
 
     @Override
     @Override
 //    @SystemServiceLog(description = "保存场景热点")
 //    @SystemServiceLog(description = "保存场景热点")
-    public ResultData saveScreencapData(SceneEditVO base) throws Exception {
+    public ResultData saveScreencapData(SceneEditParamVO base) throws Exception {
         if(StrUtil.isEmpty(base.getSceneNum())){
         if(StrUtil.isEmpty(base.getSceneNum())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
         }
@@ -2635,7 +2655,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
 
 
     @Override
     @Override
 //    @SystemServiceLog(description = "漫游可行")
 //    @SystemServiceLog(description = "漫游可行")
-    public ResultData saveLinkPano(SceneEditVO base) throws Exception {
+    public ResultData saveLinkPano(SceneEditParamVO base) throws Exception {
         if(StrUtil.isEmpty(base.getData()) || StrUtil.isEmpty(base.getSceneNum())){
         if(StrUtil.isEmpty(base.getData()) || StrUtil.isEmpty(base.getSceneNum())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
         }
@@ -2720,7 +2740,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
 
 
     @Override
     @Override
 //    @SystemServiceLog(description = "保存热点可见性的数据")
 //    @SystemServiceLog(description = "保存热点可见性的数据")
-    public ResultData saveHotVisible(SceneEditVO base) throws Exception {
+    public ResultData saveHotVisible(SceneEditParamVO base) throws Exception {
         if(StrUtil.isEmpty(base.getData()) || StrUtil.isEmpty(base.getSceneNum())){
         if(StrUtil.isEmpty(base.getData()) || StrUtil.isEmpty(base.getSceneNum())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
         }
@@ -2779,7 +2799,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
     }
 
 
     @Override
     @Override
-    public ResultData uploadShareLogo(SceneEditVO base, MultipartFile file) throws Exception {
+    public ResultData uploadShareLogo(SceneEditParamVO base, MultipartFile file) throws Exception {
         if(file == null || StrUtil.isEmpty(base.getSceneNum())){
         if(file == null || StrUtil.isEmpty(base.getSceneNum())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
         }
@@ -2889,7 +2909,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
     }
 
 
     @Override
     @Override
-    public ResultData uploadHotJsonToOss(SceneEditVO param) throws Exception {
+    public ResultData uploadHotJsonToOss(SceneEditParamVO param) throws Exception {
         String sceneNum = param.getSceneNum();
         String sceneNum = param.getSceneNum();
         if(StrUtil.isEmpty(sceneNum)){
         if(StrUtil.isEmpty(sceneNum)){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
@@ -2996,12 +3016,12 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
                 .set(ScenePro::getSceneStatus, SceneStatus.NO_DISPLAY.code())
                 .set(ScenePro::getSceneStatus, SceneStatus.NO_DISPLAY.code())
                 .set(ScenePro::getCreateTime, Calendar.getInstance().getTime())
                 .set(ScenePro::getCreateTime, Calendar.getInstance().getTime())
                 .set(ScenePro::getUpdateTime, Calendar.getInstance().getTime())
                 .set(ScenePro::getUpdateTime, Calendar.getInstance().getTime())
+                .set(ScenePro::getPayStatus, payStatus)
                 .set(ScenePro::getVideos, videos));
                 .set(ScenePro::getVideos, videos));
 
 
         sceneProExtService.update(new LambdaUpdateWrapper<SceneProExt>()
         sceneProExtService.update(new LambdaUpdateWrapper<SceneProExt>()
                 .in(SceneProExt::getSceneProId, sceneProIds)
                 .in(SceneProExt::getSceneProId, sceneProIds)
                 .set(SceneProExt::getSpace, space)
                 .set(SceneProExt::getSpace, space)
-                .set(SceneProExt::getPayStatus, payStatus)
                 .set(SceneProExt::getComputeTime, computeTime));
                 .set(SceneProExt::getComputeTime, computeTime));
     }
     }
 
 
@@ -3047,22 +3067,23 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
 
 
     @Override
     @Override
     public void updateCameraIdByCameraIdPro(Long oldCameraId, Long cameraId) {
     public void updateCameraIdByCameraIdPro(Long oldCameraId, Long cameraId) {
-        List<ScenePro> list = this.list(new LambdaQueryWrapper<ScenePro>().eq(ScenePro::getCameraId, oldCameraId));
+        List<ScenePro> list = this.list(
+                new LambdaQueryWrapper<ScenePro>()
+                        .select(ScenePro::getId)
+                        .eq(ScenePro::getCameraId, oldCameraId));
         if(CollUtil.isEmpty(list))
         if(CollUtil.isEmpty(list))
             return;
             return;
 
 
-        this.update(new LambdaUpdateWrapper<ScenePro>()
-                .eq(ScenePro::getCameraId, oldCameraId)
-                .set(ScenePro::getCameraId, cameraId));
-
         //修改场景状态 空间 支付状态 计算时间
         //修改场景状态 空间 支付状态 计算时间
         List<Long> sceneProIds = list.stream().map(scenePro -> {
         List<Long> sceneProIds = list.stream().map(scenePro -> {
             return scenePro.getId();
             return scenePro.getId();
         }).collect(Collectors.toList());
         }).collect(Collectors.toList());
 
 
-        sceneProExtService.update(new LambdaUpdateWrapper<SceneProExt>()
-                .eq(SceneProExt::getSceneProId, sceneProIds)
-                .set(SceneProExt::getPayStatus, PayStatus.NO_CAPACITY.code()));
+        this.update(new LambdaUpdateWrapper<ScenePro>()
+                .eq(ScenePro::getCameraId, oldCameraId)
+                .set(ScenePro::getCameraId, cameraId)
+                .set(ScenePro::getPayStatus, PayStatus.NO_CAPACITY.code())
+                .set(ScenePro::getPayStatus, PayStatus.NO_CAPACITY.code()));
     }
     }
 
 
     @Override
     @Override
@@ -4184,7 +4205,8 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
                 .eq(ScenePro::getTbStatus, TbStatus.VALID.code())
                 .eq(ScenePro::getTbStatus, TbStatus.VALID.code())
                 .eq(ScenePro::getRecStatus, RecStatus.VALID.code())
                 .eq(ScenePro::getRecStatus, RecStatus.VALID.code())
                 .eq(ScenePro::getCameraId, cameraId)
                 .eq(ScenePro::getCameraId, cameraId)
-                .in(ScenePro::getSceneStatus, SceneStatus.SUCCESS.code(), SceneStatus.NO_DISPLAY.code()));
+                .in(ScenePro::getSceneStatus, SceneStatus.SUCCESS.code(), SceneStatus.NO_DISPLAY.code())
+                .eq(ScenePro::getPayStatus, PayStatus.PAY.code()));
         if(CollUtil.isEmpty(list)){
         if(CollUtil.isEmpty(list)){
             return 0l;
             return 0l;
         }
         }
@@ -4193,34 +4215,24 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
             return scenePro.getId();
             return scenePro.getId();
         }).collect(Collectors.toList());
         }).collect(Collectors.toList());
 
 
-        return sceneProExtService.count(new LambdaQueryWrapper<SceneProExt>()
-                .in(SceneProExt::getSceneProId, sceneProIds)
-                .eq(SceneProExt::getPayStatus, PayStatus.PAY.code()));
+        List<SceneProExt> extList = sceneProExtService.list(new LambdaQueryWrapper<SceneProExt>()
+                .in(SceneProExt::getSceneProId, sceneProIds));
+
+        long sum = extList.parallelStream().mapToLong(ext -> ext.getSpace()).sum();
 
 
+        return sum;
     }
     }
 
 
     @Override
     @Override
     public void updatePayStatusByCameraId(Integer payStatus, Long cameraId) {
     public void updatePayStatusByCameraId(Integer payStatus, Long cameraId) {
-        List<ScenePro> list = this.list(new LambdaQueryWrapper<ScenePro>()
-                .select(ScenePro::getId)
+        this.update(new LambdaUpdateWrapper<ScenePro>()
                 .eq(ScenePro::getTbStatus, TbStatus.VALID.code())
                 .eq(ScenePro::getTbStatus, TbStatus.VALID.code())
-                .eq(ScenePro::getCameraId, cameraId));
-        if(CollUtil.isEmpty(list)){
-            return;
-        }
-
-        List<Long> sceneProIds = list.stream().map(scenePro -> {
-            return scenePro.getId();
-        }).collect(Collectors.toList());
-
-        sceneProExtService.update(
-                new LambdaUpdateWrapper<SceneProExt>()
-                        .in(SceneProExt::getSceneProId, sceneProIds)
-                        .set(SceneProExt::getPayStatus, payStatus));
+                .eq(ScenePro::getCameraId, cameraId)
+                .set(ScenePro::getPayStatus, payStatus));
     }
     }
 
 
     @Override
     @Override
-    public ResultData downloadPanoramaData(SceneEditVO param) throws Exception {
+    public ResultData downloadPanoramaData(SceneEditParamVO param) throws Exception {
         String sceneNum = param.getSceneNum();
         String sceneNum = param.getSceneNum();
         if(StrUtil.isEmpty(sceneNum)){
         if(StrUtil.isEmpty(sceneNum)){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
@@ -4278,7 +4290,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
     }
 
 
     @Override
     @Override
-    public ResultData downloadVisionData(SceneEditVO param) throws Exception {
+    public ResultData downloadVisionData(SceneEditParamVO param) throws Exception {
         String sceneCode = param.getSceneName();
         String sceneCode = param.getSceneName();
         if(StrUtil.isEmpty(sceneCode)){
         if(StrUtil.isEmpty(sceneCode)){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
@@ -4345,14 +4357,11 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
             throw new BusinessException(ErrorCode.FAILURE_CODE_5009);
             throw new BusinessException(ErrorCode.FAILURE_CODE_5009);
         }
         }
 
 
-        SceneProExt sceneProExt = sceneProExtService.list(new QueryWrapper<SceneProExt>()
-                .eq("scene_pro_id", scenePro.getId())).get(0);
-
         if(!SceneStatus.SUCCESS.code().equals(scenePro.getSceneStatus())
         if(!SceneStatus.SUCCESS.code().equals(scenePro.getSceneStatus())
                 && !SceneStatus.NO_DISPLAY.code().equals(scenePro.getSceneStatus())){
                 && !SceneStatus.NO_DISPLAY.code().equals(scenePro.getSceneStatus())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_5033);
             throw new BusinessException(ErrorCode.FAILURE_CODE_5033);
         }
         }
-        if(sceneProExt.getPayStatus() != 1){
+        if(scenePro.getPayStatus() != 1){
             throw new BusinessException(ErrorCode.FAILURE_CODE_5034);
             throw new BusinessException(ErrorCode.FAILURE_CODE_5034);
         }
         }
 
 
@@ -4440,9 +4449,9 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
             return;
             return;
         }
         }
         for (Long id : lockedIds){
         for (Long id : lockedIds){
-            SceneProExt sceneProExt = sceneProExtService.findBySceneProId(id);
-            sceneProExt.setPayStatus(-2);
-            sceneProExtService.updateById(sceneProExt);
+            ScenePro scenePro = this.getById(id);
+            scenePro.setPayStatus(-2);
+            this.updateById(scenePro);
 
 
             ScenePro sceneProEntity = this.getById(id);
             ScenePro sceneProEntity = this.getById(id);
             try{
             try{
@@ -4552,7 +4561,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         return ResultData.ok(html);
         return ResultData.ok(html);
     }
     }
 
 
-    public ResultData downloadTexData(SceneEditVO param) throws Exception {
+    public ResultData downloadTexData(SceneEditParamVO param) throws Exception {
         String sceneNum = param.getSceneNum();
         String sceneNum = param.getSceneNum();
 
 
         if(StrUtil.isEmpty(sceneNum)){
         if(StrUtil.isEmpty(sceneNum)){
@@ -4645,7 +4654,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         return ResultData.ok(mainUrl + "scene/images/images" + sceneNum + "/" + sceneNum + ".zip?t=" +System.currentTimeMillis());
         return ResultData.ok(mainUrl + "scene/images/images" + sceneNum + "/" + sceneNum + ".zip?t=" +System.currentTimeMillis());
     }
     }
 
 
-    private void dealTour(SceneEditVO base, JSONObject scenejson, Map<String,String> map,
+    private void dealTour(SceneEditParamVO base, JSONObject scenejson, Map<String,String> map,
                           StringBuffer dataBuffer, StringBuffer imagesBuffer) throws IOException {
                           StringBuffer dataBuffer, StringBuffer imagesBuffer) throws IOException {
         if(!StrUtil.isEmpty(base.getTourList())){
         if(!StrUtil.isEmpty(base.getTourList())){
             if(scenejson.containsKey("uploadTourList") && scenejson.getIntValue("uploadTourList") == 1){
             if(scenejson.containsKey("uploadTourList") && scenejson.getIntValue("uploadTourList") == 1){
@@ -4688,4 +4697,6 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
 
 
 
 
 
 
+
+
 }
 }

+ 6 - 6
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneServiceImpl.java

@@ -29,7 +29,7 @@ import com.fdkankan.scene.service.ISceneExtService;
 import com.fdkankan.scene.service.ISceneProExtService;
 import com.fdkankan.scene.service.ISceneProExtService;
 import com.fdkankan.scene.service.ISceneProService;
 import com.fdkankan.scene.service.ISceneProService;
 import com.fdkankan.scene.service.ISceneService;
 import com.fdkankan.scene.service.ISceneService;
-import com.fdkankan.scene.vo.SceneEditVO;
+import com.fdkankan.scene.vo.SceneEditParamVO;
 import com.fdkankan.scene.vo.SceneParamVO;
 import com.fdkankan.scene.vo.SceneParamVO;
 import com.fdkankan.scene.vo.SceneVO;
 import com.fdkankan.scene.vo.SceneVO;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
@@ -489,7 +489,7 @@ public class SceneServiceImpl extends ServiceImpl<ISceneMapper, Scene> implement
 
 
     @Override
     @Override
 //    @SystemServiceLog(description = "保存场景热点")
 //    @SystemServiceLog(description = "保存场景热点")
-    public ResultData saveHot(SceneEditVO base) throws Exception {
+    public ResultData saveHot(SceneEditParamVO base) throws Exception {
         if(StrUtil.isEmpty(base.getHotData()) || StrUtil.isEmpty(base.getType())){
         if(StrUtil.isEmpty(base.getHotData()) || StrUtil.isEmpty(base.getType())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
         }
@@ -601,7 +601,7 @@ public class SceneServiceImpl extends ServiceImpl<ISceneMapper, Scene> implement
 
 
     @Override
     @Override
 //    @SystemServiceLog(description = "漫游可行")
 //    @SystemServiceLog(description = "漫游可行")
-    public ResultData saveLinkPano(SceneEditVO base) throws Exception {
+    public ResultData saveLinkPano(SceneEditParamVO base) throws Exception {
         if(StrUtil.isEmpty(base.getData()) || StrUtil.isEmpty(base.getSceneNum())){
         if(StrUtil.isEmpty(base.getData()) || StrUtil.isEmpty(base.getSceneNum())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
         }
@@ -668,7 +668,7 @@ public class SceneServiceImpl extends ServiceImpl<ISceneMapper, Scene> implement
 
 
     @Override
     @Override
 //    @SystemServiceLog(description = "保存热点可见性的数据")
 //    @SystemServiceLog(description = "保存热点可见性的数据")
-    public ResultData saveHotVisible(SceneEditVO base) throws Exception {
+    public ResultData saveHotVisible(SceneEditParamVO base) throws Exception {
         if(StrUtil.isEmpty(base.getData())){
         if(StrUtil.isEmpty(base.getData())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
         }
@@ -887,7 +887,7 @@ public class SceneServiceImpl extends ServiceImpl<ISceneMapper, Scene> implement
 
 
 
 
     @Override
     @Override
-    public ResultData addHotMediaInfo(SceneEditVO base) throws Exception{
+    public ResultData addHotMediaInfo(SceneEditParamVO base) throws Exception{
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getType()) ||
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getType()) ||
                 StrUtil.isEmpty(base.getInfo())){
                 StrUtil.isEmpty(base.getInfo())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
@@ -932,7 +932,7 @@ public class SceneServiceImpl extends ServiceImpl<ISceneMapper, Scene> implement
     }
     }
 
 
     @Override
     @Override
-    public ResultData saveScreencapFile(SceneEditVO base) throws Exception{
+    public ResultData saveScreencapFile(SceneEditParamVO base) throws Exception{
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getIndex()) ||
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getIndex()) ||
                 StrUtil.isEmpty(base.getCamerasData())){
                 StrUtil.isEmpty(base.getCamerasData())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);

+ 87 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/vo/BuildSceneParamVO.java

@@ -0,0 +1,87 @@
+package com.fdkankan.scene.vo;
+
+
+import lombok.Data;
+
+/**
+ * 场景建模需要的参数
+ * Created by Hb_zzZ on 2019/6/25.
+ */
+@Data
+public class BuildSceneParamVO {
+
+    /**
+     * unicode码
+     */
+    private String unicode;
+
+    /**
+     * 相机编码
+     */
+    private String cameraName;
+
+    /**
+     * phoneId
+     */
+    private String phoneId;
+
+    /**
+     * 大场景秘钥
+     */
+    private String sceneKey;
+
+    /**
+     * zip文件下载地址前缀
+     */
+    private String prefix;
+
+    /**
+     * 文件名zip.Zip
+     */
+    private String fileName;
+
+    /**
+     * 大场景名称
+     */
+    private String sceneName;
+
+    /**
+     * 大场景描述
+     */
+    private String sceneDec;
+
+    /**
+     * 大场景类型
+     */
+    private Integer sceneType;
+
+    /**
+     * 拍摄点位数
+     */
+    private Integer shootCount;
+
+    /**
+     * gps
+     */
+    private String gps;
+
+    /**
+     * 场景缩略图
+     */
+    private String thumb;
+
+    /**
+     * sfm或slam
+     */
+    private String algorithm;
+
+    /**
+     * 重算路径
+     */
+    private String path;
+
+    /**
+     * 场景编码
+     */
+    private String num;
+}

+ 4 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/vo/FileParamVO.java

@@ -25,6 +25,8 @@ public class FileParamVO {
     @NotBlank(message = "sceneNum不能为空!")
     @NotBlank(message = "sceneNum不能为空!")
     private String sceneNum;
     private String sceneNum;
 
 
+    private String id;
+
     private String type;
     private String type;
 
 
     /**
     /**
@@ -86,6 +88,8 @@ public class FileParamVO {
 
 
     private String floorJsonData;
     private String floorJsonData;
 
 
+    private String soundFile;
+
 
 
 
 
 }
 }

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

@@ -12,7 +12,7 @@ import lombok.NoArgsConstructor;
 @Builder
 @Builder
 @NoArgsConstructor
 @NoArgsConstructor
 @AllArgsConstructor
 @AllArgsConstructor
-public class SceneEditVO {
+public class SceneEditParamVO {
 
 
     private String sceneNum;
     private String sceneNum;
 
 

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

@@ -92,7 +92,7 @@ public class SceneVO implements Serializable{
 
 
     private Long cameraId;
     private Long cameraId;
 
 
-    private BigInteger space;
+    private Long space;
 
 
     private Long createDate;
     private Long createDate;
 
 

+ 4 - 4
4dkankan-center-scene/src/main/resources/mapper/scene/SceneProMapper.xml

@@ -14,7 +14,7 @@
         <result column="scene_code" property="sceneCode" jdbcType="VARCHAR" />
         <result column="scene_code" property="sceneCode" jdbcType="VARCHAR" />
         <result column="scene_type" property="sceneType" jdbcType="TINYINT" />
         <result column="scene_type" property="sceneType" jdbcType="TINYINT" />
         <result column="scene_status" property="sceneStatus" jdbcType="INTEGER" />
         <result column="scene_status" property="sceneStatus" jdbcType="INTEGER" />
-        <result column="shoot_count" property="shootCount" jdbcType="INTEGER" />
+        <result column="pay_status" property="payStatus" jdbcType="TINYINT" />
         <result column="videos" property="videos" jdbcType="VARCHAR" />
         <result column="videos" property="videos" jdbcType="VARCHAR" />
         <result column="gps" property="gps" jdbcType="VARCHAR" />
         <result column="gps" property="gps" jdbcType="VARCHAR" />
         <result column="scene_scheme" property="sceneScheme" jdbcType="TINYINT" />
         <result column="scene_scheme" property="sceneScheme" jdbcType="TINYINT" />
@@ -28,14 +28,13 @@
     <sql id="ScenePro_column">
     <sql id="ScenePro_column">
         t.id, t.scene_name, t.scene_dec, t.web_site, t.thumb, t.user_id,
         t.id, t.scene_name, t.scene_dec, t.web_site, t.thumb, t.user_id,
         t.camera_id, t.scene_logo, t.scene_code, t.scene_type, t.scene_status,
         t.camera_id, t.scene_logo, t.scene_code, t.scene_type, t.scene_status,
-        t.shoot_count, t.videos, t.gps, t.scene_scheme, t.rec_status, t.build_type,
+        t.pay_status, t.videos, t.gps, t.scene_scheme, t.rec_status, t.build_type,
         t.create_time, t.update_time, t.tb_status
         t.create_time, t.update_time, t.tb_status
     </sql>
     </sql>
 
 
     <resultMap id="SceneProExtResultMap" type="com.fdkankan.scene.entity.SceneProExt" >
     <resultMap id="SceneProExtResultMap" type="com.fdkankan.scene.entity.SceneProExt" >
         <result column="scene_pro_id" property="sceneProId" jdbcType="BIGINT" />
         <result column="scene_pro_id" property="sceneProId" jdbcType="BIGINT" />
         <result column="data_source" property="dataSource" jdbcType="VARCHAR" />
         <result column="data_source" property="dataSource" jdbcType="VARCHAR" />
-        <result column="pay_status" property="payStatus" jdbcType="TINYINT" />
         <result column="phone_id" property="phoneId" jdbcType="VARCHAR" />
         <result column="phone_id" property="phoneId" jdbcType="VARCHAR" />
         <result column="recommend" property="recommend" jdbcType="TINYINT" />
         <result column="recommend" property="recommend" jdbcType="TINYINT" />
         <result column="files_name" property="filesName" jdbcType="VARCHAR" />
         <result column="files_name" property="filesName" jdbcType="VARCHAR" />
@@ -48,10 +47,11 @@
         <result column="vrnum" property="vrnum" jdbcType="VARCHAR" />
         <result column="vrnum" property="vrnum" jdbcType="VARCHAR" />
         <result column="unicode" property="unicode" jdbcType="VARCHAR" />
         <result column="unicode" property="unicode" jdbcType="VARCHAR" />
         <result column="view_count" property="viewCount" jdbcType="INTEGER" />
         <result column="view_count" property="viewCount" jdbcType="INTEGER" />
+        <result column="shoot_count" property="shootCount" jdbcType="INTEGER" />
     </resultMap>
     </resultMap>
 
 
     <sql id="SceneProExt_column" >
     <sql id="SceneProExt_column" >
-        ext.scene_pro_id, ext.data_source, ext.pay_status,t.,
+        ext.scene_pro_id, ext.data_source, ext.view_count, ext.shoot_count,
         ext.phone_id, ext.recommend, ext.files_name, ext.algorithm, ext.ecs, ext.space,
         ext.phone_id, ext.recommend, ext.files_name, ext.algorithm, ext.ecs, ext.space,
         ext.firmware_version, ext.compute_time, ext.scene_source, ext.vrnum, ext.unicode
         ext.firmware_version, ext.compute_time, ext.scene_source, ext.vrnum, ext.unicode
     </sql>
     </sql>

+ 0 - 3
4dkankan-common/src/main/java/com/fdkankan/common/response/BaseResponseAdvice.java

@@ -26,9 +26,6 @@ public class BaseResponseAdvice implements ResponseBodyAdvice<Object> {
 //            return body;
 //            return body;
 //        }
 //        }
         System.out.println("响应拦截成功");
         System.out.println("响应拦截成功");
-//        if(Objects.isNull(body)){
-//            return ResultData.ok();
-//        }
         if(body instanceof String){
         if(body instanceof String){
             return JSONObject.toJSONString(ResultData.ok(body));
             return JSONObject.toJSONString(ResultData.ok(body));
         }
         }