dengsixing 2 týždňov pred
rodič
commit
037d4f8d2e

+ 7 - 6
src/main/java/com/fdkankan/contro/controller/SceneFileController.java

@@ -261,14 +261,15 @@ public class SceneFileController{
             @RequestPart SendCallAlgorithmDetail details) throws Exception {
 
         String parentPath = "/oss/4dkankan/bd_server/upload_while_shooting/" + details.getUuid() + "/";
-        String localPath = parentPath + details.getIndex() + details.getFileName();
-        FileUtil.mkParentDirs(localPath);
-        String url = "https://survey.4dkankan.com"  + localPath.replace("4dkankan/", "");
-        if(details.getFileName().equals("data.fdage")){
-            file.transferTo(new File(parentPath + details.getFileName()));
+        String localPath = null;
+        if(details.getIndex() != -1){
+            localPath = parentPath + details.getIndex() + "/" + details.getFileName();
         }else{
-            file.transferTo(new File(localPath));
+            localPath = parentPath + details.getFileName();
         }
+        FileUtil.mkParentDirs(localPath);
+        String url = "https://survey.4dkankan.com"  + localPath.replace("4dkankan/", "");
+        file.transferTo(new File(localPath));
 
         SendCallAlgorithmParam param = new SendCallAlgorithmParam();
         param.setFilepath(url);

+ 10 - 8
src/main/java/com/fdkankan/contro/mq/listener/UploadShootingListener.java

@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.fdkankan.common.constant.CommonStatus;
 import com.fdkankan.common.constant.CommonSuccessStatus;
 import com.fdkankan.common.constant.SceneStatus;
+import com.fdkankan.contro.constant.RedisConstants;
 import com.fdkankan.contro.entity.*;
 import com.fdkankan.contro.service.*;
 import com.fdkankan.contro.util.HttpUtilExt;
@@ -77,15 +78,15 @@ public class UploadShootingListener {
                 return;
             }
 
-            Set<Integer> indexs = new HashSet<>();
+            Set<String> indexs = new HashSet<>();
             String basePath = ConstantFilePath.BUILD_MODEL_PATH + "upload_while_shooting/" + uuid + "/";
             //遍历检查点位相关文件是否齐全,如果齐全改为进入计算
             List<OrigFileUploadBatch> updateList = new ArrayList<>();
             for (OrigFileUploadBatch batch : batches) {
                 List<OrigFileUpload> fileUploadList = origFileUploadService.getByBatchId(batch.getBatchId());
                 String workPath = basePath;
-                if(index != -1){
-                    workPath = workPath + index + "/";
+                if(batch.getPtIndex() != -1){
+                    workPath = workPath + batch.getPtIndex() + "/";
                 }
                 //下载文件
                 for (OrigFileUpload origFileUpload : fileUploadList) {
@@ -96,7 +97,7 @@ public class UploadShootingListener {
                     //如果是点位上传批次,需要校验文件上传是否齐全
                     boolean lackFille = uploadShootingService.checkLackFille(batch.getPtIndex(), fileUploadList);
                     if(!lackFille){
-                        indexs.add(batch.getPtIndex());
+                        indexs.add(String.valueOf(batch.getPtIndex()));
                         updateList.add(batch);
                     }
                 }else{
@@ -107,6 +108,7 @@ public class UploadShootingListener {
             JSONObject playLoad = new JSONObject();
             playLoad.put("uuid", uuid);
             playLoad.put("path", basePath);
+            playLoad.put("sceneCode", num);
             if(indexs.size() > 0){
                 playLoad.put("indexs", indexs);
             }else if(index == -1){
@@ -119,12 +121,12 @@ public class UploadShootingListener {
             if(CollUtil.isNotEmpty(updateList)){
                 updateList.stream().forEach(v->v.setStatus(2));
                 origFileUploadBatchService.updateBatchById(updateList);
+                for (OrigFileUploadBatch origFileUploadBatch : updateList) {
+                    String batchKey = RedisConstants.BATCH_ID_UPLOAD_SHOOTING.replace("@uuid@", uuid).replace("@index@", String.valueOf(origFileUploadBatch.getPtIndex()));
+                    redisUtil.del(batchKey);
+                }
             }
 
-//            String batchKey = RedisConstants.BATCH_ID_UPLOAD_SHOOTING.replace("@uuid@", uuid).replace("@index@", String.valueOf(index));
-//            redisUtil.del(batchKey);
-
-
         }catch (Exception e){
             log.error("场景预览文件处理出错, num:{}", num, e);
         }finally {

+ 5 - 1
src/main/java/com/fdkankan/contro/service/impl/OrigFileUploadServiceImpl.java

@@ -28,7 +28,11 @@ public class OrigFileUploadServiceImpl extends ServiceImpl<IOrigFileUploadMapper
 
     @Override
     public OrigFileUpload getByBatchIdAndFileName(String batchId, String fileName) {
-        List<OrigFileUpload> list = this.list(new LambdaQueryWrapper<OrigFileUpload>().eq(OrigFileUpload::getBatchId, batchId).eq(OrigFileUpload::getFileName, fileName).orderByDesc(OrigFileUpload::getId));
+        List<OrigFileUpload> list = this.list(
+                new LambdaQueryWrapper<OrigFileUpload>()
+                .eq(OrigFileUpload::getBatchId, batchId)
+                .eq(OrigFileUpload::getFileName, fileName)
+                .orderByDesc(OrigFileUpload::getId));
         if(CollUtil.isEmpty(list)){
             return null;
         }

+ 11 - 9
src/main/java/com/fdkankan/contro/service/impl/UploadShootingServiceImpl.java

@@ -47,8 +47,8 @@ public class UploadShootingServiceImpl implements UploadShootingService {
     private String userPasswordKey;
     @Value("${user.password.iv:pwel781esd6wglxm}")
     private String userPasswordIv;
-    @Value("${scene.pro.new.url}")
-    private String sceneProNewUrl;
+    @Value("${scene.pro.preview.url}")
+    private String sceneProPreviewUrl;
 
     @Resource
     private RedisLockUtil redisLockUtil;
@@ -92,7 +92,7 @@ public class UploadShootingServiceImpl implements UploadShootingService {
         String uuid = details.getUuid();
 
         String lockKey = RedisConstants.LOCK_UPLOAD_SHOOTING.replace("@uuid@", details.getUuid()).replace("@index@", String.valueOf(details.getIndex()));
-        boolean lock = redisLockUtil.lock(lockKey, uuid, 1);
+        boolean lock = redisLockUtil.lock(lockKey, uuid, 2000);
         if (!lock) {//如果拿不到锁,证明
             Thread.sleep(2000L);
         }
@@ -137,6 +137,11 @@ public class UploadShootingServiceImpl implements UploadShootingService {
     @Override
     public void build(SendCallAlgorithmDetail detail) throws Exception {
 
+        //有点位数据的时候,app会传index,所以这里置空
+        if(detail.getIndex() != null && detail.getIndex() != -1){
+            detail.setIndex(null);
+        }
+
         OrigFileUploadBatch condition = new OrigFileUploadBatch();
         condition.setUuid(detail.getUuid());
         condition.setStatus(0);
@@ -157,12 +162,9 @@ public class UploadShootingServiceImpl implements UploadShootingService {
         String title = dataFdage.getString("name");
 
         OrigFileUploadBatch origFileUploadBatch = batches.get(0);
-        if(detail.getIndex() == null || detail.getIndex() != -1){//没有新增点位
-
-        }else{//有新增点位
-
+        if(detail.getIndex() == null || detail.getIndex() != -1){
             OrigFileUpload origFileUpload = origFileUploadService.getByBatchIdAndFileName(origFileUploadBatch.getBatchId(), "config.json");
-            String localPath = ConstantFilePath.BUILD_MODEL_PATH + "upload_while_shooting/" + detail.getUuid() + "/" + detail.getIndex() + "/" + detail.getFileName();
+            String localPath = ConstantFilePath.BUILD_MODEL_PATH + "upload_while_shooting/" + detail.getUuid() + "/" + origFileUploadBatch.getPtIndex() + "/" + detail.getFileName();
             HttpUtilExt.downloadFileAndCheck(origFileUpload.getFileUrl(), localPath, 300000);
 
             //入库相机
@@ -248,7 +250,7 @@ public class UploadShootingServiceImpl implements UploadShootingService {
         scenePlusService.saveOrUpdate(scenePlus);
 
         scenePlusExt.setPlusId(scenePlus.getId());
-        scenePlusExt.setWebSite("/" + sceneProNewUrl + sceneNum);
+        scenePlusExt.setWebSite("/" + sceneProPreviewUrl + sceneNum);
         scenePlusExtService.saveOrUpdate(scenePlusExt);
 
         sceneEditInfo.setTitle(scenePlus.getTitle());