瀏覽代碼

Merge branch 'master' into dev-dsx-plus-20220315

# Conflicts:
#	4dkankan-center-scene/src/main/java/com/fdkankan/scene/controller/TestController.java
dengsixing 3 年之前
父節點
當前提交
9e475e7cf9

+ 32 - 34
4dkankan-center-scene/src/main/java/com/fdkankan/scene/controller/SceneController.java

@@ -1,12 +1,19 @@
 package com.fdkankan.scene.controller;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.constant.PayStatus;
 import com.fdkankan.common.constant.SceneInfoReqType;
+import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.response.ResultData;
+import com.fdkankan.scene.entity.SceneEditInfo;
+import com.fdkankan.scene.entity.ScenePro;
 import com.fdkankan.scene.service.*;
 import com.fdkankan.scene.vo.*;
+import java.util.Objects;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -228,40 +235,31 @@ public class SceneController {
 //        return Result.success((Object) sceneProEntity.getEcs());
 //    }
 //
-//    /**
-//     * 根据场景密码打开场景
-//     */
-//    @ApiOperation("根据场景密码打开场景")
-//    @PostMapping(value = "/openSceneBykey")
-//    @ApiImplicitParams({
-//            @ApiImplicitParam(name = "sceneKey", value = "场景秘钥", dataType = "String"),
-//            @ApiImplicitParam(name = "num", value = "场景码", dataType = "String")})
-//    public ResultData openSceneBykey(HttpServletRequest request) throws Exception {
-//        String sceneNum = request.getParameter("num");
-//        String sceneKey = request.getParameter("sceneKey");
-//        if (StringUtils.isEmpty(sceneNum) || StringUtils.isEmpty(sceneKey)) {
-//            throw new BaseRuntimeException(LoginConstant.FAILURE_CODE_3001, LoginConstant.FAILURE_MSG_3001);
-//        }
-//        SceneProEntity sceneProEntity = sceneProService.findBySceneNum(sceneNum);
-//        if (sceneProEntity == null) {
-//            throw new BaseRuntimeException(SceneConstant.FAILURE_CODE_5005, SceneConstant.FAILURE_MSG_5005);
-//        }
-//        if (sceneProEntity.getPayStatus() != 1) {
-//            throw new BaseRuntimeException(SceneConstant.FAILURE_CODE_5005, SceneConstant.FAILURE_MSG_5005);
-//        }
-//
-//        SceneProEditEntity editEntity = sceneProEditService.findByProId(sceneProEntity.getId());
-//        if (editEntity == null) {
-//            throw new BaseRuntimeException(SceneConstant.FAILURE_CODE_5005, SceneConstant.FAILURE_MSG_5005);
-//        }
-//
-//        if(!sceneKey.equals(editEntity.getSceneKey())){
-//            throw new BaseRuntimeException(SceneConstant.FAILURE_CODE_5021, SceneConstant.FAILURE_MSG_5021);
-//        }
-//
-//        return Result.success();
-//    }
-//
+    /**
+     * 根据场景密码打开场景
+     */
+    @PostMapping(value = "/check/key")
+    public ResultData checkKey(@RequestBody @Validated SceneCheckKeyParamVO param) throws Exception {
+        ScenePro scenePro = sceneProService.getOne(
+            new LambdaQueryWrapper<ScenePro>()
+                .eq(ScenePro::getNum, param.getNum())
+                .eq(ScenePro::getPayStatus,PayStatus.PAY.code()));
+        if (Objects.isNull(scenePro)) {
+            throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
+        }
+        SceneEditInfo sceneEditInfo = sceneEditInfoService.getBySceneProId(scenePro.getId());
+
+        if (Objects.isNull(sceneEditInfo)) {
+            throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
+        }
+
+        if(!param.getPassword().equals(sceneEditInfo.getScenePassword())){
+            throw new BusinessException(ErrorCode.FAILURE_CODE_5021);
+        }
+
+        return ResultData.ok();
+    }
+
 //    /**
 //     * 是否已登录
 //     * @return

+ 26 - 6
4dkankan-center-scene/src/main/java/com/fdkankan/scene/controller/TestController.java

@@ -9,6 +9,8 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.fdkankan.common.constant.ConstantFilePath;
 import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.response.ResultData;
+import com.fdkankan.common.util.CreateObjUtil;
+import com.fdkankan.common.util.FileUtils;
 import com.fdkankan.common.util.MatrixToImageWriterUtil;
 import com.fdkankan.common.util.SpringUtil;
 import com.fdkankan.common.util.StrExtUtil;
@@ -27,7 +29,6 @@ import com.fdkankan.scene.entity.Folder;
 import com.fdkankan.scene.listener.TestListener;
 import com.fdkankan.scene.service.IFolderService;
 import com.fdkankan.scene.service.IScene3dNumService;
-import com.fdkankan.scene.service.IScenePlusService;
 import com.fdkankan.scene.service.ISceneService;
 import com.fdkankan.scene.vo.SceneVO;
 import com.google.common.collect.Lists;
@@ -60,6 +61,8 @@ import java.util.UUID;
 @Slf4j
 public class TestController {
 
+
+
     @Autowired
     RedisUtil redisUtil;
 
@@ -88,13 +91,30 @@ public class TestController {
 
     @Autowired
     RedisLockUtil redisLockUtil;
-    @Autowired
-    IScenePlusService scenePlusService;
 
 
-    @GetMapping("/test")
-    public String test(String test) throws Exception {
-        scenePlusService.getScenePlusByNum("123");
+    @PostMapping("/test")
+    public String test(String path, String buildType) throws Exception {
+
+//        JSONObject dataJson = new JSONObject();
+//        dataJson.put("obj2txt", true);
+//        dataJson.put("split_type", "SPLIT_V6");
+//        dataJson.put("data_describe", "double spherical");
+//        dataJson.put("skybox_type", "SKYBOX_V5");
+//        FileUtils.writeFile(path + "/data.json", dataJson.toString());
+//
+//        if("V2".equals(buildType)){
+//            CreateObjUtil.objToTxt(path , "1");
+//        }
+//        if("V3".equals(buildType)){
+//            CreateObjUtil.build3dModel(path , "1");
+//        }
+
+        File file = new File(
+            "/mnt/data/06f6aa555/851814909602693120/4898cab06133_202106081015476130_ajk/results/upload.json");
+        log.info("文件="+file.getAbsolutePath());
+        log.info("文件是否存在"+file.exists());
+
         return "123";
 
     }

+ 15 - 2
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneEditInfoServiceImpl.java

@@ -997,8 +997,21 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
             //安居客算法运行
             log.info("安居客算法:开始建模——"+num);
             CreateObjUtil.build3dModel(target , "1");
-            if(!new File(target + File.separator + "results" + File.separator + "upload.json").exists()){
-                return ResultData.error(ErrorCode.FAILURE_CODE_5042);
+            String uploadJsonPath = target + File.separator + "results" + File.separator + "upload.json";
+            log.info("uploadJsonPath=" + uploadJsonPath);
+            //因为共享目录有延迟,这里循环检测算法是否计算完毕3次,每次隔五秒
+            int checkTimes = 1;
+            boolean exist = false;
+            do {
+                if(new File(uploadJsonPath).exists()){
+                    exist = true;
+                    break;
+                }
+                Thread.sleep(5000);
+                ++checkTimes;
+            }while (checkTimes <= 3);
+            if(!exist){
+                throw new BusinessException(ErrorCode.FAILURE_CODE_5042);
             }
 
             String zipPath = target + File.separator + "results/" + num + ".zip";

+ 20 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/vo/SceneCheckKeyParamVO.java

@@ -0,0 +1,20 @@
+package com.fdkankan.scene.vo;
+
+import javax.validation.constraints.NotBlank;
+import lombok.Data;
+
+/**
+ * <p>
+ * TODO
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/3/19
+ **/
+@Data
+public class SceneCheckKeyParamVO extends BaseSceneParamVO{
+
+    @NotBlank(message = "密码不能为空")
+    private String password;
+
+}