|
@@ -4,18 +4,21 @@ import com.alibaba.fastjson.JSONObject;
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
import com.fdkankan.base.config.FileRouteConfig;
|
|
import com.fdkankan.base.config.FileRouteConfig;
|
|
import com.fdkankan.base.constant.CameraConstant;
|
|
import com.fdkankan.base.constant.CameraConstant;
|
|
-import com.fdkankan.base.constant.LoginConstant;
|
|
|
|
import com.fdkankan.base.constant.SceneConstant;
|
|
import com.fdkankan.base.constant.SceneConstant;
|
|
import com.fdkankan.base.mq.ModelingMsgProducer;
|
|
import com.fdkankan.base.mq.ModelingMsgProducer;
|
|
import com.fdkankan.base.service.impl.FileService;
|
|
import com.fdkankan.base.service.impl.FileService;
|
|
-import com.fdkankan.base.util.*;
|
|
|
|
|
|
+import com.fdkankan.base.util.RSAEncrypt;
|
|
|
|
+import com.fdkankan.base.util.SnowflakeIdGenerator;
|
|
import com.fdkankan.common.api.BaseController;
|
|
import com.fdkankan.common.api.BaseController;
|
|
import com.fdkankan.common.constant.ConstantFilePath;
|
|
import com.fdkankan.common.constant.ConstantFilePath;
|
|
|
|
+import com.fdkankan.common.constant.ConstantUrl;
|
|
import com.fdkankan.common.exception.BaseRuntimeException;
|
|
import com.fdkankan.common.exception.BaseRuntimeException;
|
|
|
|
+import com.fdkankan.common.jedis.JedisUtil;
|
|
import com.fdkankan.common.model.Result;
|
|
import com.fdkankan.common.model.Result;
|
|
-import com.fdkankan.common.util.*;
|
|
|
|
|
|
+import com.fdkankan.common.util.FileUtils;
|
|
|
|
+import com.fdkankan.common.util.RubberSheetingUtil;
|
|
|
|
+import com.fdkankan.common.util.UploadToOssUtil;
|
|
import com.fdkankan.common.vo.response.ResponseSceneFile;
|
|
import com.fdkankan.common.vo.response.ResponseSceneFile;
|
|
-import com.fdkankan.scene.entity.CameraEntity;
|
|
|
|
import com.fdkankan.scene.entity.*;
|
|
import com.fdkankan.scene.entity.*;
|
|
import com.fdkankan.scene.service.*;
|
|
import com.fdkankan.scene.service.*;
|
|
import com.fdkankan.scene.util.ComputerUtil;
|
|
import com.fdkankan.scene.util.ComputerUtil;
|
|
@@ -23,7 +26,6 @@ import com.fdkankan.scene.util.CreateObjUtil;
|
|
import com.github.pagehelper.util.StringUtil;
|
|
import com.github.pagehelper.util.StringUtil;
|
|
import io.swagger.annotations.Api;
|
|
import io.swagger.annotations.Api;
|
|
import io.swagger.annotations.ApiImplicitParam;
|
|
import io.swagger.annotations.ApiImplicitParam;
|
|
-import io.swagger.annotations.ApiImplicitParams;
|
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
import io.swagger.annotations.ApiOperation;
|
|
import lombok.extern.log4j.Log4j2;
|
|
import lombok.extern.log4j.Log4j2;
|
|
import org.apache.commons.codec.binary.Base64;
|
|
import org.apache.commons.codec.binary.Base64;
|
|
@@ -33,9 +35,7 @@ import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.data.redis.core.RedisTemplate;
|
|
import org.springframework.data.redis.core.RedisTemplate;
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
-import org.springframework.web.bind.annotation.RequestParam;
|
|
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
-import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
|
|
import java.io.File;
|
|
import java.io.File;
|
|
import java.io.IOException;
|
|
import java.io.IOException;
|
|
@@ -61,6 +61,7 @@ public class SceneFileController extends BaseController {
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
private ICameraService cameraService;
|
|
private ICameraService cameraService;
|
|
|
|
+
|
|
@Autowired
|
|
@Autowired
|
|
private ObjectMapper mapper;
|
|
private ObjectMapper mapper;
|
|
|
|
|
|
@@ -80,6 +81,9 @@ public class SceneFileController extends BaseController {
|
|
@Autowired
|
|
@Autowired
|
|
private RedisTemplate<String, String> redisTemplate;
|
|
private RedisTemplate<String, String> redisTemplate;
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private RubberSheetingUtil rubberSheetingUtil;
|
|
|
|
+
|
|
|
|
|
|
@Value("${main.url}")
|
|
@Value("${main.url}")
|
|
private String mainUrl;
|
|
private String mainUrl;
|
|
@@ -102,8 +106,9 @@ public class SceneFileController extends BaseController {
|
|
@Value("${ecs.type}")
|
|
@Value("${ecs.type}")
|
|
private String ecsType;
|
|
private String ecsType;
|
|
|
|
|
|
- @Autowired
|
|
|
|
- private RubberSheetingUtil rubberSheetingUtil;
|
|
|
|
|
|
+ @Value("${oss.type}")
|
|
|
|
+ private String type;
|
|
|
|
+
|
|
|
|
|
|
/**
|
|
/**
|
|
* 场景文件上传之前先获取fileId
|
|
* 场景文件上传之前先获取fileId
|
|
@@ -546,160 +551,179 @@ public class SceneFileController extends BaseController {
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 更新fileid文件的上传状态
|
|
|
|
+ *
|
|
|
|
+ * @param params
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ @PostMapping("turntableUploadSuccess")
|
|
|
|
+ @ApiOperation("转台相机上传成功,生成场景")
|
|
|
|
+ @ApiImplicitParam(name = "params", value = "加密参数", dataType = "String")
|
|
|
|
+ public Result turntableUploadSuccess(String params) throws Exception {
|
|
|
|
+ log.info("uploadSuccessBuild-params: " + params);
|
|
|
|
+ if (StringUtils.isEmpty(params)) {
|
|
|
|
+ throw new BaseRuntimeException("params为空。");
|
|
|
|
+ }
|
|
|
|
+ params = params.replaceAll("%2B", "+");
|
|
|
|
+ Base64 base64 = new Base64();
|
|
|
|
+ String cipher = params;
|
|
|
|
+ // 私钥解密过程
|
|
|
|
+ byte[] res = RSAEncrypt.decrypt(RSAEncrypt.loadPrivateKeyByStr(RSAEncrypt.loadPrivateKeyByFile()),
|
|
|
|
+ base64.decode(cipher));
|
|
|
|
+ String restr = new String(res, "UTF-8");
|
|
|
|
+ log.debug("uploadSuccessBuild-params解密结果:" + restr);
|
|
|
|
+ String[] strArr = restr.split(splice);
|
|
|
|
+ if (strArr.length != 3) {
|
|
|
|
+ throw new BaseRuntimeException("缺少必要参数。");
|
|
|
|
+ }
|
|
|
|
+ String mac = strArr[0];
|
|
|
|
+ String fileId = strArr[1];
|
|
|
|
+ String folderName = JedisUtil.getStringValue(fileId);
|
|
|
|
+ if(StringUtils.isEmpty(folderName)){
|
|
|
|
+ SceneProEntity sceneProEntity = sceneProService.getSceneStatusByUnicode("/" + fileId + "/", "A");
|
|
|
|
+ if(sceneProEntity != null){
|
|
|
|
+ folderName = sceneProEntity.getDataSource().substring(sceneProEntity.getDataSource().lastIndexOf("/") + 1);
|
|
|
|
+ }
|
|
|
|
|
|
-// private Result uploadFile(MultipartFile file, String params) throws Exception{
|
|
|
|
-//
|
|
|
|
-//
|
|
|
|
-// log.info("upload-params: "+params);
|
|
|
|
-// if (StringUtils.isEmpty(params)){
|
|
|
|
-// throw new BaseRuntimeException("params为空。");
|
|
|
|
-// }
|
|
|
|
-// params = params.replaceAll("%2B", "+");
|
|
|
|
-// Base64 base64 = new Base64();
|
|
|
|
-// String cipher = params;
|
|
|
|
-// // 私钥解密过程
|
|
|
|
-// byte[] res = RSAEncrypt.decrypt(RSAEncrypt.loadPrivateKeyByStr(RSAEncrypt.loadPrivateKeyByFile()),
|
|
|
|
-// base64.decode(cipher));
|
|
|
|
-// String restr = new String(res, "UTF-8");
|
|
|
|
-// log.debug("upload-params解密结果:" + restr);
|
|
|
|
-// String[] strArr = restr.split(splice);
|
|
|
|
-// if (strArr.length != 6) {
|
|
|
|
-// throw new BaseRuntimeException("缺少必要参数");
|
|
|
|
-// }
|
|
|
|
-// String mac = strArr[0];
|
|
|
|
-// String fileId = strArr[1];
|
|
|
|
-// String picNum = strArr[2];
|
|
|
|
-// String md5 = strArr[3];
|
|
|
|
-// String chunk = strArr[4];
|
|
|
|
-//
|
|
|
|
-// Result result = null;
|
|
|
|
-// if (file.isEmpty()){
|
|
|
|
-// throw new BaseRuntimeException("文件为空。");
|
|
|
|
-// }
|
|
|
|
-// if (StringUtils.isEmpty(fileId)){
|
|
|
|
-// throw new BaseRuntimeException("文件Id为空。");
|
|
|
|
-// }
|
|
|
|
-// if (picNum == null){
|
|
|
|
-// throw new BaseRuntimeException("照片数目为空。");
|
|
|
|
-// }
|
|
|
|
-// if (StringUtils.isEmpty(mac)){
|
|
|
|
-// throw new BaseRuntimeException("mac为空。");
|
|
|
|
-// }
|
|
|
|
-// if (StringUtils.isEmpty(md5)){
|
|
|
|
-// throw new BaseRuntimeException("md5为空。");
|
|
|
|
-// }
|
|
|
|
-// long size = file.getSize();
|
|
|
|
-// log.warn("fileId:"+fileId+"---picNum:"+picNum+"---size:"+size+"---md5:"+md5+"---mac:"+mac);
|
|
|
|
-// /*int count = sceneFileUploadService.getCountByFileId(fileId);
|
|
|
|
-// if (count > 0){
|
|
|
|
-// return Result.failure("文件Id重复,请重新获取。");
|
|
|
|
-// }*/
|
|
|
|
-// chunk = chunk.split(splice)[0];
|
|
|
|
-// // 获取文件名
|
|
|
|
-// String fileName = file.getOriginalFilename();
|
|
|
|
-// log.info("上传的文件名为:" + fileName);
|
|
|
|
-// // 获取文件的后缀名
|
|
|
|
-// String suffixName = fileName.substring(fileName.lastIndexOf("."));
|
|
|
|
-// log.info("上传的后缀名为:" + suffixName);
|
|
|
|
-// String folderName = redisTemplate.opsForValue().get(fileId);
|
|
|
|
-// if(StringUtils.isEmpty(folderName)){
|
|
|
|
-// SceneProEntity sceneProEntity = sceneProService.getSceneStatusByUnicode("/" + fileId + "/", "0");
|
|
|
|
-// if(sceneProEntity != null){
|
|
|
|
-// folderName = sceneProEntity.getDataSource().substring(sceneProEntity.getDataSource().lastIndexOf("/") + 1);
|
|
|
|
-// }
|
|
|
|
-// }
|
|
|
|
-// // 1. 判断该文件是否已经上传过
|
|
|
|
-// // 2. 如果已经上传过,判断MD5值和文件大小是否相等。如果相等,更新数据记录。如果不相等,删除该文件,重新上传。
|
|
|
|
-// // 3. 如果未上传过,需要上传。
|
|
|
|
-// StringBuffer filePathBuffer = new StringBuffer(mac).append(File.separator).append(fileId).append(File.separator).append(folderName).append(File.separator).append("capture");
|
|
|
|
-// StringBuffer sb = new StringBuffer(routeConfig.getHardDisk()).append(filePathBuffer.toString()).append(File.separator).append(fileName);
|
|
|
|
-//
|
|
|
|
-// boolean needUpload = false;
|
|
|
|
-// File dbFile = new File(sb.toString());
|
|
|
|
-// if (dbFile.exists()){
|
|
|
|
-// String fileMD5 = FileMd5Util.getFileMD5(dbFile);
|
|
|
|
-// if (md5.equals(fileMD5) && dbFile.length() == size){
|
|
|
|
-// log.warn("文件已存在,MD5和文件大小一致。");
|
|
|
|
-//
|
|
|
|
-// SceneFileUploadEntity uploadEntity = sceneFileUploadService.findByFileIdAndChunk(fileId, Integer.valueOf(chunk));
|
|
|
|
-// if (uploadEntity != null){
|
|
|
|
-//// uploadEntity.setPicNum(Integer.valueOf(picNum));
|
|
|
|
-// uploadEntity.setSize((int) size);
|
|
|
|
-// uploadEntity.setMd5(md5);
|
|
|
|
-// uploadEntity.setFilePath(sb.toString());
|
|
|
|
-// uploadEntity.setFileSourceName(fileName);
|
|
|
|
-// uploadEntity.setUploadStatus(1);
|
|
|
|
-// sceneFileUploadService.update(uploadEntity);
|
|
|
|
-// }else{
|
|
|
|
-// SceneFileUploadEntity sceneFileUploadEntity = new SceneFileUploadEntity();
|
|
|
|
-//// sceneFileUploadEntity.setPicNum(Integer.valueOf(picNum));
|
|
|
|
-// sceneFileUploadEntity.setSize((int) size);
|
|
|
|
-// sceneFileUploadEntity.setMd5(md5);
|
|
|
|
-// sceneFileUploadEntity.setFilePath(sb.toString());
|
|
|
|
-// sceneFileUploadEntity.setFileSourceName(fileName);
|
|
|
|
-// sceneFileUploadEntity.setUploadStatus(1);
|
|
|
|
-// sceneFileUploadEntity.setFileId(fileId);
|
|
|
|
-// sceneFileUploadEntity.setChunk(Integer.valueOf(chunk));
|
|
|
|
-// sceneFileUploadService.save(sceneFileUploadEntity);
|
|
|
|
-// }
|
|
|
|
-// result = Result.success();
|
|
|
|
-// }else if (!md5.equals(fileMD5)) {
|
|
|
|
-// log.warn("文件已上传,上传MD5:"+md5+",服务器MD5:"+fileMD5+"。不一致。上传失败");
|
|
|
|
-// FileUtil.delFile(sb.toString());
|
|
|
|
-// needUpload = true;
|
|
|
|
-// }else if (dbFile.length() != size){
|
|
|
|
-// log.warn("文件已上传,文件大小不一致。上传失败");
|
|
|
|
-// FileUtil.delFile(sb.toString());
|
|
|
|
-// needUpload = true;
|
|
|
|
-// }
|
|
|
|
-// }else {
|
|
|
|
-// log.warn("文件不存在,需要重新上传");
|
|
|
|
-// needUpload = true;
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// // 4. 上传成功后,校验MD5和文件大小是否相等
|
|
|
|
-// // 5. 如果相等,更新数据记录。如果不相等,返回上传失败结果。
|
|
|
|
-// try {
|
|
|
|
-// if (needUpload){
|
|
|
|
-// String name = fileName.substring(0, fileName.lastIndexOf("."));
|
|
|
|
-// String filePath = fileService.saveFile(file, filePathBuffer.toString(), name);
|
|
|
|
-// File uploadFile = new File(filePath);
|
|
|
|
-// String fileMD5 = FileMd5Util.getFileMD5(uploadFile);
|
|
|
|
-//
|
|
|
|
-// SceneFileUploadEntity sceneFileUploadEntity = new SceneFileUploadEntity();
|
|
|
|
-//// sceneFileUploadEntity.setPicNum(Integer.valueOf(picNum));
|
|
|
|
-// sceneFileUploadEntity.setSize((int) size);
|
|
|
|
-// sceneFileUploadEntity.setMd5(md5);
|
|
|
|
-// sceneFileUploadEntity.setFilePath(sb.toString());
|
|
|
|
-// sceneFileUploadEntity.setFileSourceName(fileName);
|
|
|
|
-// sceneFileUploadEntity.setFileId(fileId);
|
|
|
|
-// sceneFileUploadEntity.setChunk(Integer.valueOf(chunk));
|
|
|
|
-//
|
|
|
|
-// if (md5.equals(fileMD5) && uploadFile.length() == size){
|
|
|
|
-// log.warn("文件已上传,MD5和文件大小一致。上传成功");
|
|
|
|
-//
|
|
|
|
-// sceneFileUploadEntity.setUploadStatus(1);
|
|
|
|
-// sceneFileUploadService.save(sceneFileUploadEntity);
|
|
|
|
-//// sceneFileBuildService.updateUploadStatus(Long.parseLong(fileId), filePath);
|
|
|
|
-//// sceneFileBuildService.unzipSingleFile(sb.toString());
|
|
|
|
-//
|
|
|
|
-// result = Result.success();
|
|
|
|
-// }else if (!md5.equals(fileMD5)) {
|
|
|
|
-// log.warn("文件已上传,上传MD5:"+md5+",服务器MD5:"+fileMD5+"。不一致。上传失败");
|
|
|
|
-// sceneFileUploadEntity.setUploadStatus(-1);
|
|
|
|
-// sceneFileUploadService.save(sceneFileUploadEntity);
|
|
|
|
-// result = Result.failure("上传失败, 请重新上传。");
|
|
|
|
-// }else if (uploadFile.length() != size){
|
|
|
|
-// log.warn("文件已上传,文件大小不一致。上传失败");
|
|
|
|
-// sceneFileUploadEntity.setUploadStatus(-1);
|
|
|
|
-// sceneFileUploadService.save(sceneFileUploadEntity);
|
|
|
|
-// result = Result.failure("上传失败, 请重新上传。");
|
|
|
|
-// }
|
|
|
|
-// }
|
|
|
|
-// }catch (IllegalStateException | IOException e) {
|
|
|
|
-// result = Result.failure("上传失败, 请重新上传。");
|
|
|
|
-// }
|
|
|
|
-// return result;
|
|
|
|
-// }
|
|
|
|
|
|
+ if(StringUtils.isEmpty(folderName)){
|
|
|
|
+ SceneFileBuildEntity sceneFileBuildEntity = sceneFileBuildService.findByFileId(fileId);
|
|
|
|
+ if(sceneFileBuildEntity != null){
|
|
|
|
+ folderName = sceneFileBuildEntity.getUnicode();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ StringBuilder filePathBuffer = new StringBuilder(routeConfig.getHardDisk()).append(mac).append(File.separator).append(fileId).append(File.separator).append(folderName).append(File.separator).append("capture").append(File.separator);
|
|
|
|
+ StringBuilder prefixBuffer = new StringBuilder(mac).append(File.separator).append(fileId).append(File.separator).append(folderName).append(File.separator);
|
|
|
|
+
|
|
|
|
+ File filePath = new File(filePathBuffer.toString());
|
|
|
|
+ if(!filePath.exists()){
|
|
|
|
+ filePath.mkdirs();
|
|
|
|
+ }
|
|
|
|
+ if("s3".equals(type)){
|
|
|
|
+ CreateObjUtil.ossFileCp(ConstantFilePath.OSS_PREFIX + prefixBuffer.toString() + "data.fdage", filePathBuffer.toString() + "data.fdage");
|
|
|
|
+ }else {
|
|
|
|
+ CreateObjUtil.ossUtilCp(ConstantFilePath.OSS_PREFIX + prefixBuffer.toString() + "data.fdage", filePathBuffer.toString());
|
|
|
|
+ }
|
|
|
|
+ turntableBuildScene(filePathBuffer.toString(), fileId, true, prefixBuffer.toString());
|
|
|
|
+ return Result.success();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public void turntableBuildScene(String filePath, String fileId, boolean fromOss, String prefix) throws Exception{
|
|
|
|
+ //获取解压后的资源的data.fdage中的数据
|
|
|
|
+// File folderPath = new File(hardDisk + File.separator + childName + File.separator +
|
|
|
|
+// fileId).listFiles()[0];
|
|
|
|
+ String data = FileUtils.readFile(filePath + "data.fdage");
|
|
|
|
+ JSONObject jsonObject = JSONObject.parseObject(data);
|
|
|
|
+
|
|
|
|
+ //调用createScene方法生成scene数据和加入算法队列
|
|
|
|
+ if(jsonObject == null) {
|
|
|
|
+ log.info("data.fdage文件不存在");
|
|
|
|
+ throw new BaseRuntimeException(CameraConstant.FAILURE_CODE_6009, CameraConstant.FAILURE_MSG_6009);
|
|
|
|
+ }
|
|
|
|
|
|
|
|
+ String sceneNum = "";
|
|
|
|
+
|
|
|
|
+ String snCode = jsonObject.getJSONObject("cam").getString("uuid");
|
|
|
|
+ String unicode = jsonObject.getString("creator") + "_" + jsonObject.getString("uuidtime");
|
|
|
|
+// sceneProService.updateRecStatus(unicode);
|
|
|
|
+ //查看场景中的文件目录是否有改文件id,有则重新计算改场景,无则新建场景
|
|
|
|
+ SceneProEntity proEntity = sceneProService.findByFileId("/" + fileId + "/");
|
|
|
|
+ int rebuild = 1;
|
|
|
|
+ if(proEntity != null){
|
|
|
|
+ sceneNum = proEntity.getNum();
|
|
|
|
+ if(proEntity.getStatus() == 0){
|
|
|
|
+ log.info(sceneNum + ":场景处于计算中,不能再计算");
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ }else {
|
|
|
|
+ synchronized(this){
|
|
|
|
+ Scene3dNumNewEntity numEntity = numService.findSceneNum(unicode);
|
|
|
|
+ sceneNum = numEntity.getCode();
|
|
|
|
+ numEntity.setUsed(1);
|
|
|
|
+ numEntity.setFolderName(unicode);
|
|
|
|
+ numService.update(numEntity);
|
|
|
|
+ rebuild = 0;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if(sceneNum == null){
|
|
|
|
+ log.error("大场景序号为空:" + sceneNum);
|
|
|
|
+ throw new BaseRuntimeException(SceneConstant.FAILURE_CODE_5005, SceneConstant.FAILURE_MSG_5005);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ log.info("查询相机:" + snCode);
|
|
|
|
+ CameraEntity cameraEntity = cameraService.findByChildName(snCode);
|
|
|
|
+
|
|
|
|
+ if(cameraEntity == null){
|
|
|
|
+ log.error("该相机不存在:" + snCode);
|
|
|
|
+ cameraEntity = cameraService.findBySnCode(snCode);
|
|
|
|
+ if(cameraEntity == null){
|
|
|
|
+ throw new BaseRuntimeException(CameraConstant.FAILURE_CODE_6003, CameraConstant.FAILURE_MSG_6003);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ String userName = null;
|
|
|
|
+ String userId = jsonObject.getString("uploadUserID");
|
|
|
|
+ String departmentId = jsonObject.getString("uploadDepartmentID");
|
|
|
|
+
|
|
|
|
+ String icon = null;
|
|
|
|
+ if(jsonObject.containsKey("icon") && StringUtil.isNotEmpty(jsonObject.getString("icon"))){
|
|
|
|
+ CreateObjUtil.ossUtilCp(ConstantFilePath.OSS_PREFIX + prefix + jsonObject.getString("icon"), filePath);
|
|
|
|
+ icon = prefixAli + "images/images" + sceneNum + "/" + jsonObject.getString("icon");
|
|
|
|
+ if("s3".equals(type)){
|
|
|
|
+ CreateObjUtil.ossFileCp(ConstantFilePath.OSS_PREFIX + prefix + jsonObject.getString("icon"), filePath + jsonObject.getString("icon"));
|
|
|
|
+ icon = ConstantUrl.PREFIX_AWS + "images/images" + sceneNum + "/" + jsonObject.getString("icon");
|
|
|
|
+ }
|
|
|
|
+ uploadToOssUtil.upload(filePath + jsonObject.getString("icon"), "images/images" + sceneNum + "/" + jsonObject.getString("icon"));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ JSONObject firmwareVersion = new JSONObject();
|
|
|
|
+ if(jsonObject.containsKey("camSoftwareVersion") && StringUtil.isNotEmpty(jsonObject.getString("camSoftwareVersion"))){
|
|
|
|
+ firmwareVersion.put("camSoftwareVersion", jsonObject.getString("camSoftwareVersion"));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if(jsonObject.containsKey("version") && StringUtil.isNotEmpty(jsonObject.getString("version"))){
|
|
|
|
+ firmwareVersion.put("version", jsonObject.getString("version"));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ String sceneUrl = mainUrl + sceneProUrl;
|
|
|
|
+ String codeUrl = mainIntranetUrl + sceneProUrl;
|
|
|
|
+ String buildType = "V3";
|
|
|
|
+ //13表示转台
|
|
|
|
+ Long cameraType = 13L;
|
|
|
|
+
|
|
|
|
+ if(rebuild != 1){
|
|
|
|
+ //上传log-main.png
|
|
|
|
+ uploadToOssUtil.upload(ConstantFilePath.LOGO_PATH + "logo-main.png", "images/images" + sceneNum + "/logo-main.png");
|
|
|
|
+ uploadToOssUtil.upload(ConstantFilePath.LOGO_PATH + "logo-main-en.png", "images/images" + sceneNum + "/logo-main-en.png");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ SceneProEntity scene = null;
|
|
|
|
+ scene = ComputerUtil.createScenePro(sceneNum, cameraEntity.getId(), cameraEntity.getChildName(), jsonObject.getString("creator"),
|
|
|
|
+ jsonObject.getString("pwd"), unicode,
|
|
|
|
+ cameraType, String.valueOf(fileId), prefix, "", icon, "0", userId, userName,
|
|
|
|
+ jsonObject.getString("location") != null && "1".equals(jsonObject.getString("location")) ? "sfm" : "slam",
|
|
|
|
+ jsonObject.getJSONArray("points").size(), jsonObject.getString("name"), jsonObject.getString("info"),
|
|
|
|
+ jsonObject.getInteger("scenetype"), jsonObject.getString("gps"), sceneProService, sceneProEditService, rebuild, producer,
|
|
|
|
+ jsonObject.getInteger("resolution"), firmwareVersion.toString(), sceneUrl, buildType, ecsType, codeUrl, departmentId);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ if(scene != null){
|
|
|
|
+ JSONObject statusJson = new JSONObject();
|
|
|
|
+ statusJson.put("status", scene.getStatus());
|
|
|
|
+ statusJson.put("webSite", scene.getWebSite());
|
|
|
|
+ statusJson.put("sceneNum", scene.getNum());
|
|
|
|
+ statusJson.put("thumb", scene.getThumb());
|
|
|
|
+ statusJson.put("payStatus", scene.getPayStatus());
|
|
|
|
+ statusJson.put("isDelete", scene.getIsDelete());
|
|
|
|
+ FileUtils.writeFile(ConstantFilePath.SCENE_PATH+"data/data"+sceneNum+File.separator+"status.json", statusJson.toString());
|
|
|
|
+ uploadToOssUtil.upload(ConstantFilePath.SCENE_PATH+"data/data"+sceneNum+File.separator+"status.json",
|
|
|
|
+ "data/data"+sceneNum+File.separator+"status.json");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
}
|
|
}
|