|
@@ -6,6 +6,8 @@ import cn.hutool.core.util.StrUtil;
|
|
import cn.hutool.core.util.ZipUtil;
|
|
import cn.hutool.core.util.ZipUtil;
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
+import com.fdkankan.common.constant.CommonStatus;
|
|
import com.fdkankan.common.constant.ModelKind;
|
|
import com.fdkankan.common.constant.ModelKind;
|
|
import com.fdkankan.common.constant.SceneKind;
|
|
import com.fdkankan.common.constant.SceneKind;
|
|
import com.fdkankan.common.constant.SceneScheme;
|
|
import com.fdkankan.common.constant.SceneScheme;
|
|
@@ -21,6 +23,7 @@ import com.fdkankan.download.service.*;
|
|
import com.fdkankan.download.util.RsaUtils;
|
|
import com.fdkankan.download.util.RsaUtils;
|
|
import com.fdkankan.fyun.config.FYunFileConfig;
|
|
import com.fdkankan.fyun.config.FYunFileConfig;
|
|
import com.fdkankan.fyun.face.FYunFileServiceInterface;
|
|
import com.fdkankan.fyun.face.FYunFileServiceInterface;
|
|
|
|
+import com.fdkankan.model.constants.UploadFilePath;
|
|
import com.fdkankan.redis.constant.RedisKey;
|
|
import com.fdkankan.redis.constant.RedisKey;
|
|
import com.fdkankan.redis.util.RedisUtil;
|
|
import com.fdkankan.redis.util.RedisUtil;
|
|
import com.fdkankan.web.response.ResultData;
|
|
import com.fdkankan.web.response.ResultData;
|
|
@@ -31,6 +34,7 @@ import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
import java.io.File;
|
|
import java.io.File;
|
|
|
|
+import java.nio.charset.StandardCharsets;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
|
|
|
|
@Slf4j
|
|
@Slf4j
|
|
@@ -54,6 +58,14 @@ public class ScrbServiceImpl implements IScrbService {
|
|
private ISceneEditInfoExtService sceneEditInfoExtService;
|
|
private ISceneEditInfoExtService sceneEditInfoExtService;
|
|
@Autowired
|
|
@Autowired
|
|
private ISceneEditControlsService sceneEditControlsService;
|
|
private ISceneEditControlsService sceneEditControlsService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private ICameraDetailService cameraDetailService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private ISceneCooperationService sceneCooperationService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private ISceneResourceCameraService sceneResourceCameraService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private ISceneResourceCooperationService sceneResourceCooperationService;
|
|
@Resource
|
|
@Resource
|
|
private RedisUtil redisUtil;
|
|
private RedisUtil redisUtil;
|
|
@Resource
|
|
@Resource
|
|
@@ -81,9 +93,25 @@ public class ScrbServiceImpl implements IScrbService {
|
|
//删除4k图
|
|
//删除4k图
|
|
FileUtil.del(skyboxPath);
|
|
FileUtil.del(skyboxPath);
|
|
|
|
|
|
|
|
+ //不需要覆盖的文件
|
|
|
|
+ Set<String> notOverwriteFileKeys = new HashSet<>();
|
|
|
|
+ notOverwriteFileKeys.add(String.format(UploadFilePath.DATA_VIEW_PATH, num) + "scene.json");
|
|
|
|
+
|
|
//上传文件
|
|
//上传文件
|
|
|
|
+ List<String> userFileList = fYunFileService.listRemoteFiles(String.format(UploadFilePath.USER_VIEW_PATH, num));
|
|
List<File> files = FileUtil.loopFiles(scenePath + "scene_view_data/");
|
|
List<File> files = FileUtil.loopFiles(scenePath + "scene_view_data/");
|
|
- files.stream().forEach(file -> {
|
|
|
|
|
|
+ files.stream().filter(file->{
|
|
|
|
+ //第二次同步不需要同步user目录
|
|
|
|
+ if(file.getAbsolutePath().contains(String.format(UploadFilePath.USER_VIEW_PATH, num)) && CollUtil.isNotEmpty(userFileList)){
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ //指定不覆盖文件
|
|
|
|
+ String objectName = file.getAbsolutePath().replace(scenePath, "");
|
|
|
|
+ if(notOverwriteFileKeys.contains(objectName) && fYunFileService.fileExist(objectName)){
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ return true;
|
|
|
|
+ }).forEach(file -> {
|
|
if(file.getAbsolutePath().endsWith("scene.json")){
|
|
if(file.getAbsolutePath().endsWith("scene.json")){
|
|
String s = FileUtil.readUtf8String(file.getAbsolutePath());
|
|
String s = FileUtil.readUtf8String(file.getAbsolutePath());
|
|
JSONObject jsonObject = JSON.parseObject(s);
|
|
JSONObject jsonObject = JSON.parseObject(s);
|
|
@@ -95,7 +123,8 @@ public class ScrbServiceImpl implements IScrbService {
|
|
headers = new HashMap<>();
|
|
headers = new HashMap<>();
|
|
headers.put("Content-Encoding", "gzip");
|
|
headers.put("Content-Encoding", "gzip");
|
|
}
|
|
}
|
|
- fYunFileService.uploadFile(file.getAbsolutePath(), file.getAbsolutePath().replace(scenePath, ""), headers);
|
|
|
|
|
|
+ String objectName = file.getAbsolutePath().replace(scenePath, "");
|
|
|
|
+ fYunFileService.uploadFile(file.getAbsolutePath(), objectName, headers);
|
|
});
|
|
});
|
|
|
|
|
|
files = FileUtil.loopFiles(scenePath + "scene_result_data/");
|
|
files = FileUtil.loopFiles(scenePath + "scene_result_data/");
|
|
@@ -130,10 +159,14 @@ public class ScrbServiceImpl implements IScrbService {
|
|
Object data = resultData.getData();
|
|
Object data = resultData.getData();
|
|
Long cameraId = ((JSONObject)data).getLong("id");
|
|
Long cameraId = ((JSONObject)data).getLong("id");
|
|
|
|
|
|
|
|
+ CameraDetail cameraDetail = cameraDetailService.getOne(new LambdaQueryWrapper<CameraDetail>().eq(CameraDetail::getCameraId, cameraId));
|
|
|
|
+
|
|
String scenePlusStr = FileUtil.readUtf8String(scenePath + "scenePlus.txt");
|
|
String scenePlusStr = FileUtil.readUtf8String(scenePath + "scenePlus.txt");
|
|
scenePlus = JSON.parseObject(scenePlusStr, ScenePlus.class);
|
|
scenePlus = JSON.parseObject(scenePlusStr, ScenePlus.class);
|
|
scenePlus.setId(null);
|
|
scenePlus.setId(null);
|
|
scenePlus.setCameraId(cameraId);
|
|
scenePlus.setCameraId(cameraId);
|
|
|
|
+ scenePlus.setUserId(cameraDetail.getUserId());
|
|
|
|
+ scenePlus.setPayStatus(CommonStatus.YES.code().intValue());
|
|
scenePlusService.save(scenePlus);
|
|
scenePlusService.save(scenePlus);
|
|
|
|
|
|
String scenePlusExtStr = FileUtil.readUtf8String(scenePath + "scenePlusExt.txt");
|
|
String scenePlusExtStr = FileUtil.readUtf8String(scenePath + "scenePlusExt.txt");
|
|
@@ -145,6 +178,7 @@ public class ScrbServiceImpl implements IScrbService {
|
|
scenePlusExt.setYunFileBucket(null);
|
|
scenePlusExt.setYunFileBucket(null);
|
|
scenePlusExt.getVideos().replaceAll("https://4dkk.4dage.com/", "");
|
|
scenePlusExt.getVideos().replaceAll("https://4dkk.4dage.com/", "");
|
|
scenePlusExt.setWebSite(scenePlusExt.getWebSite().replace("https://test.4dkankan.com", mainUrl).replace("https://www.4dkankan.com", mainUrl));
|
|
scenePlusExt.setWebSite(scenePlusExt.getWebSite().replace("https://test.4dkankan.com", mainUrl).replace("https://www.4dkankan.com", mainUrl));
|
|
|
|
+ scenePlusExt.setSceneScheme(SceneScheme.LM.code());
|
|
scenePlusExtService.save(scenePlusExt);
|
|
scenePlusExtService.save(scenePlusExt);
|
|
|
|
|
|
String sceneEditInfoStr = FileUtil.readUtf8String(scenePath + "sceneEditInfo.txt");
|
|
String sceneEditInfoStr = FileUtil.readUtf8String(scenePath + "sceneEditInfo.txt");
|
|
@@ -166,6 +200,34 @@ public class ScrbServiceImpl implements IScrbService {
|
|
sceneEditControls.setId(null);
|
|
sceneEditControls.setId(null);
|
|
sceneEditControls.setEditInfoId(sceneEditInfo.getId());
|
|
sceneEditControls.setEditInfoId(sceneEditInfo.getId());
|
|
sceneEditControlsService.save(sceneEditControls);
|
|
sceneEditControlsService.save(sceneEditControls);
|
|
|
|
+
|
|
|
|
+ this.setCooperation(scenePlus.getNum(), cameraId);
|
|
|
|
+
|
|
|
|
+ }else{
|
|
|
|
+ String scenePlusStr = FileUtil.readUtf8String(scenePath + "scenePlus.txt");
|
|
|
|
+ ScenePlus scenePlusNew = JSON.parseObject(scenePlusStr, ScenePlus.class);
|
|
|
|
+ scenePlus.setTitle(scenePlusNew.getTitle());
|
|
|
|
+ scenePlusService.updateById(scenePlus);
|
|
|
|
+
|
|
|
|
+ String scenePlusExtStr = FileUtil.readUtf8String(scenePath + "scenePlusExt.txt");
|
|
|
|
+ ScenePlusExt scenePlusExtNew = JSON.parseObject(scenePlusExtStr, ScenePlusExt.class);
|
|
|
|
+ ScenePlusExt scenePlusExt = scenePlusExtService.getByScenePlusId(scenePlus.getId());
|
|
|
|
+ scenePlusExt.setAlgorithmTime(scenePlusExtNew.getAlgorithmTime());
|
|
|
|
+ scenePlusExtService.updateById(scenePlusExt);
|
|
|
|
+
|
|
|
|
+ SceneEditInfo sceneEditInfo = sceneEditInfoService.getByScenePlusId(scenePlus.getId());
|
|
|
|
+ sceneEditInfo.setTitle(scenePlusNew.getTitle());
|
|
|
|
+ sceneEditInfoService.updateById(sceneEditInfo);
|
|
|
|
+
|
|
|
|
+ //更新scene.json 场景名称
|
|
|
|
+ String sceneJsonPath = String.format(UploadFilePath.DATA_VIEW_PATH, num) + "scene.json";
|
|
|
|
+ if(fYunFileService.fileExist(sceneJsonPath)){
|
|
|
|
+ String sceneJsonStr = fYunFileService.getFileContent(sceneJsonPath);
|
|
|
|
+ JSONObject sceneJson = JSON.parseObject(sceneJsonStr);
|
|
|
|
+ sceneJson.replace("title", scenePlusNew.getTitle());
|
|
|
|
+ sceneJsonStr = sceneJson.toJSONString();
|
|
|
|
+ fYunFileService.uploadFile(sceneJsonStr.getBytes(StandardCharsets.UTF_8), sceneJsonPath);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
//清除用户编辑业务数据
|
|
//清除用户编辑业务数据
|
|
@@ -189,4 +251,29 @@ public class ScrbServiceImpl implements IScrbService {
|
|
handler.init(num, CollUtil.isEmpty(params) ? null : params.get(biz));
|
|
handler.init(num, CollUtil.isEmpty(params) ? null : params.get(biz));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ private void setCooperation(String num, Long cameraId){
|
|
|
|
+ CameraDetail cameraDetail = cameraDetailService.getByCameraId(cameraId);
|
|
|
|
+ if(Objects.isNull(cameraDetail)){
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ Long cooperationUserId = cameraDetail.getCooperationUser();
|
|
|
|
+
|
|
|
|
+ SceneCooperation sceneCooperationEntity = new SceneCooperation();
|
|
|
|
+ sceneCooperationEntity.setSceneNum(num);
|
|
|
|
+ sceneCooperationEntity.setUserId(cooperationUserId);
|
|
|
|
+ sceneCooperationService.save(sceneCooperationEntity);
|
|
|
|
+
|
|
|
|
+ List<SceneResourceCamera> resourceCameraList = sceneResourceCameraService.findListByCameraId(cameraId);
|
|
|
|
+
|
|
|
|
+ SceneResourceCooperation sceneResourceCooperation = null;
|
|
|
|
+ if(resourceCameraList != null && resourceCameraList.size() > 0){
|
|
|
|
+ for (SceneResourceCamera sceneResourceCamera : resourceCameraList) {
|
|
|
|
+ sceneResourceCooperation = new SceneResourceCooperation();
|
|
|
|
+ sceneResourceCooperation.setSceneResourceId(sceneResourceCamera.getSceneResourceId());
|
|
|
|
+ sceneResourceCooperation.setSceneCooperationId(sceneCooperationEntity.getId());
|
|
|
|
+ sceneResourceCooperationService.save(sceneResourceCooperation);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|