Bladeren bron

场景中心业务代码迁移

dengsixing 3 jaren geleden
bovenliggende
commit
5e017b70ae
25 gewijzigde bestanden met toevoegingen van 1322 en 673 verwijderingen
  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 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;
 
 /**
@@ -382,6 +379,9 @@ public class CameraDetailServiceImpl extends ServiceImpl<ICameraDetailMapper, Ca
     @Override
     public CameraDetail updateCameraDetailByCameraIdAndSpace(Long cameraId, Long space) {
         CameraDetail cameraDetail = this.getByCameraId(cameraId);
+        if(Objects.isNull(cameraDetail)){
+            return null;
+        }
         cameraDetail.setUsedSpace(cameraDetail.getUsedSpace() + space);
         if(cameraDetail.getUsedSpace() < 0){
             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.fasterxml.jackson.databind.ObjectMapper;
 import com.fdkankan.common.controller.BaseController;
+import com.fdkankan.common.response.ResultData;
 import com.fdkankan.common.util.RubberSheetingUtil;
 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.UserParamVO;
 import lombok.extern.log4j.Log4j2;
@@ -16,6 +19,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * Created by Hb_zzZ on 2019/6/10.
@@ -26,49 +30,9 @@ import java.util.List;
 public class SceneAppController extends BaseController {
 
     @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;
+    @Autowired
+    private ISceneFileBuildService sceneFileBuildService;
 
     /**
      * <p>
@@ -104,389 +68,82 @@ public class SceneAppController extends BaseController {
         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);
     }
 
+
+
 }
 

+ 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.scene.service.ISceneProService;
-import com.fdkankan.scene.vo.SceneEditVO;
+import com.fdkankan.scene.vo.SceneEditParamVO;
 import com.fdkankan.common.response.ResultData;
 import com.fdkankan.scene.vo.FileParamVO;
 import lombok.extern.log4j.Log4j2;
@@ -28,12 +28,12 @@ public class SceneEditController extends BaseController {
      * </p>
      * @author dengsixing
      * @date 2022/1/12
-     * @param sceneEditVO
+     * @param sceneEditParamVO
      * @return com.fdkankan.common.response.ResultData
      **/
     @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>
      * @author dengsixing
      * @date 2022/1/12
-     * @param sceneEditVO
+     * @param sceneEditParamVO
      * @return com.fdkankan.common.response.ResultData
      **/
     @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>
      * @author dengsixing
      * @date 2022/1/12
-     * @param sceneEditVO
+     * @param sceneEditParamVO
      * @return com.fdkankan.common.response.ResultData
      **/
     @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>
      * @author dengsixing
      * @date 2022/1/12
-     * @param sceneEditVO
+     * @param sceneEditParamVO
      * @return com.fdkankan.common.response.ResultData
      **/
     @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
      **/
     @PostMapping(value = "/getScreencapVoice")
