package com.fdkanfang.service.backend.impl;

import com.fdkanfang.dao.backend.IBaseMapper;
import com.fdkanfang.dao.backend.ISceneProEditMapper;
import com.fdkanfang.dao.backend.ISceneProMapper;
import com.fdkanfang.domain.backend.SceneProEntity;
import com.fdkanfang.service.BaseMapperServiceImpl;
import com.fdkanfang.service.backend.ISceneProService;

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.*;

/**
 * Created by Hb_zzZ on 2019/7/23.
 */
@Slf4j
@Service("sceneProService")
@Transactional
public class SceneProServiceImpl extends BaseMapperServiceImpl<SceneProEntity, Long> implements ISceneProService {

    @Autowired
    private ISceneProMapper sceneProMapper;

    @Autowired
    private ISceneProEditMapper sceneProEditMapper;

    @Override
    public IBaseMapper<SceneProEntity, Long> getBaseMapper() {
        return sceneProMapper;
    }

    @Override
    public SceneProEntity findBySceneNum(String sceneNum) throws Exception {
        return sceneProMapper.findByNum(sceneNum);
    }

    @Override
    public void updateUserIdByCameraId(Long userId, Long cameraId) {

    }

    @Override
    public int updateRecStatus(String unicode) {
        return 0;
    }

    @Override
    public SceneProEntity findByFileId(String fileId) {
        return null;
    }