-    public ResultData getScreencapVoice(@RequestBody SceneEditVO param) throws Exception {
+    public ResultData getScreencapVoice(@RequestBody SceneEditParamVO param) throws Exception {
         return sceneProService.getScreencapVoice(param);
     }
 
@@ -148,7 +148,7 @@ public class SceneEditController extends BaseController {
      * @return com.fdkankan.common.response.ResultData
      **/
     @PostMapping(value = "/saveInitialPage")
-    public ResultData saveInitialPage(@RequestBody SceneEditVO param) throws Exception {
+    public ResultData saveInitialPage(@RequestBody SceneEditParamVO param) throws Exception {
         return sceneProService.saveInitialPage(param);
     }
 
@@ -162,7 +162,7 @@ public class SceneEditController extends BaseController {
      * @return com.fdkankan.common.response.ResultData
      **/
     @PostMapping(value = "/saveBackgroundMusic")
-    public ResultData saveBackgroundMusic(@RequestBody SceneEditVO param) throws Exception {
+    public ResultData saveBackgroundMusic(@RequestBody SceneEditParamVO param) throws Exception {
         return sceneProService.saveBackgroundMusic(param);
     }
 
@@ -176,7 +176,7 @@ public class SceneEditController extends BaseController {
      * @return com.fdkankan.common.response.ResultData
      **/
     @PostMapping(value = "/saveFloorLogo")
-    public ResultData saveFloorLogo(@RequestBody SceneEditVO param) throws Exception {
+    public ResultData saveFloorLogo(@RequestBody SceneEditParamVO param) throws Exception {
         return sceneProService.saveFloorLogo(param);
     }
 
@@ -190,7 +190,7 @@ public class SceneEditController extends BaseController {
      * @return com.fdkankan.common.response.ResultData
      **/
     @PostMapping(value = "/saveHot")
-    public ResultData saveHot(@RequestBody SceneEditVO param) throws Exception {
+    public ResultData saveHot(@RequestBody SceneEditParamVO param) throws Exception {
         return sceneProService.saveHot(param);
     }
 
@@ -204,7 +204,7 @@ public class SceneEditController extends BaseController {
      * @return com.fdkankan.common.response.ResultData
      **/
     @PostMapping(value = "/saveShopHot")
-    public ResultData saveShopHot(@RequestBody SceneEditVO param) throws Exception {
+    public ResultData saveShopHot(@RequestBody SceneEditParamVO param) throws Exception {
         return sceneProService.saveShopHot(param);
     }
 
@@ -218,7 +218,7 @@ public class SceneEditController extends BaseController {
      * @return com.fdkankan.common.response.ResultData
      **/
     @PostMapping(value = "/saveOverlay")
-    public ResultData saveOverlay(@RequestBody SceneEditVO param) throws Exception {
+    public ResultData saveOverlay(@RequestBody SceneEditParamVO param) throws Exception {
         return sceneProService.saveOverlay(param);
     }
 
@@ -232,7 +232,7 @@ public class SceneEditController extends BaseController {
      * @return com.fdkankan.common.response.ResultData
      **/
     @PostMapping(value = "/saveScreencapData")
-    public ResultData saveScreencapData(@RequestBody SceneEditVO param) throws Exception {
+    public ResultData saveScreencapData(@RequestBody SceneEditParamVO param) throws Exception {
         return sceneProService.saveScreencapData(param);
     }
 
@@ -246,7 +246,7 @@ public class SceneEditController extends BaseController {
      * @return com.fdkankan.common.response.ResultData
      **/
     @PostMapping(value = "/saveSceneKey")
-    public ResultData saveSceneKey(@RequestBody SceneEditVO param) throws Exception {
+    public ResultData saveSceneKey(@RequestBody SceneEditParamVO param) throws Exception {
         return sceneProService.saveSceneKey(param);
     }
 
@@ -260,7 +260,7 @@ public class SceneEditController extends BaseController {
      * @return com.fdkankan.common.response.ResultData
      **/
     @PostMapping(value = "/saveScreencapFile")
-    public ResultData saveScreencapFile(@RequestBody SceneEditVO param) throws Exception {
+    public ResultData saveScreencapFile(@RequestBody SceneEditParamVO param) throws Exception {
         return sceneProService.saveScreencapFile(param);
     }
 
@@ -304,7 +304,7 @@ public class SceneEditController extends BaseController {
      * @return com.fdkankan.common.response.ResultData
      **/
     @PostMapping(value = "/addHotMediaInfo")
-    public ResultData addHotMediaInfo(@RequestBody SceneEditVO param) throws Exception {
+    public ResultData addHotMediaInfo(@RequestBody SceneEditParamVO param) throws Exception {
         return sceneProService.addHotMediaInfo(param);
     }
 
@@ -318,7 +318,7 @@ public class SceneEditController extends BaseController {
      * @return com.fdkankan.common.response.ResultData
      **/
     @PostMapping(value = "/saveLinkPano")
-    public ResultData saveLinkPano(@RequestBody SceneEditVO param) throws Exception {
+    public ResultData saveLinkPano(@RequestBody SceneEditParamVO param) throws Exception {
         return sceneProService.saveLinkPano(param);
     }
 
@@ -327,7 +327,7 @@ public class SceneEditController extends BaseController {
      * @return
      */
     @PostMapping(value = "/saveHotVisible")
-    public ResultData saveHotVisible(@RequestBody SceneEditVO param) throws Exception {
+    public ResultData saveHotVisible(@RequestBody SceneEditParamVO param) throws Exception {
         return sceneProService.saveHotVisible(param);
     }
 
@@ -344,7 +344,7 @@ public class SceneEditController extends BaseController {
      * 新增画墙重建模型(钟文)
      */
     @PostMapping(value = "/uploadFloorJson")
-    public ResultData uploadFloorJson(@RequestBody SceneEditVO param) throws Exception{
+    public ResultData uploadFloorJson(@RequestBody SceneEditParamVO param) throws Exception{
         return sceneProService.uploadFloorJson(param);
     }
 
@@ -362,7 +362,7 @@ public class SceneEditController extends BaseController {
      * @return
      */
     @PostMapping(value = "/resetUploadFloorJson")
-    public ResultData resetUploadFloorJson(@RequestBody SceneEditVO param) throws Exception {
+    public ResultData resetUploadFloorJson(@RequestBody SceneEditParamVO param) throws Exception {
         return sceneProService.resetUploadFloorJson(param);
     }
 
@@ -371,7 +371,7 @@ public class SceneEditController extends BaseController {
      * @return
      */
     @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);
     }
 
@@ -390,7 +390,7 @@ public class SceneEditController extends BaseController {
      * @return
      */
     @PostMapping(value = "/uploadHotJsonToOss")
-    public ResultData uploadHotJsonToOss(@RequestBody SceneEditVO param) throws Exception {
+    public ResultData uploadHotJsonToOss(@RequestBody SceneEditParamVO param) throws Exception {
         return sceneProService.uploadHotJsonToOss(param);
     }
 
@@ -427,7 +427,7 @@ public class SceneEditController extends BaseController {
      * 肖安需求,下载场景obj和贴图
      */
     @PostMapping(value = "/downloadTexData")
-    public ResultData downloadTexData(@RequestBody SceneEditVO param) throws Exception {
+    public ResultData downloadTexData(@RequestBody SceneEditParamVO param) throws Exception {
         return sceneProService.downloadTexData(param);
     }
 
@@ -546,7 +546,7 @@ public class SceneEditController extends BaseController {
      * 下载点位数据
      */
     @PostMapping(value = "/downloadVisionData")
-    public ResultData downloadVisionData(@RequestBody SceneEditVO param) throws Exception{
+    public ResultData downloadVisionData(@RequestBody SceneEditParamVO param) throws Exception{
         return sceneProService.downloadVisionData(param);
     }
 
@@ -554,7 +554,7 @@ public class SceneEditController extends BaseController {
      * 下载全景图数据
      */
     @PostMapping(value = "/downloadPanoramaData")
-    public ResultData downloadPanoramaData(@RequestBody SceneEditVO param) throws Exception{
+    public ResultData downloadPanoramaData(@RequestBody SceneEditParamVO param) throws Exception{
         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;
 
     /**
-     * 拍摄数量
+     * 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;
 
     /**
-     * 0表示未付款,1表示付款了,-1表示欠费,-2表示容量不足
-     */
-    @TableField("pay_status")
-    private Integer payStatus;
-
-    /**
      * 手机id
      */
     @TableField("phone_id")
@@ -115,6 +109,12 @@ public class SceneProExt implements Serializable {
     private Integer viewCount;
 
     /**
+     * 拍摄数量
+     */
+    @TableField("shoot_count")
+    private Integer shootCount;
+
+    /**
      * 相机类型
      */
     @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.fdkankan.scene.entity.Scene;
-import com.fdkankan.scene.vo.SceneEditVO;
+import com.fdkankan.scene.vo.SceneEditParamVO;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.IOException;
 
 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 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.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.scene.vo.BuildSceneParamVO;
 import com.fdkankan.scene.vo.ResponseSceneFile;
 import com.fdkankan.common.response.ResultData;
+import org.springframework.web.bind.annotation.RequestBody;
 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(@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.service.IService;
 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.scene.vo.SceneVO;
-import com.fdkankan.scene.vo.UserParamVO;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -22,43 +21,43 @@ import java.util.List;
  */
 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 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;
 
@@ -70,4 +69,24 @@ public interface ISceneProAppService extends IService<ScenePro> {
 
     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;
 
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.common.response.ResultData;
 import com.fdkankan.scene.entity.ScenePro;
 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.FileParamVO;
-import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.IOException;
@@ -27,6 +25,8 @@ public interface ISceneProService extends IService<ScenePro> {
 
     List<SceneVO> convert(List<ScenePro> list);
 
+    List<SceneVO> convert2(List<SceneProPO> list);
+
     Long getSceneCount(Long cameraId);
 
     ScenePro findBySceneNum(String sceneNum);
@@ -43,25 +43,25 @@ public interface ISceneProService extends IService<ScenePro> {
 
     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 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;
 
@@ -69,35 +69,35 @@ public interface ISceneProService extends IService<ScenePro> {
 
     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 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 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 uploadHotJsonToOss(SceneEditVO param) throws Exception;
+    ResultData uploadHotJsonToOss(SceneEditParamVO 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);
 
-    ResultData downloadPanoramaData(SceneEditVO param) throws Exception;
+    ResultData downloadPanoramaData(SceneEditParamVO param) throws Exception;
 
     ResultData getSceneAndCameras(Long userId,List<String> excludeNums);
 
@@ -167,7 +167,7 @@ public interface ISceneProService extends IService<ScenePro> {
 
     Integer findFolderIdScence(Long folderId, Long userId);
 
-    ResultData downloadVisionData(SceneEditVO param) throws Exception;
+    ResultData downloadVisionData(SceneEditParamVO param) throws Exception;
 
     SceneVO getInfo(String sceneNum);
 
@@ -179,7 +179,9 @@ public interface ISceneProService extends IService<ScenePro> {
 
     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.ScenePO;
 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.SceneVO;
 import com.fdkankan.common.response.ResultData;
@@ -49,11 +49,11 @@ public interface ISceneService extends IService<Scene> {
 
     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;
 
@@ -71,9 +71,9 @@ public interface ISceneService extends IService<Scene> {
 
     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,
                                   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;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.fdkankan.common.constant.TbStatus;
 import com.fdkankan.scene.entity.FolderScene;
@@ -36,10 +37,7 @@ public class FolderSceneServiceImpl extends ServiceImpl<IFolderSceneMapper, Fold
 
     @Override
     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

+ 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.ISceneProService;
 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.SceneVO;
 import com.fdkankan.common.constant.ErrorCode;
@@ -75,7 +75,7 @@ public class Scene3dfamilyServiceImpl extends ServiceImpl<IScene3dfamilyMapper,
             FileUtils.createDir(path);
 
             //生成vision.json
-            sceneProService.downloadVisionData(SceneEditVO.builder().sceneNum(sceneProVo.getSceneCode()).build());
+            sceneProService.downloadVisionData(SceneEditParamVO.builder().sceneNum(sceneProVo.getSceneCode()).build());
             //拉取data
             CreateObjUtil.ossUtilCp("data" + File.separator + "data" + sceneProVo.getSceneCode()  + File.separator,
                     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.ISceneExtService;
 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.exception.BusinessException;
 import lombok.extern.slf4j.Slf4j;
@@ -71,7 +71,7 @@ public class SceneAppServiceImpl extends ServiceImpl<ISceneMapper, Scene> implem
 
 
     @Override
-    public int saveInitialPage(SceneEditVO base) throws Exception {
+    public int saveInitialPage(SceneEditParamVO base) throws Exception {
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getInitialPoint())){
             return -102;
         }
@@ -134,7 +134,7 @@ public class SceneAppServiceImpl extends ServiceImpl<ISceneMapper, Scene> implem
     }
 
     @Override
-    public int saveFloorLogo(SceneEditVO base) throws Exception {
+    public int saveFloorLogo(SceneEditParamVO base) throws Exception {
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getSize()) ||
                 StrUtil.isEmpty(base.getLogoType())){
             return -102;
@@ -178,7 +178,7 @@ public class SceneAppServiceImpl extends ServiceImpl<ISceneMapper, Scene> implem
     }
 
     @Override
-    public int saveHot(SceneEditVO base) throws Exception {
+    public int saveHot(SceneEditParamVO base) throws Exception {
         if(StrUtil.isEmpty(base.getType())){
             return -102;
         }
@@ -321,7 +321,7 @@ public class SceneAppServiceImpl extends ServiceImpl<ISceneMapper, Scene> implem
     }
 
     @Override
-    public int saveBackgroundMusic(SceneEditVO base) throws Exception {
+    public int saveBackgroundMusic(SceneEditParamVO base) throws Exception {
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getMusicName())){
             return -102;
         }
@@ -358,7 +358,7 @@ public class SceneAppServiceImpl extends ServiceImpl<ISceneMapper, Scene> implem
     }
 
     @Override
-    public int saveSceneInfo(SceneEditVO base) throws Exception {
+    public int saveSceneInfo(SceneEditParamVO base) throws Exception {
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getSceneName()) ||
                 StrUtil.isEmpty(base.getSceneType()) || StrUtil.isEmpty(base.getSceneDec())){
             return -102;
@@ -399,7 +399,7 @@ public class SceneAppServiceImpl extends ServiceImpl<ISceneMapper, Scene> implem
     }
 
     @Override
-    public int saveSceneKey(SceneEditVO base) throws Exception {
+    public int saveSceneKey(SceneEditParamVO base) throws Exception {
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getSceneKey())){
             return -102;
         }
@@ -432,7 +432,7 @@ public class SceneAppServiceImpl extends ServiceImpl<ISceneMapper, Scene> implem
     }
 
     @Override
-    public int saveTourList(SceneEditVO base) throws Exception {
+    public int saveTourList(SceneEditParamVO base) throws Exception {
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getTourList())){
             return -102;
         }
@@ -632,7 +632,7 @@ public class SceneAppServiceImpl extends ServiceImpl<ISceneMapper, Scene> implem
     }
 
     @Override
-    public int saveScreencapFile(SceneEditVO base) throws Exception {
+    public int saveScreencapFile(SceneEditParamVO base) throws Exception {
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getIndex()) ||
                 StringUtils.isEmpty(base.getCamerasData())){
             return -102;
@@ -694,7 +694,7 @@ public class SceneAppServiceImpl extends ServiceImpl<ISceneMapper, Scene> implem
     }
 
     @Override
-    public int saveHotVisible(SceneEditVO base) throws Exception {
+    public int saveHotVisible(SceneEditParamVO base) throws Exception {
         if(StrUtil.isEmpty(base.getData())){
             return -102;
         }
@@ -745,7 +745,7 @@ public class SceneAppServiceImpl extends ServiceImpl<ISceneMapper, Scene> implem
     }
 
     @Override
-    public int saveLinkPano(SceneEditVO base) throws Exception {
+    public int saveLinkPano(SceneEditParamVO base) throws Exception {
         if(StrUtil.isEmpty(base.getData()) || StrUtil.isEmpty(base.getSceneNum())){
             return -102;
         }
@@ -809,7 +809,7 @@ public class SceneAppServiceImpl extends ServiceImpl<ISceneMapper, Scene> implem
     }
 
     @Override
-    public Object getRecordAudioFromWeixin(SceneEditVO base) throws Exception {
+    public Object getRecordAudioFromWeixin(SceneEditParamVO base) throws Exception {
         if(StrUtil.isEmpty(base.getData()) || StrUtil.isEmpty(base.getId())){
             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.mapper.ISceneFileBuildMapper;
 import com.fdkankan.scene.service.*;
+import com.fdkankan.scene.vo.BuildSceneParamVO;
 import com.fdkankan.scene.vo.ResponseSceneFile;
+import com.fdkankan.scene.vo.SceneVO;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.codec.binary.Base64;
 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.stereotype.Service;
 import org.springframework.util.ObjectUtils;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.multipart.MultipartFile;
 
+import javax.xml.transform.Result;
 import java.io.BufferedReader;
 import java.io.File;
 import java.io.IOException;
@@ -121,6 +125,10 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
     RocketMQProducer mqProducer;
     @Autowired
     RedisUtil redisUtil;
+    @Autowired
+    ISceneService sceneService;
+    @Autowired
+    ISceneExtService sceneExtService;
 
     @Override
     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{
         //获取解压后的资源的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,
                                      String unicode, Long cameraType, String fileId, String prefix,
                                      String imgsName, String pic, String isModel, Long userId, String userName,
@@ -1418,11 +1628,11 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
 
         if(sceneShootCount == null)
         {
-            scenePro.setShootCount(0);
+            sceneProExt.setShootCount(0);
         }
         else
         {
-            scenePro.setShootCount(sceneShootCount);
+            sceneProExt.setShootCount(sceneShootCount);
         }
         if(sceneName!=null)
         {
@@ -1516,10 +1726,10 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
             scenePro.setId(oldScene.getId());
             scenePro.setSceneStatus(0);
             scenePro.setRecStatus("A");
+            scenePro.setPayStatus(0);
             scenePro.setCreateTime(new Date());
 
             SceneProExt oldSceneProExt = sceneProExtService.findBySceneProId(oldScene.getId());
-            sceneProExt.setPayStatus(0);
             sceneProExt.setSpace(oldSceneProExt.getSpace());
             sceneProExt.setEcs(oldSceneProExt.getEcs());
             sceneProExt.setViewCount(oldSceneProExt.getViewCount());
@@ -1580,7 +1790,7 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
                 projectNum, cameraName, unicode, cameraType, fileId, prefix, imgsName, isModel,
                 userName, algorithm, resolution, buildType, path, scenePro.getId(), scenePro.getSceneName(),
                 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);
         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.util.StrUtil;
-import cn.hutool.http.HttpStatus;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 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.service.impl.ServiceImpl;
 import com.fdkankan.common.constant.*;
-import com.fdkankan.common.response.PageInfo;
 import com.fdkankan.common.util.*;
 import com.fdkankan.platform.api.feign.PlatformGoodsClient;
 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.RedisLockKey;
 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.service.*;
-import com.fdkankan.scene.vo.SceneEditVO;
+import com.fdkankan.scene.vo.*;
 import com.fdkankan.common.constant.ErrorCode;
 import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.response.ResultData;
 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 net.coobird.thumbnailator.Thumbnails;
 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.Qualifier;
 import org.springframework.beans.factory.annotation.Value;
@@ -98,7 +92,7 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
     private ISceneCooperationService sceneCooperationService;
 
     @Override
-    public ResultData saveInitialPage(SceneEditVO base) throws Exception {
+    public ResultData saveInitialPage(SceneEditParamVO base) throws Exception {
         if(StringUtils.isEmpty(base.getSceneNum()) || StringUtils.isEmpty(base.getInitialPoint())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
@@ -163,7 +157,7 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
     }
 
     @Override
-    public ResultData saveFloorLogo(SceneEditVO base) throws Exception {
+    public ResultData saveFloorLogo(SceneEditParamVO base) throws Exception {
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getSize()) ||
                 StrUtil.isEmpty(base.getLogoType())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
@@ -209,7 +203,7 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
 
     @Override
     @SuppressWarnings("unchecked")
-    public ResultData saveHot(SceneEditVO base) throws Exception {
+    public ResultData saveHot(SceneEditParamVO base) throws Exception {
         if(StrUtil.isEmpty(base.getType())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
@@ -265,7 +259,7 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
     }
 
     @Override
-    public ResultData saveBackgroundMusic(SceneEditVO base) throws Exception {
+    public ResultData saveBackgroundMusic(SceneEditParamVO base) throws Exception {
         if(StringUtils.isEmpty(base.getSceneNum()) || StringUtils.isEmpty(base.getMusicName())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
@@ -298,7 +292,7 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
     }
 
     @Override
-    public ResultData saveSceneInfo(SceneEditVO base) throws Exception{
+    public ResultData saveSceneInfo(SceneEditParamVO base) throws Exception{
         if(StringUtils.isEmpty(base.getSceneNum()) || StringUtils.isEmpty(base.getSceneName()) ||
                 StringUtils.isEmpty(base.getSceneType()) || StringUtils.isEmpty(base.getSceneDec())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
@@ -357,7 +351,7 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
     }
 
     @Override
-    public ResultData saveSceneKey(SceneEditVO base) throws Exception{
+    public ResultData saveSceneKey(SceneEditParamVO base) throws Exception{
         if(StringUtils.isEmpty(base.getSceneNum()) || StringUtils.isEmpty(base.getSceneKey())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
@@ -393,7 +387,7 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
     }
 
     @Override
-    public ResultData saveTourList(SceneEditVO base) throws Exception{
+    public ResultData saveTourList(SceneEditParamVO base) throws Exception{
         if(StringUtils.isEmpty(base.getSceneNum()) || StringUtils.isEmpty(base.getTourList())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
@@ -588,7 +582,7 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
     }
 
     @Override
-    public ResultData saveScreencapFile(SceneEditVO base) throws Exception{
+    public ResultData saveScreencapFile(SceneEditParamVO base) throws Exception{
         if(StringUtils.isEmpty(base.getSceneNum()) || StringUtils.isEmpty(base.getIndex()) ||
                 StringUtils.isEmpty(base.getCamerasData())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
@@ -646,7 +640,7 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
     }
 
     @Override
-    public ResultData saveHotVisible(SceneEditVO base) throws Exception{
+    public ResultData saveHotVisible(SceneEditParamVO base) throws Exception{
         if(StringUtils.isEmpty(base.getData())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
@@ -701,7 +695,7 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
     }
 
     @Override
-    public ResultData saveLinkPano(SceneEditVO base) throws Exception{
+    public ResultData saveLinkPano(SceneEditParamVO base) throws Exception{
         if(StringUtils.isEmpty(base.getData()) || StringUtils.isEmpty(base.getSceneNum())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
@@ -785,7 +779,7 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
     }
 
     @Override
-    public ResultData getRecordAudioFromWeixin(SceneEditVO base) throws Exception{
+    public ResultData getRecordAudioFromWeixin(SceneEditParamVO base) throws Exception{
         if(StringUtils.isEmpty(base.getSceneNum()) || StringUtils.isEmpty(base.getId())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
@@ -866,7 +860,10 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
     }
 
     @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)){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
@@ -911,9 +908,9 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
         if(!partFile.exists()){
             partFile.mkdirs();
         }
-        if(!"1".equals(replace)){
+        if(!"1".equals(param.getReplace())){
             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");
@@ -950,7 +947,10 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
     }
 
     @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)){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
@@ -980,9 +980,9 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
             partFile.mkdirs();
         }
 
-        if(!"1".equals(replace)){
+        if(!"1".equals(param.getReplace())){
             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");
@@ -1021,8 +1021,11 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
     }
 
     @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)){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
@@ -1137,7 +1140,7 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
     }
 
     @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());
         Boolean lock = redisLockUtil.lock(lockKey, RedisKey.EXPIRE_TIME_2_HOUR);
@@ -1217,7 +1220,7 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
     }
 
     @Override
-    public ResultData saveScreencapData(SceneEditVO base) throws Exception {
+    public ResultData saveScreencapData(SceneEditParamVO base) throws Exception {
         if(StringUtils.isEmpty(base.getSceneNum())){
             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())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
@@ -1524,7 +1527,7 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
         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(
                 new QueryWrapper<SceneProEditExt>().eq("pro_edit_id", sceneProEdit.getId()));
         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];
         Map<String,String> map = new HashMap<String,String>();
         if(jsonhot.containsKey("media")) {
@@ -1846,7 +1849,7 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
         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[] styles = null;
         if(StrUtil.isNotEmpty(base.getStyleName())){
@@ -1898,7 +1901,7 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
         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");
         JSONArray jsonhots = null;
         if (StrUtil.isNotEmpty(str)) {
@@ -1920,7 +1923,7 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
         return jsonhots;
     }
 
-    private String getSidFromParams(SceneEditVO base, JSONObject jsonhot){
+    private String getSidFromParams(SceneEditParamVO base, JSONObject jsonhot){
         String sid = base.getSid();
         //添加或者修改
         if(SceneEditType.ADD.code().equals(base.getType())){
@@ -2083,6 +2086,435 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
         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.service.*;
 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.SceneVO;
 import lombok.extern.slf4j.Slf4j;
@@ -124,6 +124,26 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
 
     @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) {
 
         return this.count(new QueryWrapper<ScenePro>()
@@ -186,7 +206,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
 
     @Override
-    public ResultData resetUploadFloorJson(SceneEditVO sceneEdit) throws Exception{
+    public ResultData resetUploadFloorJson(SceneEditParamVO sceneEdit) throws Exception{
         if(StrUtil.isEmpty(sceneEdit.getSceneNum())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
@@ -241,7 +261,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
 
     @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());
         Boolean lock = redisLockUtil.lock(lockKey, RedisKey.EXPIRE_TIME_2_HOUR);
@@ -660,7 +680,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
 
     @Override
-    public ResultData addHotMediaInfo(SceneEditVO base) throws Exception{
+    public ResultData addHotMediaInfo(SceneEditParamVO base) throws Exception{
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getType()) ||
                 StrUtil.isEmpty(base.getInfo())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
@@ -692,7 +712,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
 
     @Override
-    public ResultData saveScreencapFile(SceneEditVO base) throws Exception{
+    public ResultData saveScreencapFile(SceneEditParamVO base) throws Exception{
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getIndex()) ||
                 StrUtil.isEmpty(base.getCamerasData())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
@@ -744,7 +764,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
 
     @Override
-    public ResultData saveSceneKey(SceneEditVO base) throws Exception{
+    public ResultData saveSceneKey(SceneEditParamVO base) throws Exception{
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getSceneKey())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
@@ -765,7 +785,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
 
     @Override
-    public ResultData saveFloorLogo(SceneEditVO base) throws Exception{
+    public ResultData saveFloorLogo(SceneEditParamVO base) throws Exception{
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getSize()) ||
                 StrUtil.isEmpty(base.getLogoType())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
@@ -792,7 +812,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
 
     @Override
-    public ResultData saveBackgroundMusic(SceneEditVO base) throws Exception{
+    public ResultData saveBackgroundMusic(SceneEditParamVO base) throws Exception{
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getMusicName())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
@@ -817,7 +837,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
 
     @Override
-    public ResultData saveInitialPage(SceneEditVO base) throws Exception{
+    public ResultData saveInitialPage(SceneEditParamVO base) throws Exception{
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getInitialPoint())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
@@ -852,7 +872,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
 
     @Override
-    public ResultData getScreencapVoice(SceneEditVO base) throws Exception{
+    public ResultData getScreencapVoice(SceneEditParamVO base) throws Exception{
         if(StrUtil.isEmpty(base.getSceneNum())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
@@ -1313,7 +1333,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
 
     @Override
-    public ResultData deleteScreencapVoice(SceneEditVO base) throws Exception{
+    public ResultData deleteScreencapVoice(SceneEditParamVO base) throws Exception{
         if(StrUtil.isEmpty(base.getSceneNum())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
@@ -1375,7 +1395,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
 
     @Override
-    public ResultData deleteScreencap(SceneEditVO base) throws Exception{
+    public ResultData deleteScreencap(SceneEditParamVO base) throws Exception{
         if(StrUtil.isEmpty(base.getSceneNum())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
@@ -1425,7 +1445,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
 
     @Override
-    public ResultData saveTourList(SceneEditVO base) throws Exception{
+    public ResultData saveTourList(SceneEditParamVO base) throws Exception{
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getTourList()) ||
                 StrUtil.isEmpty(base.getScreencapLen())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
@@ -1456,7 +1476,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
 
     @Override
-    public ResultData saveSceneInfo(SceneEditVO base) throws Exception{
+    public ResultData saveSceneInfo(SceneEditParamVO base) throws Exception{
 
         if(StrUtil.isEmpty(base.getSceneNum())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
@@ -2146,7 +2166,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
 
     @Override
 //    @SystemServiceLog(description = "保存场景热点")
-    public ResultData saveHot(SceneEditVO base) throws Exception {
+    public ResultData saveHot(SceneEditParamVO base) throws Exception {
         if(StrUtil.isEmpty(base.getType())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
@@ -2313,7 +2333,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
 
     @Override
 //    @SystemServiceLog(description = "保存场景热点")
-    public ResultData saveShopHot(SceneEditVO base) throws Exception {
+    public ResultData saveShopHot(SceneEditParamVO base) throws Exception {
         if(StrUtil.isEmpty(base.getType())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
@@ -2424,7 +2444,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
 
     @Override
-    public ResultData saveOverlay(SceneEditVO base) throws Exception {
+    public ResultData saveOverlay(SceneEditParamVO base) throws Exception {
         if(StrUtil.isEmpty(base.getType())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
@@ -2572,7 +2592,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
 
     @Override
 //    @SystemServiceLog(description = "保存场景热点")
-    public ResultData saveScreencapData(SceneEditVO base) throws Exception {
+    public ResultData saveScreencapData(SceneEditParamVO base) throws Exception {
         if(StrUtil.isEmpty(base.getSceneNum())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
@@ -2635,7 +2655,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
 
     @Override
 //    @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())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
@@ -2720,7 +2740,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
 
     @Override
 //    @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())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
@@ -2779,7 +2799,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
 
     @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())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
@@ -2889,7 +2909,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
 
     @Override
-    public ResultData uploadHotJsonToOss(SceneEditVO param) throws Exception {
+    public ResultData uploadHotJsonToOss(SceneEditParamVO param) throws Exception {
         String sceneNum = param.getSceneNum();
         if(StrUtil.isEmpty(sceneNum)){
             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::getCreateTime, Calendar.getInstance().getTime())
                 .set(ScenePro::getUpdateTime, Calendar.getInstance().getTime())
+                .set(ScenePro::getPayStatus, payStatus)
                 .set(ScenePro::getVideos, videos));
 
         sceneProExtService.update(new LambdaUpdateWrapper<SceneProExt>()
                 .in(SceneProExt::getSceneProId, sceneProIds)
                 .set(SceneProExt::getSpace, space)
-                .set(SceneProExt::getPayStatus, payStatus)
                 .set(SceneProExt::getComputeTime, computeTime));
     }
 
@@ -3047,22 +3067,23 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
 
     @Override
     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))
             return;
 
-        this.update(new LambdaUpdateWrapper<ScenePro>()
-                .eq(ScenePro::getCameraId, oldCameraId)
-                .set(ScenePro::getCameraId, cameraId));
-
         //修改场景状态 空间 支付状态 计算时间
         List<Long> sceneProIds = list.stream().map(scenePro -> {
             return scenePro.getId();
         }).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
@@ -4184,7 +4205,8 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
                 .eq(ScenePro::getTbStatus, TbStatus.VALID.code())
                 .eq(ScenePro::getRecStatus, RecStatus.VALID.code())
                 .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)){
             return 0l;
         }
@@ -4193,34 +4215,24 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
             return scenePro.getId();
         }).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
     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::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
-    public ResultData downloadPanoramaData(SceneEditVO param) throws Exception {
+    public ResultData downloadPanoramaData(SceneEditParamVO param) throws Exception {
         String sceneNum = param.getSceneNum();
         if(StrUtil.isEmpty(sceneNum)){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
@@ -4278,7 +4290,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
 
     @Override
-    public ResultData downloadVisionData(SceneEditVO param) throws Exception {
+    public ResultData downloadVisionData(SceneEditParamVO param) throws Exception {
         String sceneCode = param.getSceneName();
         if(StrUtil.isEmpty(sceneCode)){
             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);
         }
 
-        SceneProExt sceneProExt = sceneProExtService.list(new QueryWrapper<SceneProExt>()
-                .eq("scene_pro_id", scenePro.getId())).get(0);
-
         if(!SceneStatus.SUCCESS.code().equals(scenePro.getSceneStatus())
                 && !SceneStatus.NO_DISPLAY.code().equals(scenePro.getSceneStatus())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_5033);
         }
-        if(sceneProExt.getPayStatus() != 1){
+        if(scenePro.getPayStatus() != 1){
             throw new BusinessException(ErrorCode.FAILURE_CODE_5034);
         }
 
@@ -4440,9 +4449,9 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
             return;
         }
         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);
             try{
@@ -4552,7 +4561,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         return ResultData.ok(html);
     }
 
-    public ResultData downloadTexData(SceneEditVO param) throws Exception {
+    public ResultData downloadTexData(SceneEditParamVO param) throws Exception {
         String sceneNum = param.getSceneNum();
 
         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());
     }
 
-    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 {
         if(!StrUtil.isEmpty(base.getTourList())){
             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.ISceneProService;
 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.SceneVO;
 import lombok.extern.slf4j.Slf4j;
@@ -489,7 +489,7 @@ public class SceneServiceImpl extends ServiceImpl<ISceneMapper, Scene> implement
 
     @Override
 //    @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())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
@@ -601,7 +601,7 @@ public class SceneServiceImpl extends ServiceImpl<ISceneMapper, Scene> implement
 
     @Override
 //    @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())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
@@ -668,7 +668,7 @@ public class SceneServiceImpl extends ServiceImpl<ISceneMapper, Scene> implement
 
     @Override
 //    @SystemServiceLog(description = "保存热点可见性的数据")
-    public ResultData saveHotVisible(SceneEditVO base) throws Exception {
+    public ResultData saveHotVisible(SceneEditParamVO base) throws Exception {
         if(StrUtil.isEmpty(base.getData())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }
@@ -887,7 +887,7 @@ public class SceneServiceImpl extends ServiceImpl<ISceneMapper, Scene> implement
 
 
     @Override
-    public ResultData addHotMediaInfo(SceneEditVO base) throws Exception{
+    public ResultData addHotMediaInfo(SceneEditParamVO base) throws Exception{
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getType()) ||
                 StrUtil.isEmpty(base.getInfo())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
@@ -932,7 +932,7 @@ public class SceneServiceImpl extends ServiceImpl<ISceneMapper, Scene> implement
     }
 
     @Override
-    public ResultData saveScreencapFile(SceneEditVO base) throws Exception{
+    public ResultData saveScreencapFile(SceneEditParamVO base) throws Exception{
         if(StrUtil.isEmpty(base.getSceneNum()) || StrUtil.isEmpty(base.getIndex()) ||
                 StrUtil.isEmpty(base.getCamerasData())){
             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不能为空!")
     private String sceneNum;
 
+    private String id;
+
     private String type;
 
     /**
@@ -86,6 +88,8 @@ public class FileParamVO {
 
     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
 @NoArgsConstructor
 @AllArgsConstructor
-public class SceneEditVO {
+public class SceneEditParamVO {
 
     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 BigInteger space;
+    private Long space;
 
     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_type" property="sceneType" jdbcType="TINYINT" />
         <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="gps" property="gps" jdbcType="VARCHAR" />
         <result column="scene_scheme" property="sceneScheme" jdbcType="TINYINT" />
@@ -28,14 +28,13 @@
     <sql id="ScenePro_column">
         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.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
     </sql>
 
     <resultMap id="SceneProExtResultMap" type="com.fdkankan.scene.entity.SceneProExt" >
         <result column="scene_pro_id" property="sceneProId" jdbcType="BIGINT" />
         <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="recommend" property="recommend" jdbcType="TINYINT" />
         <result column="files_name" property="filesName" jdbcType="VARCHAR" />
@@ -48,10 +47,11 @@
         <result column="vrnum" property="vrnum" jdbcType="VARCHAR" />
         <result column="unicode" property="unicode" jdbcType="VARCHAR" />
         <result column="view_count" property="viewCount" jdbcType="INTEGER" />
+        <result column="shoot_count" property="shootCount" jdbcType="INTEGER" />
     </resultMap>
 
     <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.firmware_version, ext.compute_time, ext.scene_source, ext.vrnum, ext.unicode
     </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;
 //        }
         System.out.println("响应拦截成功");
-//        if(Objects.isNull(body)){
-//            return ResultData.ok();
-//        }
         if(body instanceof String){
             return JSONObject.toJSONString(ResultData.ok(body));
         }