    @Override
    public List<SceneProEntity> findTempScenes() throws Exception {
        return null;
    }

//    @Override
//    public List<ResponseScene> convert(List<SceneProEntity> list) throws Exception {
//        List<ResponseScene> responseScenes = new ArrayList<>();
//        for (SceneProEntity sceneProEntity : list){
//            ResponseScene responseScene = new ResponseScene();
//
//            SceneProEditEntity editEntity = sceneProEditMapper.findByProId(sceneProEntity.getId());
//            BeanUtils.copyProperties(editEntity, responseScene);
//            BeanUtils.copyProperties(sceneProEntity, responseScene);
//
//            responseScene.setCreateTime(new DateTime(sceneProEntity.getCreateTime()).toString("yyyy-MM-dd"));
//            responseScene.setCreateDate(sceneProEntity.getCreateTime().getTime());
//            responseScenes.add(responseScene);
//        }
//        return responseScenes;
//    }

//    @Override
//    public int getSceneCount(Long cameraId) {
//        return sceneProMapper.getSceneCount(cameraId);
//    }
//
//    @Override
//    public SceneProEntity findBySceneNum(String sceneNum) throws Exception {
//        return sceneProMapper.findByNum(sceneNum);
//    }
//
//    @Override
//    public SceneProEntity findDeleteSceneBySceneNum(String sceneNum) {
//        return sceneProMapper.findDeleteSceneBySceneNum(sceneNum);
//    }
//
//    @Override
//    public SceneProEntity getSceneStatusByUnicode(String unicode, String recStatus) {
//        return sceneProMapper.getSceneStatusByUnicode(unicode, recStatus);
//    }

//    @Override
//    public List<SceneProEntity> findByUserId(Long userId, Integer cameraType) {
//        return sceneProMapper.findByUserId(userId, cameraType);
//    }

//    @Override
//    public int updateStatus(String sceneNum, int status) {
//        return sceneProMapper.updateStatus(sceneNum, status);
//    }
//
//    @Override
//    public Result resetUploadFloorJson(RequestSceneEdit sceneEdit) throws Exception{
//        if(StringUtils.isEmpty(sceneEdit.getSceneNum())){
//            throw new BaseRuntimeException(LoginConstant.FAILURE_CODE_3001, LoginConstant.FAILURE_MSG_3001);
//        }
//
//        SceneProEntity sceneProEntity = findBySceneNum(sceneEdit.getSceneNum());
//        if(sceneProEntity == null){
//            throw new BaseRuntimeException(SceneConstant.FAILURE_CODE_5005, SceneConstant.FAILURE_MSG_5005);
//        }
//
//        StringBuffer dataBuf = new StringBuffer()
//                .append("data").append(File.separator)
//                .append("data").append(sceneProEntity.getNum())
//                .append(File.separator);
//        StringBuffer dataBuffer = new StringBuffer(ConstantFilePath.SCENE_PATH).append(dataBuf.toString());
//
//        //更新scene.json文件
//        String strsceneInfos = FileUtils.readFile(dataBuffer.toString() + "scene.json");
//        JSONObject scenejson = new JSONObject();
//        if(strsceneInfos!=null)
//        {
//            scenejson = JSONObject.parseObject(strsceneInfos);
//        }else {
//            new File(dataBuffer.toString() + "scene.json").createNewFile();
//        }
//        if(!StringUtils.isEmpty(sceneEdit.getSceneData())){
//            JSONObject sceneObject = JSONObject.parseObject(sceneEdit.getSceneData());
//            Set<String> set =sceneObject.keySet();
//
//            for(String key : set){
//                scenejson.put(key, sceneObject.get(key));
//            }
//        }
//
//        SceneProEditEntity sceneProEditEntity = sceneProEditMapper.findByProId(sceneProEntity.getId());
//        //重置将floorEditVer回归floorPublishVer
//        sceneProEditEntity.setFloorPublishVer(sceneProEditEntity.getFloorEditVer());
//        sceneProEditMapper.updateByPrimaryKeySelective(sceneProEditEntity);
//
//        //更新scene.json文件
//        if(strsceneInfos!=null){
//            scenejson.put("floorEditVer", sceneProEditEntity.getFloorEditVer());
//            scenejson.put("floorPublishVer", sceneProEditEntity.getFloorEditVer());
//            scenejson.put("cadInfo", sceneProEditEntity.getCadInfo());
//            FileUtils.writeFile(dataBuffer.toString() + "scene.json", scenejson.toString());
//            log.info("写入scene.json文件完成——"+sceneEdit.getSceneNum());
//        }
//        log.info("重置画墙重建模型版本成功");
//
//        return Result.success();
//    }
//
//    @Override
//    public Result uploadFloorJson(RequestSceneEdit sceneEdit) throws Exception {
//        long start = System.currentTimeMillis();
//        log.info("画墙重建模型开始时间：" + start);
//        if(StringUtils.isEmpty(sceneEdit.getSceneNum())){
//            throw new BaseRuntimeException(LoginConstant.FAILURE_CODE_3001, LoginConstant.FAILURE_MSG_3001);
//        }
//
//        SceneProEntity sceneProEntity = findBySceneNum(sceneEdit.getSceneNum());
//        if(sceneProEntity == null){
//            throw new BaseRuntimeException(SceneConstant.FAILURE_CODE_5005, SceneConstant.FAILURE_MSG_5005);
//        }
//
//        //更新scene.json文件
//        String strsceneInfos = FileUtils.readFile(ConstantFilePath.SCENE_PATH + "data" + File.separator + "data" + sceneEdit.getSceneNum() + File.separator + "scene.json");
//        JSONObject scenejson = new JSONObject();
//        if(strsceneInfos!=null)
//        {
//            scenejson = JSONObject.parseObject(strsceneInfos);
//        }else {
//            new File(ConstantFilePath.SCENE_PATH + "data" + File.separator + "data" + sceneEdit.getSceneNum() + File.separator + "scene.json").createNewFile();
//        }
//        if(!StringUtils.isEmpty(sceneEdit.getSceneData())){
//            JSONObject sceneObject = JSONObject.parseObject(sceneEdit.getSceneData());
//            Set<String> set =sceneObject.keySet();
//
//            for(String key : set){
//                scenejson.put(key, sceneObject.get(key));
//            }
//        }
//
//        String path = sceneProEntity.getDataSource();
//        if(path != null && !"".equals(path) && path.startsWith("http")){
//            path = ConstantFilePath.BUILD_MODEL_PATH + File.separator + path.split("/")[path.split("/").length - 2];
//        }
//        String target = path + "_edit";
//        File editPath = new File(target);
//        if(!editPath.exists()){
//            editPath.mkdirs();
//        }
//        //创建文件夹软连接并且复制data.json和project.json
//        if(new File(target + File.separator + "capture").exists()){
//            new File(target + File.separator + "capture").delete();
//        }
//        if(new File(target + File.separator + "caches").exists()){
//            //删除link
//            new File(target + File.separator + "caches" + File.separator + "images").delete();
//            //删除所有文件
//            FileUtils.delAllFile(target + File.separator + "caches");
//        }
//        if(new File(target + File.separator + "results").exists()){
//            FileUtils.delAllFile(target + File.separator + "results");
//        }
//        //创建文件夹,并link文件夹
//        new File(target + File.separator + "caches").mkdirs();
//        CreateObjUtil.createSoftConnection(path + File.separator + "capture", target + File.separator + "capture");
//        if(new File(path + File.separator + "caches" + File.separator + "images").exists()){
//            CreateObjUtil.createSoftConnection(path + File.separator + "caches" + File.separator + "images", target + File.separator + "caches" + File.separator + "images");
//        }
//
//        FileUtils.copyFile(path + File.separator + "data.json", target + File.separator+"data.json", true);
//        FileUtils.copyFile(path + File.separator + "project.json", target + File.separator+"project.json", true);
//
//        //data.json增加extras为执行重建算法
//        String project = FileUtils.readFile(target + File.separator+"project.json");
//        if(project != null){
//            JSONObject projectJson = JSONObject.parseObject(project);
//            projectJson.put("parent", projectJson.get("uuid"));
//            projectJson.put("uuid", UUID.randomUUID().toString());
//            projectJson.put("time", System.currentTimeMillis());
//            FileUtils.writeFile(path + File.separator + "project.json", projectJson.toString());
//        }
//
//        String data = FileUtils.readFile(target + File.separator+"data.json");
//        if(data != null){
//            JSONObject floorplanJson = new JSONObject();
//            floorplanJson.put("has_floorplan_json", true);
//            floorplanJson.put("has_vision_txt", true);
//
//            JSONObject dataJson = JSONObject.parseObject(data);
//            dataJson.put("extras", floorplanJson);
//            //V5表示不需要生成high，low文件
//            dataJson.put("skybox_type", "SKYBOX_V5");
//            FileUtils.writeFile(target + File.separator+"data.json", new String(dataJson.toString().getBytes(), "UTF-8"));
//        }
//
//        //文件上传的位置可以自定义
//        log.info("画墙重建模型开始");
//        File targetFile = new File(target + File.separator + "extras" + File.separator + "floorplan.json");
//        if(!targetFile.getParentFile().exists()){
//            targetFile.getParentFile().mkdirs();
//        }
//        if(targetFile.exists()){
//            FileUtils.deleteFile(target + File.separator + "extras" + File.separator + "floorplan.json");
//        }
//        // 保存
//        FileUtils.writeFile(target + File.separator + "extras" + File.separator + "floorplan.json", new String(sceneEdit.getFloor().getBytes(), "UTF-8"));
//        //保存floor.json前端下次进入需要使用
//        FileUtils.writeFile(ConstantFilePath.SCENE_PATH+"data"+File.separator+"data"+sceneEdit.getSceneNum() + File.separator + "floor.json", new String(sceneEdit.getFloor().getBytes(), "UTF-8"));
//        //下载vision.modeldata，解压成vision.txt,并且删除vision.modeldata
//        log.info("下载vision.modeldata文件");
//        FileUtils.downLoadFromUrl("https://4dkk.4dage.com/images/images" + sceneEdit.getSceneNum() + "/vision.modeldata" + "?m="+new Date().getTime(),
//                "vision.modeldata", target + File.separator + "extras" + File.separator);
//        CreateObjUtil.convertVisionmodeldataToTxt(target + File.separator + "extras" + File.separator + "vision.modeldata",
//                target + File.separator + "extras" + File.separator + "vision.txt");
//        log.info("解压完成，删除vision.modeldata文件");
//        FileUtils.deleteFile(target + File.separator + "extras" + File.separator + "vision.modeldata");
//
////			File visionFile = new File(Message.filePath+"data"+File.separator+"data"+sceneNum+File.separator+"vision.json");
////			if(visionFile.exists()){
////				FileUtil.copyFile(Message.filePath+"data"+File.separator+"data"+sceneNum+File.separator+"vision.json", target + File.separator + "extras" + File.separator + "vision.txt", true);
////			}else {
////				FileUtil.copyFile(path + File.separator + "results" + File.separator + "vision.txt", target + File.separator + "extras" + File.separator + "vision.txt", true);
////			}
//        //复制vision2.txt，修改热点可行性不改动vision2.txt
////        FileUtils.copyFile(path + File.separator + "results" + File.separator + "vision2.txt", target + File.separator + "extras" + File.separator + "vision2.txt", true);
//			log.info("下载vision2.modeldata文件");
//        FileUtils.downLoadFromUrl("https://4dkk.4dage.com/images/images" + sceneEdit.getSceneNum() + "/vision2.modeldata" + "?m="+new Date().getTime(),
//                "vision2.modeldata", target + File.separator + "extras" + File.separator);
//        CreateObjUtil.convertVisionmodeldataToTxt(target + File.separator + "extras" + File.separator + "vision2.modeldata",
//                target + File.separator + "extras" + File.separator + "vision2.txt");
//        log.info("解压完成，删除vision2.modeldata文件");
//        FileUtils.deleteFile(target + File.separator + "extras" + File.separator + "vision2.modeldata");
//
//        //重新计算算法
//        log.info("重新计算大场景：开始建模——"+sceneEdit.getSceneNum());
//        CreateObjUtil.build3dModel(target , "1");
//
//        log.info("重新计算大场景：开始转换成lzma文件——"+sceneEdit.getSceneNum());
//        CreateObjUtil.convertTxtToDam( target + File.separator + "results" + File.separator+"tex"+
//                File.separator+"modeldata.txt", target + File.separator + "results" +File.separator+ ConstantFileName.modelUUID+"_50k.dam");
//        CreateObjUtil.convertDamToLzma(target.replace(ConstantFilePath.BUILD_MODEL_PATH, "") + File.separator + "results");
//        CreateObjUtil.convertTxtToDam( target + File.separator + "results" +File.separator+"tex"+
//                File.separator+"modeldata.txt", target + File.separator + "results" + File.separator+ConstantFileName.modelUUID+"_50k.dam");
////			createObjService.convertTxtToVisionmodeldata(target + File.separator + "results" +File.separator+
////					"vision.txt",target + File.separator + "results" +File.separator+"vision.modeldata");
//        //8目相机有两个vision.txt因此第二个叫vision2.txt
////			if(new File(target + File.separator + "results" +File.separator+"vision2.txt").exists()){
////				createObjService.convertTxtToVisionmodeldata(target + File.separator + "results" +File.separator+
////						"vision2.txt",target + File.separator + "results" +File.separator+"vision2.modeldata");
////			}
//        File lzmaFile = new File(target + File.separator + "results" +File.separator+ConstantFileName.modelUUID+"_50k.dam.lzma");
//        if(!lzmaFile.exists())
//        {
//            log.info("lzam文件不存在——"+sceneEdit.getSceneNum());
//            Thread.sleep(60000);
//        }
//
//        File sceneFile = new File(ConstantFilePath.SCENE_PATH+"images"+File.separator+"images"+sceneEdit.getSceneNum() + File.separator + ConstantFileName.modelUUID + "_50k_texture_jpg_high1");
//        if(!sceneFile.exists())
//        {
//            log.info("high1文件夹不存在——"+sceneEdit.getSceneNum());
//            sceneFile.mkdirs();
//        }
//
//        //将重新建模的tex里的文件和lzma文件复制到Message.filePath+"images"+File.separator+"images"+sceneNum下。
//        List<String> list1 = FileUtils.readfileNamesForDirectory(target+File.separator+ "results" + File.separator +"tex",".jpg");
//        log.info("新生成的贴图有：——"+list1.size());
//        for(int i=0; i<list1.size(); ++i)
//        {
//            String imgName = list1.get(i);
//            FileUtils.copyFile(target+File.separator + "results" + File.separator+"tex"+File.separator+imgName,
//                    ConstantFilePath.SCENE_PATH+"images"+File.separator+"images"+sceneEdit.getSceneNum() + File.separator + ConstantFileName.modelUUID + "_50k_texture_jpg_high1"+File.separator+imgName, true);
//        }
//        FileUtils.copyFile(target+File.separator + "results" + File.separator +ConstantFileName.modelUUID+"_50k.dam",
//                ConstantFilePath.SCENE_PATH+"images"+File.separator+"images"+sceneEdit.getSceneNum() + File.separator + ConstantFileName.modelUUID+"_50k.dam", true);
//        log.info("文件复制到本地ecs完成——"+sceneEdit.getSceneNum());
//
//        SceneProEditEntity sceneProEditEntity = sceneProEditMapper.findByProId(sceneProEntity.getId());
//
//        //更新scene.json文件
//        if(strsceneInfos!=null)
//        {
//            scenejson.put("floorEditVer", sceneProEditEntity.getFloorEditVer() + 1);
//            scenejson.put("floorPublishVer", sceneProEditEntity.getFloorPublishVer());
//            FileUtils.writeFile(ConstantFilePath.SCENE_PATH+"data"+File.separator+"data"+sceneEdit.getSceneNum()+File.separator+"scene.json", scenejson.toString());
//            log.info("写入scene.json文件完成——"+sceneEdit.getSceneNum());
//        }
//
//        //floorEditVer字段增加1
//        sceneProEditEntity.setFloorEditVer(sceneProEditEntity.getFloorEditVer() + 1);
//        sceneProEditMapper.updateByPrimaryKeySelective(sceneProEditEntity);
//        log.info("修改数据库完成——"+sceneEdit.getSceneNum());
//
//        log.info("花费时间：" + (System.currentTimeMillis() - start));
//
//        return Result.success();
//    }
//
//    @Override
//    public Result addHotMediaInfo(RequestSceneEdit base) throws Exception{
//        if(StringUtils.isEmpty(base.getSceneNum()) || StringUtils.isEmpty(base.getType()) ||
//                StringUtils.isEmpty(base.getInfo())){
//            throw new BaseRuntimeException(LoginConstant.FAILURE_CODE_3001, LoginConstant.FAILURE_MSG_3001);
//        }
//
//        SceneProEntity sceneProEntity = findBySceneNum(base.getSceneNum());
//        if(sceneProEntity == null){
//            throw new BaseRuntimeException(SceneConstant.FAILURE_CODE_5005, SceneConstant.FAILURE_MSG_5005);
//        }
//        StringBuffer dataBuf = new StringBuffer()
//                .append("data").append(File.separator)
//                .append("data").append(sceneProEntity.getNum())
//                .append(File.separator);
//
//        StringBuffer dataBuffer = new StringBuffer(ConstantFilePath.SCENE_PATH).append(dataBuf.toString());
//
//        String infoData = FileUtils.readFile(dataBuffer.toString() + "mediaInfo.json");
//        JSONArray medias =  null;
//        if(infoData != null){
//            medias= JSONArray.parseArray(infoData);
//        }
//
//        if("1".equals(base.getType())){
//            JSONObject jo = JSONObject.parseObject(base.getInfo());
//            medias.add(jo);
//        }else if("1".equals(base.getType())){
//
//            for(int i=0;i<medias.size();++i){
//                JSONObject ob = medias.getJSONObject(i);
//                if(ob.getString("file").equals(base.getName())){
//                    medias.remove(i);
//                    break;
//                }
//            }
//        }else{
//            throw new BaseRuntimeException(SceneConstant.FAILURE_CODE_5012, SceneConstant.FAILURE_MSG_5012);
//        }
//
//        FileUtils.writeFile(dataBuffer.toString() + "mediaInfo.json", medias.toString());
//
//        return Result.success();
//    }
//
//    @Override
//    public Result saveScreencapFile(RequestSceneEdit base) throws Exception{
//        if(StringUtils.isEmpty(base.getSceneNum()) || StringUtils.isEmpty(base.getIndex()) ||
//                StringUtils.isEmpty(base.getCamerasData())){
//            throw new BaseRuntimeException(LoginConstant.FAILURE_CODE_3001, LoginConstant.FAILURE_MSG_3001);
//        }
//
//        SceneProEntity sceneProEntity = findBySceneNum(base.getSceneNum());
//        if(sceneProEntity == null){
//            throw new BaseRuntimeException(SceneConstant.FAILURE_CODE_5005, SceneConstant.FAILURE_MSG_5005);
//        }
//
//        StringBuffer dataBuf = new StringBuffer()
//                .append("data").append(File.separator)
//                .append("data").append(sceneProEntity.getNum())
//                .append(File.separator);
//
//        StringBuffer dataBuffer = new StringBuffer(ConstantFilePath.SCENE_PATH).append(dataBuf.toString());
//
//        if("1".equals(base.getIndex())){
//            File file = new File(dataBuffer.toString() + ConstantFileName.TOURLIST_FOLDER);
//            if(file.isDirectory()){
//                String[] strs = file.list();
//                if(strs!=null){
//                    for(int i=0;i<strs.length;++i) {
//
//                        if(strs[i].indexOf(ConstantFileName.SCREEN_CRP_DATAFILE)>-1) {
//                            FileUtils.deleteFile(dataBuffer.toString() + ConstantFileName.TOURLIST_FOLDER + File.separator + strs[i]);
//                        }
//                    }
//                }
//            } else {
//                file.mkdirs();
//            }
//
//            SceneProEditEntity sceneProEditEntity = sceneProEditMapper.findByProId(sceneProEntity.getId());
//            Map<String, Object> map = new HashMap<>();
//            map.put("screencapLen", "0");
//            map.put("version", sceneProEditEntity.getVersion()+1);
//            FileUtils.writeJsonFile(dataBuffer.toString() + "scene.json", map);
//            //sceneService.updateScreencapLen(sceneNum, 0);
//        }
//
//        String filePath = dataBuffer.toString() + ConstantFileName.TOURLIST_FOLDER+File.separator+ConstantFileName.SCREEN_CRP_DATAFILE+base.getIndex()+"json";
//        File file = new File(filePath);
//        if(!file.exists())
//        {
//            file.createNewFile();
//        }
//        FileUtils.writeFile(filePath, base.getCamerasData());
//
//        return Result.success();
//    }
//
//    @Override
//    public Result saveSceneKey(RequestSceneEdit base) throws Exception{
//        if(StringUtils.isEmpty(base.getSceneNum()) || StringUtils.isEmpty(base.getSceneKey())){
//            throw new BaseRuntimeException(LoginConstant.FAILURE_CODE_3001, LoginConstant.FAILURE_MSG_3001);
//        }
//
//        SceneProEntity sceneProEntity = findBySceneNum(base.getSceneNum());
//        if(sceneProEntity == null){
//            throw new BaseRuntimeException(SceneConstant.FAILURE_CODE_5005, SceneConstant.FAILURE_MSG_5005);
//        }
//
//        SceneProEditEntity sceneProEditEntity = sceneProEditMapper.findByProId(sceneProEntity.getId());
//        sceneProEditEntity.setSceneKey(base.getSceneKey());
//        sceneProEditEntity.setVersion(sceneProEditEntity.getVersion() + 1);
//        sceneProEditMapper.updateByPrimaryKeySelective(sceneProEditEntity);
//        return Result.success();
//    }
//
//    @Override
//    public Result saveFloorLogo(RequestSceneEdit base) throws Exception{
//        if(StringUtils.isEmpty(base.getSceneNum()) || StringUtils.isEmpty(base.getSize()) ||
//                StringUtil.isEmpty(base.getLogoType())){
//            throw new BaseRuntimeException(LoginConstant.FAILURE_CODE_3001, LoginConstant.FAILURE_MSG_3001);
//        }
//
//        SceneProEntity sceneProEntity = findBySceneNum(base.getSceneNum());
//        if(sceneProEntity == null){
//            throw new BaseRuntimeException(SceneConstant.FAILURE_CODE_5005, SceneConstant.FAILURE_MSG_5005);
//        }
//
//        StringBuffer dataBuf = new StringBuffer()
//                .append("data").append(File.separator)
//                .append("data").append(sceneProEntity.getNum())
//                .append(File.separator);
//
//        StringBuffer dataBuffer = new StringBuffer(ConstantFilePath.SCENE_PATH).append(dataBuf.toString());
//
//        SceneProEditEntity sceneProEditEntity = sceneProEditMapper.findByProId(sceneProEntity.getId());
//        Map map = new HashMap();
//        map.put("floorLogo", base.getLogoType());
//        map.put("floorLogoSize", base.getSize());
//        map.put("version", sceneProEditEntity.getVersion()+1);
//
//        FileUtils.writeJsonFile(dataBuffer.toString() + "scene.json", map);
//        return Result.success();
//    }
//
//    @Override
//    public Result saveBackgroundMusic(RequestSceneEdit base) throws Exception{
//        if(StringUtils.isEmpty(base.getSceneNum()) || StringUtils.isEmpty(base.getMusicName())){
//            throw new BaseRuntimeException(LoginConstant.FAILURE_CODE_3001, LoginConstant.FAILURE_MSG_3001);
//        }
//
//        SceneProEntity sceneProEntity = findBySceneNum(base.getSceneNum());
//        if(sceneProEntity == null){
//            throw new BaseRuntimeException(SceneConstant.FAILURE_CODE_5005, SceneConstant.FAILURE_MSG_5005);
//        }
//
//        StringBuffer dataBuf = new StringBuffer()
//                .append("data").append(File.separator)
//                .append("data").append(sceneProEntity.getNum())
//                .append(File.separator);
//
//        StringBuffer dataBuffer = new StringBuffer(ConstantFilePath.SCENE_PATH).append(dataBuf.toString());
//
//        SceneProEditEntity sceneProEditEntity = sceneProEditMapper.findByProId(sceneProEntity.getId());
//        Map map = new HashMap();
//        map.put("bgMusic", base.getMusicName());
//        map.put("version", sceneProEditEntity.getVersion()+1);
//
//        FileUtils.writeJsonFile(dataBuffer.toString() + "scene.json", map);
//        return Result.success();
//    }
//
//    @Override
//    public Result saveInitialPage(RequestSceneEdit base) throws Exception{
//        if(StringUtils.isEmpty(base.getSceneNum()) || StringUtils.isEmpty(base.getInitialPoint())){
//            throw new BaseRuntimeException(LoginConstant.FAILURE_CODE_3001, LoginConstant.FAILURE_MSG_3001);
//        }
//
//        SceneProEntity sceneProEntity = findBySceneNum(base.getSceneNum());
//        if(sceneProEntity == null){
//            throw new BaseRuntimeException(SceneConstant.FAILURE_CODE_5005, SceneConstant.FAILURE_MSG_5005);
//        }
//
//        StringBuffer dataBuf = new StringBuffer()
//                .append("data").append(File.separator)
//                .append("data").append(sceneProEntity.getNum())
//                .append(File.separator);
//        StringBuffer imagesBuf = new StringBuffer()
//                .append("images").append(File.separator)
//                .append("images").append(sceneProEntity.getNum())
//                .append(File.separator);
//
//        StringBuffer dataBuffer = new StringBuffer(ConstantFilePath.SCENE_PATH).append(dataBuf.toString());
//        StringBuffer imagesBuffer = new StringBuffer(ConstantFilePath.SCENE_PATH).append(imagesBuf.toString());
//
//        String path1 = imagesBuffer.toString() + "thumbBigImg.jpg";
//        String path2 = imagesBuffer.toString() + "thumbSmallImg.jpg";
//
//        //生成缩略图
//        //按指定大小把图片进行缩和放（会遵循原图高宽比例）
//        //此处把图片压成1024×512的缩略图
//        Thumbnails.of(path1).size(1024,512).toFile(path2);//变为1024×512
//
//        SceneProEditEntity sceneProEditEntity = sceneProEditMapper.findByProId(sceneProEntity.getId());
//        Map map = new HashMap();
//        map.put("entry", JSONObject.parseObject(base.getInitialPoint()));
//        map.put("thumbImg", 1);
//        map.put("version", sceneProEditEntity.getVersion()+1);
//        FileUtils.writeJsonFile(dataBuffer.toString() + "scene.json", map);
//
//        return Result.success();
//    }
//
//    @Override
//    public Result getScreencapVoice(RequestSceneEdit base) throws Exception{
//        if(StringUtils.isEmpty(base.getSceneNum())){
//            throw new BaseRuntimeException(LoginConstant.FAILURE_CODE_3001, LoginConstant.FAILURE_MSG_3001);
//        }
//
//        SceneProEntity sceneProEntity = findBySceneNum(base.getSceneNum());
//        if(sceneProEntity == null){
//            throw new BaseRuntimeException(SceneConstant.FAILURE_CODE_5005, SceneConstant.FAILURE_MSG_5005);
//        }
//
//        StringBuffer dataBuf = new StringBuffer()
//                .append("data").append(File.separator)
//                .append("data").append(sceneProEntity.getNum())
//                .append(File.separator);
//
//        StringBuffer dataBuffer = new StringBuffer(ConstantFilePath.SCENE_PATH).append(dataBuf.toString());
//
//        String sceneInfos = FileUtils.readFile(dataBuffer.toString() + "scene.json");
//        JSONObject scenejson = new JSONObject();
//        if(sceneInfos!=null)
//        {
//            scenejson = JSONObject.parseObject(sceneInfos);
//        }
//        JSONObject result = new JSONObject();
//        String screencapVoiceFileName = "";
//        if(scenejson.containsKey("screencapVoiceFileName"))
//        {
//            screencapVoiceFileName = scenejson.getString("screencapVoiceFileName");
//        }
//        String screencapVoiceSrc = "";
//        if(scenejson.containsKey("screencapVoiceSrc"))
//        {
//            screencapVoiceSrc = scenejson.getString("screencapVoiceSrc");
//        }
//        if(!screencapVoiceFileName.trim().equals("")&&!screencapVoiceSrc.trim().equals("")&&screencapVoiceFileName.indexOf(".")>-1)
//        {
//            result.put("screencapVoiceFileName", screencapVoiceFileName);
//            result.put("screencapVoiceSrc1", screencapVoiceSrc);
//            result.put("screencapVoiceSrc2", "voice/voice"+base.getSceneNum()+"/201810" +screencapVoiceFileName.substring(screencapVoiceFileName.lastIndexOf(".")));
//        }
//
//        return Result.success();
//    }
//
//    @Override
//    public Result uploadScreencapVoiceNew(String sceneNum, String type, String fileName, MultipartFile file, String length, String replace) throws Exception{
//        if(StringUtils.isEmpty(sceneNum)){
//            throw new BaseRuntimeException(LoginConstant.FAILURE_CODE_3001, LoginConstant.FAILURE_MSG_3001);
//        }
//
//        SceneProEntity sceneProEntity = findBySceneNum(sceneNum);
//        if(sceneProEntity == null){
//            throw new BaseRuntimeException(SceneConstant.FAILURE_CODE_5005, SceneConstant.FAILURE_MSG_5005);
//        }
//
//        if (!file.isEmpty()&& file.getSize() <= 0) {
//            throw new BaseRuntimeException(SceneConstant.FAILURE_CODE_5012, SceneConstant.FAILURE_MSG_5012);
//        }
//        //文件上传的位置可以自定义
//        String path = ConstantFilePath.SCENE_PATH+"voice"+File.separator+"voice"+sceneNum;
//        File targetFile = new File(path);
//        if (!targetFile.exists()) {
//            targetFile.mkdirs();
//        }
//
//        SceneProEditEntity sceneProEditEntity = sceneProEditMapper.findByProId(sceneProEntity.getId());
//
//        //获取文件名去掉后缀
//        String originalFileName = file.getOriginalFilename().substring(0,
//                file.getOriginalFilename().indexOf(".") > 0 ? file.getOriginalFilename().indexOf(".") : file.getOriginalFilename().length());
//        log.info("上传的音频文件名：" + file.getOriginalFilename());
//        String soundFileName = "sound201810.wav";
//        if("soundsync".equals(type) && !"1".equals(replace)){
//            synchronized(this){
//                String strsceneInfos = FileUtils.readFile(ConstantFilePath.SCENE_PATH + "data/data" + sceneNum + File.separator + "scene.json");
//                JSONObject scenejson = new JSONObject();
//                if(strsceneInfos!=null) {
//                    scenejson = JSONObject.parseObject(strsceneInfos);
//                }
//
//                if(scenejson.containsKey("screencapVoiceSoundsync") && !StringUtils.isEmpty(scenejson.getString("screencapVoiceSoundsync"))){
//                    String target = ConstantFilePath.SCENE_PATH + scenejson.getString("screencapVoiceSoundsync").substring(
//                            scenejson.getString("screencapVoiceSoundsync").indexOf("voice"));
//
//                    if(new File(target).exists()){
//                        targetFile = new File(path + File.separator +soundFileName);
//                        if(targetFile.exists())
//                        {
//                            FileUtils.deleteFile(path + File.separator + soundFileName);
//                        }
//                        file.transferTo(targetFile);
//                        FileUtils.changeVoiceToMp3(path + File.separator + soundFileName, path + File.separator + "newSound201810.mp3");
//
//                        //目标文件改名
//                        new File(target).renameTo(new File(path + File.separator + "oldSound201810.mp3"));
//
//                        //判断音频时长，不够拼接空白音效
//                        double total = Double.parseDouble(length);
//                        double now = (FileUtils.getAudioPlayTime(new File(path + File.separator + "oldSound201810.mp3")) +
//                                FileUtils.getAudioPlayTime(new File(path + File.separator + "newSound201810.mp3"))) / 1000.0;
//                        if(total - now > 0.5){
//                            CreateObjUtil.createMuteViode(total - now, path + File.separator + "muteSound.mp3");
//                            if(new File(path + File.separator + "muteSound.mp3").exists()){
//                                //需要将旧的音频改名
//                                new File(path + File.separator + "oldSound201810.mp3").renameTo(new File(path + File.separator + "oldMuteSound201810.mp3"));
//                                log.info("生成新的静音音频和旧的音频合并");
//                                CreateObjUtil.mergeVideo(path + File.separator + "oldMuteSound201810.mp3", path + File.separator + "muteSound.mp3",
//                                        path + File.separator + "oldSound201810.mp3");
//                            }
//                        }
//
//                        //app端和pc端名字不一致，统一文件名字
//                        target = path + File.separator + originalFileName + ".mp3";
//                        CreateObjUtil.mergeVideo(path + File.separator + "oldSound201810.mp3", path + File.separator + "newSound201810.mp3", target);
//                        //删除改名后的文件
////                    new File(path + File.separator + "oldSound201810.mp3").delete();
//
//                        Map map = new HashMap();
//                        map.put("screencapVoiceSoundsyncFileName", originalFileName + ".mp3");
//                        String proVideo = "voice/voice"+sceneNum+"/"+originalFileName  + ".mp3";
//                        map.put("screencapVoiceSoundsync", proVideo);
//                        map.put("uploadVoiceSoundsync", 1);
//                        map.put("screencapVoiceType", type);
//                        map.put("version", sceneProEditEntity.getVersion()+1);
//                        FileUtils.writeJsonFile(ConstantFilePath.SCENE_PATH + "data/data" + sceneNum + File.separator + "scene.json", map);
//                        return Result.success("voice/voice"+sceneNum+"/"+originalFileName + ".mp3");
//                    }
//
//                }else {
//                    targetFile = new File(path + File.separator +soundFileName);
//                    if(targetFile.exists())
//                    {
//                        FileUtils.deleteFile(path + File.separator + soundFileName);
//                    }
//                    file.transferTo(targetFile);
//                    //判断音频时长，不够拼接空白音效
//                    FileUtils.changeVoiceToMp3(path + File.separator + soundFileName, path + File.separator + "newSound201810.mp3");
//                    double total = Double.parseDouble(length);
//                    double now = (FileUtils.getAudioPlayTime(new File(path + File.separator + "newSound201810.mp3"))) / 1000.0;
//                    log.info("前端传的时长：" + total);
//                    log.info("获取文件的时长：" + now);
//
//                    //同步录音前一段没空白，直接生成文件
//                    if(total - now < 0.5){
//                        FileUtils.changeVoiceToMp3(path + File.separator + soundFileName, path + File.separator + originalFileName + ".mp3");
//                        Map map = new HashMap();
//                        map.put("screencapVoiceSoundsyncFileName", originalFileName + ".mp3");
//                        String proVideo = "voice/voice"+sceneNum+"/"+originalFileName  + ".mp3";
//                        map.put("screencapVoiceSoundsync", proVideo);
//                        map.put("uploadVoiceSoundsync", 1);
//                        map.put("screencapVoiceType", type);
//                        map.put("version", sceneProEditEntity.getVersion()+1);
//
//                        FileUtils.writeJsonFile(ConstantFilePath.SCENE_PATH + "data/data" + sceneNum + File.separator + "scene.json", map);
//                        //uploadToQiniuForScene3DService.upload(path + File.separator +fileName, "voice/voice"+sceneNum+"/"+CONSTANTFILENAME.VOICENAME +fileName.substring(fileName.lastIndexOf(".")));
//                        //sceneService.updateScreencapMusic(sceneNum, voiceSrc);
//                        return Result.success(proVideo);
//                    }
//
//                    ////同步录音前一段有空白，生成一段静音后拼接文件
//                    CreateObjUtil.createMuteViode(total - now, path + File.separator + "muteSound.mp3");
//
//                    //app端和pc端名字不一致，统一文件名字
//                    String target = path + File.separator + originalFileName + ".mp3";
//                    CreateObjUtil.mergeVideo(path + File.separator + "muteSound.mp3", path + File.separator + "newSound201810.mp3", target);
//
//                    Map map = new HashMap();
//                    map.put("screencapVoiceSoundsyncFileName", originalFileName + ".mp3");
//                    String proVideo = "voice/voice"+sceneNum+"/"+originalFileName  + ".mp3";
//                    map.put("screencapVoiceSoundsync", proVideo);
//                    map.put("uploadVoiceSoundsync", 1);
//                    map.put("screencapVoiceType", type);
//                    map.put("version", sceneProEditEntity.getVersion()+1);
//                    FileUtils.writeJsonFile(ConstantFilePath.SCENE_PATH + "data/data" + sceneNum + File.separator + "scene.json", map);
//                    return Result.success("voice/voice"+sceneNum+"/"+originalFileName + ".mp3");
//                }
//
//            }
//        }
//
//        String name = "201810.wav";
//        targetFile = new File(path + File.separator +name);
//        // 保存
//        synchronized(this){
//            if(targetFile.exists())
//            {
//                FileUtils.deleteFile(path + File.separator + name);
//            }
//            file.transferTo(targetFile);
//        }
//        Map map = new HashMap();
//
//        if("soundsync".equals(type)){
//            FileUtils.changeVoiceToMp3(path + File.separator + name, path + File.separator + originalFileName + ".mp3");
//            map.put("screencapVoiceSoundsyncFileName", originalFileName + ".mp3");
//            String proVideo = "voice/voice"+sceneNum+"/"+originalFileName  + ".mp3";
//            map.put("screencapVoiceSoundsync", proVideo);
//            map.put("uploadVoiceSoundsync", 1);
//            map.put("version", sceneProEditEntity.getVersion()+1);
//            map.put("screencapVoiceType", type);
//            FileUtils.writeJsonFile(ConstantFilePath.SCENE_PATH + "data/data" + sceneNum + File.separator + "scene.json", map);
//            return Result.success(proVideo);
//        }
//
//        if("sound".equals(type)){
//            FileUtils.changeVoiceToMp3(path + File.separator + name, path + File.separator + originalFileName + ".mp3");
//            map.put("screencapVoiceSoundFileName", originalFileName + ".mp3");
//            String proVideo = "voice/voice"+sceneNum+"/"+originalFileName  + ".mp3";
//            map.put("screencapVoiceSound", proVideo);
//            map.put("uploadVoiceSound", 1);
//            map.put("version", sceneProEditEntity.getVersion()+1);
//            map.put("screencapVoiceType", type);
//            FileUtils.writeJsonFile(ConstantFilePath.SCENE_PATH + "data/data" + sceneNum + File.separator + "scene.json", map);
//            return Result.success(proVideo);
//        }
//
//        FileUtils.changeVoiceToMp3(path + File.separator + name, path + File.separator +"201810.mp3");
//        if(StringUtils.isEmpty(fileName)){
//            map.put("screencapVoiceFileName", originalFileName + ".mp3");
//        }else {
//            map.put("screencapVoiceFileName", fileName);
//        }
//        String voiceSrc = "voice/voice"+sceneNum+"/"+"201810.mp3";
//        map.put("screencapVoiceSrc", voiceSrc);
//        map.put("uploadVoiceSrc", 1);
//        map.put("version", sceneProEditEntity.getVersion()+1);
//        map.put("screencapVoiceType", type);
//        FileUtils.writeJsonFile(ConstantFilePath.SCENE_PATH + "data/data" + sceneNum + File.separator + "scene.json", map);
//        //uploadToQiniuForScene3DService.upload(path + File.separator +fileName, "voice/voice"+sceneNum+"/"+CONSTANTFILENAME.VOICENAME +fileName.substring(fileName.lastIndexOf(".")));
//        //sceneService.updateScreencapMusic(sceneNum, voiceSrc);
//        return Result.success(voiceSrc);
//    }
//
//    @Override
//    public Result deleteScreencapVoice(RequestSceneEdit base) throws Exception{
//        if(StringUtils.isEmpty(base.getSceneNum())){
//            throw new BaseRuntimeException(LoginConstant.FAILURE_CODE_3001, LoginConstant.FAILURE_MSG_3001);
//        }
//
//        SceneProEntity sceneProEntity = findBySceneNum(base.getSceneNum());
//        if(sceneProEntity == null){
//            throw new BaseRuntimeException(SceneConstant.FAILURE_CODE_5005, SceneConstant.FAILURE_MSG_5005);
//        }
//
//        String scenePath = ConstantFilePath.SCENE_PATH+ "data" + File.separator+"data"+base.getSceneNum()+File.separator+"scene.json";
//        String str = FileUtils.readFile(scenePath);
//        JSONObject json = new JSONObject();
//        if(str!=null){
//            json = JSONObject.parseObject(str);
//        }
//        else{
//            File file = new File(scenePath);
//            if(!file.getParentFile().exists())
//            {
//                file.getParentFile().mkdirs();
//            }
//            if(!file.exists())
//            {
//                file.createNewFile();
//            }
//        }
//        log.info("type:" + base.getType());
//        if("soundsync".equals(base.getType())){
//            FileUtils.deleteFile(ConstantFilePath.SCENE_PATH+json.getString("screencapVoiceSoundsync"));
//            json.put("screencapVoiceSoundsyncFileName", "");
//            json.put("screencapVoiceSoundsync", "");
//            json.put("version", json.getIntValue("version")+1);
//            FileUtils.deleteFile(scenePath);
//            FileUtils.writeFile(scenePath, json.toString());
//            return Result.success();
//        }
//
//        if("sound".equals(base.getType())){
//            FileUtils.deleteFile(ConstantFilePath.SCENE_PATH+json.getString("screencapVoiceSound"));
//            json.put("screencapVoiceSoundFileName", "");
//            json.put("screencapVoiceSound", "");
//            json.put("version", json.getIntValue("version")+1);
//            FileUtils.deleteFile(scenePath);
//            FileUtils.writeFile(scenePath, json.toString());
//            return Result.success();
//        }
//
//        String path = ConstantFilePath.SCENE_PATH+json.getString("screencapVoiceSrc");
//        log.info("path:" + ConstantFilePath.SCENE_PATH+json.getString("screencapVoiceSrc"));
//        FileUtils.deleteFile(path);
//
//        json.put("screencapVoiceFileName", "");
//        json.put("screencapVoiceSrc", "");
//        json.put("version", json.getIntValue("version")+1);
//        log.info("scenePath:" + scenePath);
//        FileUtils.deleteFile(scenePath);
//        FileUtils.writeFile(scenePath, json.toString());
//        return Result.success();
//    }
//
//    @Override
//    public Result deleteScreencap(RequestSceneEdit base) throws Exception{
//        if(StringUtils.isEmpty(base.getSceneNum())){
//            throw new BaseRuntimeException(LoginConstant.FAILURE_CODE_3001, LoginConstant.FAILURE_MSG_3001);
//        }
//
//        SceneProEntity sceneProEntity = findBySceneNum(base.getSceneNum());
//        if(sceneProEntity == null){
//            throw new BaseRuntimeException(SceneConstant.FAILURE_CODE_5005, SceneConstant.FAILURE_MSG_5005);
//        }
//
//        StringBuffer dataBuf = new StringBuffer()
//                .append("data").append(File.separator)
//                .append("data").append(sceneProEntity.getNum())
//                .append(File.separator);
//        StringBuffer imagesBuf = new StringBuffer()
//                .append("images").append(File.separator)
//                .append("images").append(sceneProEntity.getNum())
//                .append(File.separator);
//
//        StringBuffer dataBuffer = new StringBuffer(ConstantFilePath.SCENE_PATH).append(dataBuf.toString());
//        StringBuffer imagesBuffer = new StringBuffer(ConstantFilePath.SCENE_PATH).append(imagesBuf.toString());
//
//        String capPath = dataBuffer.toString() + ConstantFileName.TOURLIST_FOLDER;
//        File file1 = new File(capPath);
//        String[] strs = file1.list();
//        //删除screenCap对应的json数据
//        if(strs!=null) {
//            for(int i=0;i<strs.length;++i) {
//                if(strs[i].indexOf(ConstantFileName.SCREEN_CRP_DATAFILE)>-1) {
//                    FileUtils.deleteFile(capPath+File.separator+strs[i]);
//                }
//            }
//        }
//
//        String imgPath = imagesBuffer.toString() + ConstantFileName.TOURLIST_FOLDER;
//
//        String tourListPath = dataBuffer.toString() + ConstantFileName.TOUR_LIST;
//        String tourList = FileUtils.readFile(tourListPath);
//        JSONArray tourJsons = new JSONArray();
//        if(tourList!=null) {
//            tourJsons = JSONArray.parseArray(tourList);
//        }
//        for(int i=0;i<tourJsons.size();++i) {
//            String filePath = imgPath + File.separator +"guide"+i+".jpg";
//            FileUtils.deleteFile(filePath);
//        }
//        FileUtils.deleteFile(tourListPath);
//
//        SceneProEditEntity sceneProEditEntity = sceneProEditMapper.findByProId(sceneProEntity.getId());
//        Map<String, Object> map = new HashMap<>();
//        map.put("screencapLen", 0);
//        map.put("uploadTourList", 1);
//        map.put("version", sceneProEditEntity.getVersion());
//        FileUtils.writeJsonFile(dataBuffer.toString() + "scene.json", map);
//
//        return Result.success();
//    }
//
//    @Override
//    public Result saveTourList(RequestSceneEdit base) throws Exception{
//        if(StringUtils.isEmpty(base.getSceneNum()) || StringUtils.isEmpty(base.getTourList()) ||
//                StringUtils.isEmpty(base.getScreencapLen())){
//            throw new BaseRuntimeException(LoginConstant.FAILURE_CODE_3001, LoginConstant.FAILURE_MSG_3001);
//        }
//
//        SceneProEntity sceneProEntity = findBySceneNum(base.getSceneNum());
//        if(sceneProEntity == null){
//            throw new BaseRuntimeException(SceneConstant.FAILURE_CODE_5005, SceneConstant.FAILURE_MSG_5005);
//        }
//        StringBuffer dataBuf = new StringBuffer()
//                .append("data").append(File.separator)
//                .append("data").append(sceneProEntity.getNum())
//                .append(File.separator);
//
//        StringBuffer dataBuffer = new StringBuffer(ConstantFilePath.SCENE_PATH).append(dataBuf.toString());
//
//        log.info("editScene/saveTourList：生成tourList.json文件");
//        String tourListPath = dataBuffer.toString() + ConstantFileName.TOUR_LIST;
//        FileUtils.writeFile(tourListPath, base.getTourList());
//
//        SceneProEditEntity sceneProEditEntity = sceneProEditMapper.findByProId(sceneProEntity.getId());
//        Map<String, Object> map = new HashMap<>();
//        map.put("screencapLen", String.valueOf(base.getScreencapLen()));
////			map.put("tourList", tourList);
//        map.put("uploadTourList", 1);
//        map.put("version", sceneProEditEntity.getVersion());
//        FileUtils.writeJsonFile(dataBuffer.toString() + "scene.json", map);
//
//        return Result.success();
//    }
//
//    @Override
//    public Result saveSceneInfo(RequestSceneEdit base) throws Exception{
//        if(StringUtils.isEmpty(base.getSceneNum())){
//            throw new BaseRuntimeException(LoginConstant.FAILURE_CODE_3001, LoginConstant.FAILURE_MSG_3001);
//        }
//
//        SceneProEntity sceneProEntity = findBySceneNum(base.getSceneNum());
//        if(sceneProEntity == null){
//            throw new BaseRuntimeException(SceneConstant.FAILURE_CODE_5005, SceneConstant.FAILURE_MSG_5005);
//        }
//
//        StringBuffer dataBuf = new StringBuffer()
//                .append("data").append(File.separator)
//                .append("data").append(sceneProEntity.getNum())
//                .append(File.separator);
//        StringBuffer imagesBuf = new StringBuffer()
//                .append("images").append(File.separator)
//                .append("images").append(sceneProEntity.getNum())
//                .append(File.separator);
//
//        StringBuffer dataBuffer = new StringBuffer(ConstantFilePath.SCENE_PATH).append(dataBuf.toString());
//        StringBuffer imagesBuffer = new StringBuffer(ConstantFilePath.SCENE_PATH).append(imagesBuf.toString());
//
//        int type = Integer.valueOf(base.getSceneType());
//
//        String strsceneInfos = FileUtils.readFile(dataBuffer.toString() + "scene.json");
//        JSONObject scenejson = new JSONObject();
//        if(strsceneInfos!=null) {
//            scenejson = JSONObject.parseObject(strsceneInfos);
//        }
//
//        //上传七牛
//        Map<String,String> map = new HashMap<String,String>();
//
//        SceneProEditEntity sceneProEditEntity = sceneProEditMapper.findByProId(sceneProEntity.getId());
//
//        if(!StringUtils.isEmpty(base.getTourList())){
//            if(scenejson.containsKey("uploadTourList") && scenejson.getIntValue("uploadTourList") == 1){
//                int screencapLen = 0;
//                File file = new File(dataBuffer.toString() + ConstantFileName.TOURLIST_FOLDER);
//                String[] strs = file.list();
//                if(strs!=null) {
//                    for(int i=0;i<strs.length;++i) {
//                        if(strs[i].indexOf(ConstantFileName.SCREEN_CRP_DATAFILE)>-1)
//                        {
//                            ++screencapLen;
//                            map.put(dataBuffer.toString() + ConstantFileName.TOURLIST_FOLDER+File.separator+strs[i],
//                                    "data/data"+base.getSceneNum()+"/tour/"+strs[i]);
//                        }
//                    }
//                }
//                scenejson.put("screencapLen", screencapLen);
////                sceneProEditEntity.setScreencapLen(screencapLen);
//
//                String path = imagesBuffer.toString() + ConstantFileName.TOURLIST_FOLDER;
//                JSONArray tourJsons = JSONArray.parseArray(base.getTourList());
//                for(int i=0;i<tourJsons.size();++i) {
//                    String fileName = path + File.separator +"guide"+i+".jpg";
//                    map.put(fileName,"images/images"+base.getSceneNum()+"/tour/guide"+i+".jpg");
//                }
//
//                scenejson.put("uploadTourList", 0);
//            }
//
//            String tourListPath = dataBuffer.toString() + ConstantFileName.TOUR_LIST;
//            FileUtils.deleteFile(tourListPath);
//            FileUtils.writeFile(tourListPath, base.getTourList());
//            map.put(tourListPath, dataBuffer.toString() + ConstantFileName.TOUR_LIST);
//        }
//        else{
//            if(scenejson.containsKey("uploadTourList") && scenejson.getIntValue("uploadTourList") == 1){
//                scenejson.put("uploadTourList", 0);
//            }
//            scenejson.put("screencapLen", 0);
////            sceneProEditEntity.setScreencapLen(0);
//        }
//
//        //判断scene.json是否有uploadVoiceSrc上传普通版音频
//        if(scenejson.containsKey("uploadVoiceSrc") && scenejson.getIntValue("uploadVoiceSrc") == 1) {
//            String screencapVoiceFileName = "";
//            if(scenejson.containsKey("screencapVoiceFileName")) {
//                screencapVoiceFileName = scenejson.getString("screencapVoiceFileName");
//            }
//            String screencapVoiceSrc = "";
//            if(scenejson.containsKey("screencapVoiceSrc")) {
//                screencapVoiceSrc = scenejson.getString("screencapVoiceSrc");
//            }
//
//            if(screencapVoiceFileName.indexOf(".")>-1) {
//                String fileName = "201810" + screencapVoiceFileName.substring(screencapVoiceFileName.lastIndexOf("."));
//                String path = ConstantFilePath.SCENE_PATH + "voice" + File.separator+"voice"+base.getSceneNum()+File.separator+fileName;
//                map.put(path, "voice/voice"+base.getSceneNum()+"/201810" +screencapVoiceFileName.substring(screencapVoiceFileName.lastIndexOf(".")));
//            }
//            sceneProEditEntity.setScreencapVoiceSrc(screencapVoiceSrc);
//        }
//
//        //判断scene.json是否有uploadVoiceSound上传专业版音频
//        if(scenejson.containsKey("uploadVoiceSound") && scenejson.getIntValue("uploadVoiceSound") == 1){
//            if(!StringUtils.isEmpty(scenejson.getString("screencapVoiceSound"))){
//                map.put(ConstantFilePath.SCENE_PATH + scenejson.getString("screencapVoiceSound"), scenejson.getString("screencapVoiceSound"));
//            }
//            sceneProEditEntity.setScreencapVoiceSound(scenejson.getString("screencapVoiceSound"));
//        }
//
//        if(scenejson.containsKey("uploadVoiceSoundsync") && scenejson.getIntValue("uploadVoiceSoundsync") == 1){
//            if(!StringUtils.isEmpty(scenejson.getString("screencapVoiceSoundsync"))){
//                map.put(ConstantFilePath.SCENE_PATH + scenejson.getString("screencapVoiceSoundsync"), scenejson.getString("screencapVoiceSoundsync"));
//            }
//            sceneProEditEntity.setScreencapVoiceSoundsync(scenejson.getString("screencapVoiceSoundsync"));
//        }
//
//        if(base.getScreencapVoiceType() != null){
//            scenejson.put("screencapVoiceType", base.getScreencapVoiceType());
//            sceneProEditEntity.setScreencapVoiceType(base.getScreencapVoiceType());
//        }
//
//        if(!StringUtils.isEmpty(base.getCapData())){
//            FileUtils.writeFile(dataBuffer.toString() + "capData.json", new String(base.getCapData().getBytes(), "UTF-8"));
//            scenejson.put("capData", dataBuf.toString() + "capData.json");
//        }
//
//        if(!StringUtils.isEmpty(base.getFrameData())){
//            FileUtils.writeFile(dataBuffer.toString() + "frameData.json", new String(base.getFrameData().getBytes(), "UTF-8"));
//            scenejson.put("frameData", dataBuf.toString() + "frameData.json");
//        }
//
//        if(!StringUtils.isEmpty(base.getPlayData())){
//            FileUtils.writeFile(dataBuffer.toString() + "playData.json", new String(base.getPlayData().getBytes(), "UTF-8"));
//            scenejson.put("playData", dataBuf.toString() + "playData.json");
//            sceneProEditEntity.setPlayData(dataBuf.toString() + "playData.json");
//            map.put(dataBuffer.toString() + "playData.json", dataBuf.toString() + "playData.json");
//        }
//
//        if(!StringUtils.isEmpty(base.getScreencapThumb())){
//            FileUtils.writeFile(dataBuffer.toString() + "screencapThumb.json", new String(base.getScreencapThumb().getBytes(), "UTF-8"));
//            scenejson.put("screencapThumb", dataBuf.toString() + "screencapThumb.json");
//            sceneProEditEntity.setScreencapThumb(dataBuf.toString() + "screencapThumb.json");
//            map.put(dataBuffer.toString() + "screencapThumb.json", dataBuf.toString() + "screencapThumb.json");
//        }
//
//        if(!StringUtils.isEmpty(base.getRecordType())){
//            scenejson.put("recordType", base.getRecordType());
//        }
//
//        if(!StringUtils.isEmpty(base.getMapVisi())){
//            scenejson.put("mapVisi", Integer.parseInt(base.getMapVisi()));
//            sceneProEditEntity.setMapVisi(Integer.parseInt(base.getMapVisi()));
//        }
//
//        if(!StringUtils.isEmpty(base.getTourVisi())){
//            scenejson.put("tourVisi", Integer.parseInt(base.getTourVisi()));
//            sceneProEditEntity.setTourVisi(Integer.parseInt(base.getTourVisi()));
//        }
//        if(!StringUtils.isEmpty(base.getVrVisi())){
//            scenejson.put("vrVisi", Integer.parseInt(base.getVrVisi()));
//            sceneProEditEntity.setVrVisi(Integer.parseInt(base.getVrVisi()));
//        }
//
//        if(!StringUtils.isEmpty(base.getRulerVisi())){
//            scenejson.put("rulerVisi", Integer.parseInt(base.getRulerVisi()));
//            sceneProEditEntity.setRulerVisi(Integer.parseInt(base.getRulerVisi()));
//        }
//        if(!StringUtils.isEmpty(base.getCadImgVisi())){
//            scenejson.put("cadImgVisi", Integer.parseInt(base.getCadImgVisi()));
//            sceneProEditEntity.setCadImgVisi(Integer.parseInt(base.getCadImgVisi()));
//        }
//
//        if(!StringUtils.isEmpty(base.getPanoVisi())){
//            scenejson.put("panoVisi", Integer.parseInt(base.getPanoVisi()));
//            sceneProEditEntity.setPanoVisi(Integer.parseInt(base.getPanoVisi()));
//        }
//
//        if(!StringUtils.isEmpty(base.getM2dVisi())){
//            scenejson.put("m2dVisi", Integer.parseInt(base.getM2dVisi()));
//            sceneProEditEntity.setM2dVisi(Integer.parseInt(base.getM2dVisi()));
//        }
//        if(!StringUtils.isEmpty(base.getM3dVisi())){
//            scenejson.put("m3dVisi", Integer.parseInt(base.getM3dVisi()));
//            sceneProEditEntity.setM3dVisi(Integer.parseInt(base.getM3dVisi()));
//        }
//        if(!StringUtils.isEmpty(base.getMeasureVisi())){
//            scenejson.put("measureVisi", Integer.parseInt(base.getMeasureVisi()));
//            sceneProEditEntity.setMeasureVisi(Integer.parseInt(base.getMeasureVisi()));
//        }
//
//        if(scenejson.containsKey("uploadFloorPlanPng") && scenejson.getIntValue("uploadFloorPlanPng") == 1){
//            String floorPlanPng = scenejson.getString("floorPlanPng");
//            scenejson.put("uploadFloorPlanPng", 0);
//            sceneProEditEntity.setFloorPlanPng(floorPlanPng + "?t=" + System.currentTimeMillis());
//            map.put(ConstantFilePath.SCENE_PATH+floorPlanPng, floorPlanPng);
//        }
//
//        if(StringUtil.isNotEmpty(base.getEntry())) {
//            //上传七牛
//            map.put(imagesBuffer.toString() + "thumbBigImg.jpg", imagesBuf.toString() + "thumbBigImg.jpg");
//            map.put(imagesBuffer.toString() + "thumbFishBigImg.jpg",imagesBuf.toString() + "thumbFishBigImg.jpg");
//            map.put(imagesBuffer.toString() + "thumbSmallImg.jpg", imagesBuf.toString() + "thumbSmallImg.jpg");
//            map.put(imagesBuffer.toString() + "smallPic.jpg", imagesBuf.toString() + "smallPic.jpg");
//            sceneProEditEntity.setEntry(base.getEntry());
//
//            scenejson.put("entry", base.getEntry());
//
//            if(scenejson.containsKey("thumbImg"))
//            {
//                sceneProEditEntity.setThumbStatus(scenejson.getIntValue("thumbImg"));
//            }
//
//            if(sceneProEditEntity.getThumbStatus() == 1)
//            {
//                sceneProEntity.setThumb(ConstantUrl.PREFIX_ALI + imagesBuf.toString() + "thumbSmallImg.jpg");
//            }
//
//        }
//
//        if(base.getHotFlag() != null && "1".equals(base.getHotFlag())) {
//            String str = FileUtils.readFile(dataBuffer.toString() + "hot.json");
//            JSONArray jsonhots = new JSONArray();
//
//            if(str != null&&!str.trim().equals("")) {
//                jsonhots = JSONArray.parseArray(str);
//            }
//            String hotsids = "";
//            for(int i=0;i<jsonhots.size();++i) {
//                JSONObject ele = jsonhots.getJSONObject(i);
//                String index = ele.getString("sid");
//                hotsids+=index+",";
//                if(ele.containsKey("media"))
//                {
//                    String fileType = ele.getString("media");
//                    if(fileType.contains("photo"))
//                    {
//                        map.put(imagesBuffer.toString() + "hot"+index+".jpg",
//                                imagesBuf.toString() + "hot"+index+".jpg");
//                    }
//                    if(fileType.contains("audio"))
//                    {
//                        map.put(imagesBuffer.toString() + "hot"+index+".mp3",
//                                imagesBuf.toString() + "hot"+index+".mp3");
//                    }
//                    if(fileType.contains("video"))
//                    {
//                        map.put(imagesBuffer.toString() + "hot"+index+".mp4",
//                                imagesBuf.toString() + "hot"+index+".mp4");
//                        map.put(imagesBuffer.toString() + "hot"+index+"-cut.jpg",
//                                imagesBuf.toString() + "hot"+index+"-cut.jpg");
//                    }
//                }
//
//            }
////            File hotdic = new File(ConstantFilePath.SCENE_PATH+"images"+File.separator+"images"+base.getSceneNum());
////            if(!hotdic.exists()) {
////                hotdic.mkdirs();
////            }
////            String[] fileNames = hotdic.list();
////            for(int i=0;i<fileNames.length;++i) {
////                if(fileNames[i].contains("hot")&&!hotsids.contains(fileNames[i].substring(0, fileNames[i].lastIndexOf(".")).replace("hot", ""))) {
////                    FileUtils.deleteFile(imagesBuffer.toString() + fileNames[i]);
////                }
////            }
//            map.put(dataBuffer.toString() + "hot.json",dataBuf.toString() + "hot.json");
//            //sceneService.updateHots(sceneNum,hotsids);
//            sceneProEditEntity.setHotsIds(hotsids);
//        }
//
//        if(StringUtil.isNotEmpty(base.getFloorLogoType())) {
//            sceneProEditEntity.setFloorLogo(base.getFloorLogoType());
//            scenejson.put("floorLogo", base.getFloorLogoType());
//            if(base.getFloorLogoType().trim().equals("1")||base.getFloorLogoType().trim().equals("user")) {
//                map.put(imagesBuffer.toString() + "floorLogoImg.png", imagesBuf.toString() + "floorLogoImg.png");
//            }
//        }
//
//        if(StringUtil.isNotEmpty(base.getFloorLogoSize())) {
//            sceneProEditEntity.setFloorLogoSize(Integer.valueOf(base.getFloorLogoSize()));
//            scenejson.put("floorLogoSize", base.getFloorLogoSize());
//        }
//
//        if(base.getBgMusic() != null) {
//            sceneProEditEntity.setBgMusic(base.getBgMusic());
//            scenejson.put("bgMusic", base.getBgMusic());
//        }
//
//        if(base.getSceneName() != null) {
//            sceneProEntity.setSceneName(base.getSceneName());
//            scenejson.put("sceneName", base.getSceneName());
//        }
//
//        if(StringUtil.isNotEmpty(base.getSceneType())) {
//            sceneProEntity.setSceneType(type);
//            scenejson.put("sceneType", base.getSceneType());
//        }
//
//        if(base.getSceneDec() != null) {
//            sceneProEntity.setSceneDec(base.getSceneDec());
//            scenejson.put("sceneDec", base.getSceneDec());
//        }
//
////        if(StringUtil.isNotEmpty(base.getSceneIndex())) {
////            sceneProEntity.setStyle(Integer.valueOf(base.getSceneIndex()));
////            scenejson.put("sceneIndex", base.getSceneIndex());
////        }
//
//        if(base.getSceneKey() != null) {
//            sceneProEditEntity.setSceneKey(base.getSceneKey());
//            scenejson.put("sceneKey", base.getSceneKey());
//        }
//
//        if(!scenejson.containsKey("version")) {
//            scenejson.put("version", 0);
//        }
//        scenejson.put("version", scenejson.getIntValue("version")+1);
//        map.put(dataBuffer.toString() + "scene.json", dataBuf.toString() + "scene.json");
//
//        sceneProEditEntity.setCadInfo(scenejson.getString("cadInfo"));
//        sceneProEditMapper.updateByPrimaryKeySelective(sceneProEditEntity);
//
//        //重建上传资源到oss
//        if(sceneProEditEntity.getFloorEditVer() != sceneProEditEntity.getFloorPublishVer()){
//            long start = System.currentTimeMillis();
//            log.info("开始整合画墙重算资源：" + start);
//
//            String path = sceneProEntity.getDataSource();
//            if(path != null && !"".equals(path) && path.startsWith("http")){
//                path = ConstantFilePath.BUILD_MODEL_PATH + path.split("/")[path.split("/").length - 2];
//            }
//            path = path + "_edit";
//            String projectNum = base.getSceneNum();
//
//            //读取upload文件，检验需要上传的文件是否存在
//            String uploadData = FileUtils.readFile(path + File.separator + "results" +File.separator+"upload.json");
//            JSONObject uploadJson = null;
//            JSONArray array = null;
//            if(uploadData!=null) {
//                uploadJson = JSONObject.parseObject(uploadData);
//                array = uploadJson.getJSONArray("upload");
//            }
//            if(array == null){
//                throw new Exception("upload.json数据出错");
//            }
//            JSONObject fileJson = null;
//            String fileName = "";
//            for(int i = 0, len = array.size(); i < len; i++){
//                fileJson = array.getJSONObject(i);
//                fileName = fileJson.getString("file");
//                //文件不存在抛出异常
//                if(!new File(path + File.separator + "results" +File.separator + fileName).exists()){
//                    throw new Exception(path + File.separator + "results" +File.separator + fileName+"文件不存在");
//                }
//
//                //tex文件夹
//                if(fileJson.getIntValue("clazz") == 2 && !fileJson.containsKey("pack-file")){
//                    map.put(path + File.separator + "results" +File.separator+ fileName,"images/images"+
//                            projectNum+"/"+ConstantFileName.modelUUID+"_50k_texture_jpg_high1/"+fileName.replace("tex/", ""));
//                }
//            }
//
//            map.put(path + File.separator + "results" +File.separator+ConstantFileName.modelUUID+"_50k.dam.lzma", "images/images"+projectNum+"/"+ConstantFileName.modelUUID+"_50k.dam.lzma");
//            map.put(path + File.separator + "results" +File.separator+ConstantFileName.modelUUID+"_50k.dam", "images/images"+projectNum+"/"+ConstantFileName.modelUUID+"_50k.dam");
////        map.put(path + File.separator + "results" +File.separator+"modeldata.js","data/"+projectNum+"/"+"modeldata.js");
//
////				map.put(path + File.separator + "results" +File.separator+"vision.modeldata", "images/images"+projectNum+"/"+"vision.modeldata");
////				if(new File(path + File.separator + "results" +File.separator+"vision2.modeldata").exists()){
////					map.put(path + File.separator + "results" +File.separator+"vision2.modeldata", "images/images"+projectNum+"/"+"vision2.modeldata");
////				}
////				List<String> list1 = FileUtil.readfileNamesForDirectory(path + File.separator + "results" +File.separator+"tex",".jpg");
////				for(int i=0;i<list1.size();++i)
////				{
////					String imgName = list1.get(i);
////					map.put(path + File.separator + "results" +File.separator+"tex"+File.separator+imgName,"images/images"+projectNum+"/"+Constant.modelUUID+"_50k_texture_jpg_high1/"+imgName);
////				}
//
//            File file = new File(ConstantFilePath.SCENE_PATH+"data"+File.separator+"data"+projectNum);
//            if(!file.exists())
//            {
//                file.mkdir();
//            }
//            log.info("计算大场景：开始上传大场景文件到阿里——"+projectNum);
//            //上传修改后的本地的缩略图
//            map.put(dataBuffer.toString() + "floor.json", dataBuf.toString() + "floor.json");
//
//            //发布重新建模场景，将floorPublishVer设为floorEditVer的值
//            sceneProEditEntity.setFloorPublishVer(sceneProEditEntity.getFloorEditVer());
//
//            scenejson.put("floorEditVer", sceneProEditEntity.getFloorEditVer());
//            scenejson.put("floorPublishVer", sceneProEditEntity.getFloorEditVer());
//
//            log.info("花费时间：" + (System.currentTimeMillis() - start));
//        }
//        log.info("scene.json路径：" + dataBuffer.toString() + "scene.json");
//        FileUtils.writeFile(dataBuffer.toString() + "scene.json", scenejson.toString());
//
//        if(map.size()>0) {
//            UploadToOssUtil.uploadMulFiles(map);
//        }
//        update(sceneProEntity);
//        sceneProEditMapper.updateByPrimaryKeySelective(sceneProEditEntity);
//
//        return Result.success();
//    }
//
//    @Override
//    @SystemServiceLog(description = "上传场景的热点媒体文件")
//    public Result uploadHotMedia(String sceneNum, MultipartFile file, String sid) throws Exception {
//        if(StringUtils.isEmpty(sceneNum)){
//            throw new BaseRuntimeException(LoginConstant.FAILURE_CODE_3001, LoginConstant.FAILURE_MSG_3001);
//        }
//
//        SceneProEntity sceneProEntity = findBySceneNum(sceneNum);
//        if(sceneProEntity == null){
//            throw new BaseRuntimeException(SceneConstant.FAILURE_CODE_5005, SceneConstant.FAILURE_MSG_5005);
//        }
//
//        String fileName = "hot" + sid + ".mp4";
//        if (!file.isEmpty()){
//
//            String path = ConstantFilePath.SCENE_PATH + "images" + File.separator + "images" + sceneNum;
//            File targetFile = new File(path);
//            if (!targetFile.exists()){
//                targetFile.mkdirs();
//            }
//
//            targetFile = new File(path + File.separator + fileName);
//            if (targetFile.exists()){
//                FileUtils.deleteFile(path + File.separator + fileName);
//            }
//            file.transferTo(targetFile);
//
//            if(targetFile.exists()){
//                FileUtils.executeCodecs(path + File.separator + fileName, path, "hot" + sid + "-cut");
//            }
//        }
//
//        return Result.success(fileName);
//    }
//
//    @Override
//    @SystemServiceLog(description = "保存场景热点")
//    public Result saveHot(RequestSceneEdit base) throws Exception {
//        if(StringUtils.isEmpty(base.getType())){
//            throw new BaseRuntimeException(LoginConstant.FAILURE_CODE_3001, LoginConstant.FAILURE_MSG_3001);
//        }
//
//        String sid = base.getSid();
//
//        SceneProEntity sceneProEntity = findBySceneNum(base.getSceneNum());
//        if (sceneProEntity == null ) {
//            return Result.failure(SceneConstant.FAILURE_CODE_5005, SceneConstant.FAILURE_MSG_5005);
//        }
//
//        JSONObject jsonhot = JSONObject.parseObject(base.getHotData());
//
//        StringBuffer dataBuf = new StringBuffer()
//                .append("data").append(File.separator)
//                .append("data").append(sceneProEntity.getNum())
//                .append(File.separator);
//        StringBuffer imagesBuf = new StringBuffer()
//                .append("images").append(File.separator)
//                .append("images").append(sceneProEntity.getNum())
//                .append(File.separator);
//
//        StringBuffer imagesBuffer = new StringBuffer(ConstantFilePath.SCENE_PATH).append(imagesBuf.toString());
//        StringBuffer dataBuffer = new StringBuffer(ConstantFilePath.SCENE_PATH).append(dataBuf.toString());
//
//        String str = FileUtils.readFile(dataBuffer.toString() + "hot.json");
//        JSONArray jsonhots = null;
//        if (StringUtils.isNotEmpty(str)) {
//            jsonhots = JSONArray.parseArray(str);
//        }else {
//            File file = new File(dataBuffer.toString() + "hot.json");
//            if(!file.getParentFile().exists()){
//                file.getParentFile().mkdirs();
//            }
//            if(!file.exists()){
//                file.createNewFile();
//            }
//            jsonhots = new JSONArray();
//        }
//
//        //添加或者修改
//        if("1".equals(base.getType())){
//            sid = jsonhot.getString("sid");
//            if(StringUtil.isEmpty(sid)){
//                throw new BaseRuntimeException(SceneConstant.FAILURE_CODE_5012, SceneConstant.FAILURE_MSG_5012);
//            }
//            jsonhots.add(jsonhot);
//        }
//        else if("0".equals(base.getType())){
//            sid = jsonhot.getString("sid");
//            if(StringUtil.isEmpty(sid)){
//                throw new BaseRuntimeException(SceneConstant.FAILURE_CODE_5012, SceneConstant.FAILURE_MSG_5012);
//            }
//        }
//        else if("-1".equals(base.getType())){
//            if(StringUtil.isEmpty(sid)){
//                throw new BaseRuntimeException(SceneConstant.FAILURE_CODE_5012, SceneConstant.FAILURE_MSG_5012);
//            }
//        }
//
//        for(int i=0;i<jsonhots.size();++i){
//            JSONObject ele = jsonhots.getJSONObject(i);
//            if(ele.getString("sid").equals(sid)){
//                if("-1".equals(base.getType())){
//                    jsonhots.remove(i);
//                    if(ele.containsKey("media")){
//                        String fileType = ele.getString("media");
//                        if(fileType.contains("photo"))
//                        {
//                            FileUtils.deleteFile(imagesBuffer.toString() + "hot"+sid+".jpg");
//                        }
//                        if(fileType.contains("audio"))
//                        {
//                            FileUtils.deleteFile(imagesBuffer.toString() + "hot"+sid+".mp3");
//                        }
//                        if(fileType.contains("video"))
//                        {
//                            FileUtils.deleteFile(imagesBuffer.toString() + "hot"+sid+".mp4");
//                        }
//                    }
//                }
//                else if("0".equals(base.getType())){
//                    jsonhots.set(i, jsonhot);
//                }
//                break;
//            }
//        }
//
//        FileUtils.deleteFile(dataBuffer.toString() + "hot.json");
//        File dataPath = new File(dataBuffer.toString());
//        if(!dataPath.exists()){
//            dataPath.mkdirs();
//        }
//        FileUtils.writeFile(dataBuffer.toString() + "hot.json", jsonhots.toString().replace("{\"$ref\":\"$[0]\"}", ""));
//
//        String strsceneInfos = FileUtils.readFile(dataBuffer.toString() + "scene.json");
//        JSONObject scenejson = new JSONObject();
//        if(strsceneInfos!=null){
//            scenejson = JSONObject.parseObject(strsceneInfos);
//        }
//        if(jsonhots.size()>0){
//            scenejson.put("hots", 1);
//        }
//        else{
//            scenejson.put("hots", 0);
//        }
//
//        if(!StringUtils.isEmpty(base.getCapData())){
//            FileUtils.writeFile(dataBuffer.toString() + "capData.json", new String(base.getCapData().getBytes(), "UTF-8"));
//            scenejson.put("capData", dataBuf.toString() + "capData.json");
//        }
//
//        if(!StringUtils.isEmpty(base.getFrameData())){
//            FileUtils.writeFile(dataBuffer.toString() + "frameData.json", new String(base.getFrameData().getBytes(), "UTF-8"));
//            scenejson.put("frameData", dataBuf.toString() + "frameData.json");
//        }
//
//        if(!StringUtils.isEmpty(base.getPlayData())){
//            FileUtils.writeFile(dataBuffer.toString() + "playData.json", new String(base.getPlayData().getBytes(), "UTF-8"));
//            scenejson.put("playData", dataBuf.toString() + "playData.json");
//        }
//
//        if(!StringUtils.isEmpty(base.getScreencapThumb())){
//            FileUtils.writeFile(dataBuffer.toString() + "screencapThumb.json", new String(base.getScreencapThumb().getBytes(), "UTF-8"));
//            scenejson.put("screencapThumb", dataBuf.toString() + "screencapThumb.json");
//        }
//
//        FileUtils.writeFile(dataBuffer.toString() + "scene.json", scenejson.toString());
//        return Result.success();
//    }
//
//    @Override
//    @SystemServiceLog(description = "保存场景热点")
//    public Result saveScreencapData(RequestSceneEdit base) throws Exception {
//        if(StringUtils.isEmpty(base.getSceneNum())){
//            throw new BaseRuntimeException(LoginConstant.FAILURE_CODE_3001, LoginConstant.FAILURE_MSG_3001);
//        }
//
//        SceneProEntity sceneProEntity = findBySceneNum(base.getSceneNum());
//        if(sceneProEntity == null){
//            throw new BaseRuntimeException(SceneConstant.FAILURE_CODE_5005, SceneConstant.FAILURE_MSG_5005);
//        }
//
//        StringBuffer dataBuf = new StringBuffer()
//                .append("data").append(File.separator)
//                .append("data").append(sceneProEntity.getNum())
//                .append(File.separator);
//        StringBuffer imagesBuf = new StringBuffer()
//                .append("images").append(File.separator)
//                .append("images").append(sceneProEntity.getNum())
//                .append(File.separator);
//
//        StringBuffer dataBuffer = new StringBuffer(ConstantFilePath.SCENE_PATH).append(dataBuf.toString());
//        StringBuffer imagesBuffer = new StringBuffer(ConstantFilePath.SCENE_PATH).append(imagesBuf.toString());
//
//        String strsceneInfos = FileUtils.readFile(dataBuffer.toString() + "scene.json");
//        JSONObject scenejson = new JSONObject();
//        if(strsceneInfos!=null) {
//            scenejson = JSONObject.parseObject(strsceneInfos);
//        }
//
//        if(base.getScreencapVoiceType() != null){
//            scenejson.put("screencapVoiceType", base.getScreencapVoiceType());
//        }
//
//        if(!StringUtils.isEmpty(base.getCapData())){
//            FileUtils.writeFile(dataBuffer.toString() + "capData.json", new String(base.getCapData().getBytes(), "UTF-8"));
//            scenejson.put("capData", dataBuf.toString() + "capData.json");
//        }
//
//        if(!StringUtils.isEmpty(base.getFrameData())){
//            FileUtils.writeFile(dataBuffer.toString() + "frameData.json", new String(base.getFrameData().getBytes(), "UTF-8"));
//            scenejson.put("frameData", dataBuf.toString() + "frameData.json");
//        }
//
//        if(!StringUtils.isEmpty(base.getPlayData())){
//            FileUtils.writeFile(dataBuffer.toString() + "playData.json", new String(base.getPlayData().getBytes(), "UTF-8"));
//            scenejson.put("playData", dataBuf.toString() + "playData.json");
//        }
//
//        if(!StringUtils.isEmpty(base.getScreencapThumb())){
//            FileUtils.writeFile(dataBuffer.toString() + "screencapThumb.json", new String(base.getScreencapThumb().getBytes(), "UTF-8"));
//            scenejson.put("screencapThumb", dataBuf.toString() + "screencapThumb.json");
//        }
//
//        if(!StringUtils.isEmpty(base.getRecordType())){
//            scenejson.put("recordType", base.getRecordType());
//        }
//
//        FileUtils.writeFile(dataBuffer.toString() + "scene.json", scenejson.toString());
//        return Result.success();
//    }
//
//    @Override
//    @SystemServiceLog(description = "漫游可行")
//    public Result saveLinkPano(RequestSceneEdit base) throws Exception {
//        if(StringUtils.isEmpty(base.getData()) || StringUtils.isEmpty(base.getSceneNum())){
//            throw new BaseRuntimeException(LoginConstant.FAILURE_CODE_3001, LoginConstant.FAILURE_MSG_3001);
//        }
//
//        SceneProEntity sceneProEntity = findBySceneNum(base.getSceneNum());
//        if (sceneProEntity == null ) {
//            return Result.failure(SceneConstant.FAILURE_CODE_5005, SceneConstant.FAILURE_MSG_5005);
//        }
//
//        JSONArray inputData = JSONObject.parseArray(base.getData());
//
//        StringBuffer dataBuf = new StringBuffer()
//                .append("data").append(File.separator)
//                .append("data").append(sceneProEntity.getNum())
//                .append(File.separator);
//        StringBuffer imagesBuf = new StringBuffer()
//                .append("images").append(File.separator)
//                .append("images").append(sceneProEntity.getNum())
//                .append(File.separator);
//
//        StringBuffer dataBuffer = new StringBuffer(ConstantFilePath.SCENE_PATH).append(dataBuf.toString());
//
//        File directory = new File(dataBuffer.toString());
//        if (!directory.exists()) {
//            directory.mkdirs();
//        }
//
//        JSONArray inputdata =  JSONArray.parseArray(base.getData());
//
//        String modeldataUrl = ConstantUrl.PREFIX_ALI + imagesBuf.toString() + "vision.modeldata";
//        FileUtils.downLoadFromUrl(modeldataUrl, "vision.modeldata", dataBuffer.toString());
//        File file = new File(dataBuffer.toString() + "vision.modeldata");
//        if(!file.exists()) {
//            return Result.failure(SceneConstant.FAILURE_CODE_5012, SceneConstant.FAILURE_MSG_5012);
//        }
//        ConvertUtils.convertVisionModelDataToTxt(dataBuffer.toString() + "vision.modeldata", dataBuffer.toString() + "vision.json");
//
//        String str = FileUtils.readFile(dataBuffer.toString() + "vision.json");
//        JSONObject json = JSONObject.parseObject(str);
//        JSONArray panos = json.getJSONArray("sweepLocations");
//        for (int i = 0; i < panos.size(); ++i) {
//            JSONObject pano = panos.getJSONObject(i);
//            for (int j = 0; j < inputData.size(); ++j) {
//                JSONObject jo = inputData.getJSONObject(j);
//                String currentPanoId = jo.getString("panoID");
//                JSONArray visibles = jo.getJSONArray("visibles");
//                JSONArray visibles3 = jo.getJSONArray("visibles3");
//                if (pano.getString("uuid").equals(currentPanoId)) {
//                    pano.put("visibles", visibles);
//                    pano.put("visibles3", visibles3);
//                }
//            }
//        }
//        FileUtils.deleteFile(dataBuffer.toString() + "vision.json");
//        FileUtils.deleteFile(dataBuffer.toString() + "vision.modeldata");
//        FileUtils.writeFile(dataBuffer.toString() + "vision.json", json.toString());
//        ConvertUtils.convertTxtToVisionModelData(dataBuffer.toString() + "vision.json", dataBuffer.toString() + "vision.modeldata");
////            QiniuUpload.setFileToBucket(dataBuffer.toString() + "vision.modeldata", imagesBuf.toString() + "vision.modeldata");
//        UploadToOssUtil.upload(dataBuffer.toString() + "vision.modeldata", imagesBuf.toString() + "vision.modeldata");
//        return Result.success();
//    }
//
//    @Override
//    @SystemServiceLog(description = "保存热点可见性的数据")
//    public Result saveHotVisible(RequestSceneEdit base) throws Exception {
//        if(StringUtils.isEmpty(base.getData()) || StringUtils.isEmpty(base.getSceneNum())){
//            throw new BaseRuntimeException(LoginConstant.FAILURE_CODE_3001, LoginConstant.FAILURE_MSG_3001);
//        }
//
//        SceneProEntity sceneProEntity = findBySceneNum(base.getSceneNum());
//        if (sceneProEntity == null ) {
//            return Result.failure(SceneConstant.FAILURE_CODE_5005, SceneConstant.FAILURE_MSG_5005);
//        }
//
//        JSONArray visiblePanos = JSONArray.parseArray(base.getData());
//
//        StringBuffer dataBuf = new StringBuffer()
//                .append("data").append(File.separator)
//                .append("data").append(sceneProEntity.getNum())
//                .append(File.separator);
//        StringBuffer imagesBuf = new StringBuffer()
//                .append("images").append(File.separator)
//                .append("images").append(sceneProEntity.getNum())
//                .append(File.separator);
//
//        StringBuffer imagesBuffer = new StringBuffer(ConstantFilePath.SCENE_PATH).append(imagesBuf.toString());
//        StringBuffer dataBuffer = new StringBuffer(ConstantFilePath.SCENE_PATH).append(dataBuf.toString());
//
//        File file = new File(dataBuffer.toString() + "hot.json");
//        if (!file.exists()) {
//            throw new BaseRuntimeException(LoginConstant.FAILURE_CODE_3018, LoginConstant.FAILURE_MSG_3018);
//        }
//
//        String str = FileUtils.readFile(dataBuffer.toString() + "hot.json");
//        JSONArray hots = JSONArray.parseArray(str);
//        for (int i = 0; i < hots.size(); ++i) {
//            JSONObject hot = hots.getJSONObject(i);
//            for (int j = 0; j < visiblePanos.size(); ++j) {
//                if (hot.getString("sid").equals(((JSONObject) visiblePanos.get(j)).getString("sid"))) {
//                    hot.put("visiblePanos", ((JSONObject) visiblePanos.get(j)).getJSONArray("value"));
//                }
//            }
//        }
//        SceneProEditEntity sceneProEditEntity = sceneProEditMapper.findByProId(sceneProEntity.getId());
//        sceneProEditEntity.setVersion(sceneProEditEntity.getVersion() + 1);
//        sceneProEditMapper.updateByPrimaryKeySelective(sceneProEditEntity);
//
//        FileUtils.deleteFile(dataBuffer.toString() + "hot.json");
//        FileUtils.writeFile(dataBuffer.toString() + "hot.json", hots.toString());
//        return Result.success();
//    }
//
//    @Override
//    public Result uploadShareLogo(RequestSceneEdit base, MultipartFile file) throws Exception {
//        if(file == null || StringUtils.isEmpty(base.getSceneNum())){
//            throw new BaseRuntimeException(LoginConstant.FAILURE_CODE_3001, LoginConstant.FAILURE_MSG_3001);
//        }
//
//        SceneProEntity sceneProEntity = findBySceneNum(base.getSceneNum());
//        if (sceneProEntity == null ) {
//            return Result.failure(SceneConstant.FAILURE_CODE_5005, SceneConstant.FAILURE_MSG_5005);
//        }
//
//        StringBuffer dataBuf = new StringBuffer()
//                .append("data").append(File.separator)
//                .append("data").append(sceneProEntity.getNum())
//                .append(File.separator);
//        StringBuffer imagesBuf = new StringBuffer()
//                .append("images").append(File.separator)
//                .append("images").append(sceneProEntity.getNum())
//                .append(File.separator);
//
//        StringBuffer imagesBuffer = new StringBuffer(ConstantFilePath.SCENE_PATH).append(imagesBuf.toString());
//        StringBuffer dataBuffer = new StringBuffer(ConstantFilePath.SCENE_PATH).append(dataBuf.toString());
//
//        String fileName = "";
//        if (!file.isEmpty()&&file.getSize() > 0) {
//            //文件上传的位置可以自定义
//            System.out.println("上传分享的logo");
//            String path = imagesBuffer.toString();
//            File targetFile = new File(path);
//            if (!targetFile.exists()) {
//                targetFile.mkdirs();
//            }
//            fileName = file.getOriginalFilename();
//            targetFile = new File(path + fileName);
//            int count = 1;
//            // 保存
//            synchronized(this)
//            {
//                file.transferTo(targetFile);
//            }
//
//            SceneProEditEntity sceneProEditEntity = sceneProEditMapper.findByProId(sceneProEntity.getId());
//
//            Map<String, Object> map = new HashMap<>();
//            map.put("shareLogo", imagesBuf.toString() + fileName);
//            map.put("version", sceneProEditEntity.getVersion()+1);
//            FileUtils.writeJsonFile(dataBuffer.toString() + "scene.json", map);
//
//            sceneProEditEntity.setShareLogo(imagesBuf.toString() + fileName);
//            sceneProEditEntity.setVersion(sceneProEditEntity.getVersion()+1);
//            sceneProEditMapper.updateByPrimaryKeySelective(sceneProEditEntity);
//            MatrixToImageWriterUtil.createQRCode(ConstantUrl.PRO_SCENE_URL + sceneProEntity.getNum(), ConstantFilePath.BASE_PATH + File.separator + "sceneQRcode/"+sceneProEntity.getNum()+".png", path + File.separator + fileName);
//            MatrixToImageWriterUtil.createQRCode(ConstantUrl.PRO_SCENE_URL + sceneProEntity.getNum() + "&lang=en", ConstantFilePath.BASE_PATH + File.separator + "sceneQRcode/"+sceneProEntity.getNum()+"_en.png", path + File.separator + fileName);
//        }
//        return Result.success(imagesBuf.toString() + fileName);
//    }
//
//    @Override
//    public Result uploadPic(String sceneNum, String folderName, MultipartFile file) throws Exception{
//        if(StringUtils.isEmpty(sceneNum)){
//            throw new BaseRuntimeException(LoginConstant.FAILURE_CODE_3001, LoginConstant.FAILURE_MSG_3001);
//        }
//
//        SceneProEntity sceneProEntity = sceneProMapper.findByNum(sceneNum);
//        if(sceneProEntity == null){
//            throw new BaseRuntimeException(SceneConstant.FAILURE_CODE_5005, SceneConstant.FAILURE_MSG_5005);
//        }
//
//        if (file.isEmpty() && file.getSize() <= 0) {
//            throw new BaseRuntimeException(SceneConstant.FAILURE_CODE_5012, SceneConstant.FAILURE_MSG_5012);
//        }
//
//        //文件上传的位置可以自定义
//        String path = ConstantFilePath.SCENE_PATH+"images"+File.separator+"images"+sceneNum;
//        if(StringUtil.isNotEmpty(folderName)) {
//            path = path+File.separator + folderName;
//        }
//        File targetFile = new File(path);
//        if (!targetFile.exists()) {
//            targetFile.mkdirs();
//        }
//        String fileName = file.getOriginalFilename();
//        targetFile = new File(path + File.separator + fileName);
//        // 保存
//        synchronized(this)
//        {
//            if(targetFile.exists())
//            {
//                FileUtils.deleteFile(path + File.separator + fileName);
//            }
//            file.transferTo(targetFile);
//        }
//
//        return Result.success(targetFile.getName());
//    }
//
//    @Override
//    public Result uploadFloorplanPng(String sceneNum, MultipartFile file, String cadInfo) throws Exception{
//        if(StringUtils.isEmpty(sceneNum)){
//            throw new BaseRuntimeException(LoginConstant.FAILURE_CODE_3001, LoginConstant.FAILURE_MSG_3001);
//        }
//
//        SceneProEntity sceneProEntity = sceneProMapper.findByNum(sceneNum);
//        if(sceneProEntity == null){
//            throw new BaseRuntimeException(SceneConstant.FAILURE_CODE_5005, SceneConstant.FAILURE_MSG_5005);
//        }
//
//        if (file.isEmpty() && file.getSize() <= 0) {
//            throw new BaseRuntimeException(SceneConstant.FAILURE_CODE_5012, SceneConstant.FAILURE_MSG_5012);
//        }
//
//        StringBuffer dataBuf = new StringBuffer()
//                .append("data").append(File.separator)
//                .append("data").append(sceneProEntity.getNum())
//                .append(File.separator);
//        StringBuffer imagesBuf = new StringBuffer()
//                .append("images").append(File.separator)
//                .append("images").append(sceneProEntity.getNum())
//                .append(File.separator);
//
//        StringBuffer imagesBuffer = new StringBuffer(ConstantFilePath.SCENE_PATH).append(imagesBuf.toString());
//        StringBuffer dataBuffer = new StringBuffer(ConstantFilePath.SCENE_PATH).append(dataBuf.toString());
//
//
//        //文件上传的位置可以自定义
//        String path = ConstantFilePath.SCENE_PATH+"images"+File.separator+"images"+sceneNum;
//        File targetFile = new File(path);
//        if (!targetFile.exists()) {
//            targetFile.mkdirs();
//        }
//        String fileName = "floorplan.png";
//        targetFile = new File(path + File.separator + fileName);
//        // 保存
//        synchronized(this)
//        {
//            if(targetFile.exists())
//            {
//                FileUtils.deleteFile(path + File.separator + fileName);
//            }
//            file.transferTo(targetFile);
//        }
//
//        SceneProEditEntity sceneProEditEntity = sceneProEditMapper.findByProId(sceneProEntity.getId());
//
//        Map<String, Object> map = new HashMap<>();
//        map.put("floorPlanPng", "images"+File.separator+"images"+sceneNum + File.separator + fileName);
//        map.put("uploadFloorPlanPng", 1);
//        map.put("version", sceneProEditEntity.getVersion()+1);
//
//        if(StringUtil.isNotEmpty(cadInfo)){
//            map.put("cadInfo", cadInfo);
//        }
//        FileUtils.writeJsonFile(dataBuffer.toString() + "scene.json", map);
//
//        return Result.success("images"+File.separator+"images"+sceneNum + File.separator + fileName);
//    }
//
//    @Override
//    public int updateTime(String sceneNum, Long space, int payStatus, String videos) {
//        return sceneProMapper.updateTime(sceneNum, space, payStatus, videos);
//    }
//
//    @Override
//    public ResponseScene findLatestOneByUserId(Long userId) {
//        return sceneProMapper.findLatestOneByUserId(userId);
//    }
//
//    @Override
//    public void updateUserIdByCameraId(Long userId, Long cameraId) {
//        sceneProMapper.updateUserIdByCameraId(userId, cameraId);
//    }
//
//    @Override
//    public int updateRecStatus(String unicode) {
//        return sceneProMapper.updateRecStatus(unicode);
//    }
//
//    @Override
//    public SceneProEntity findByFileId(String fileId) {
//        return sceneProMapper.findByFileId(fileId);
//    }
//
//    @Override
//    public List<SceneProEntity> findTempScenes() throws Exception {
//        return sceneProMapper.findTempScenes();
//    }
//
//    public static void main(String[] args) {
//            JSONObject.parseObject("{\"mode\":0,\"pano\":\"18\",\"lon\":470.4923612080511,\"camera\":{\"quaternion\":[-0.0099,0.9825,0.0545,0.1776],\"zoom\":-1},\"lat\":-6.350955731247092}");
//    }


}
