ソースを参照

Merge branch 'master' of http://192.168.0.115:3000/lyhzzz/4dkankan-center-user

lyhzzz 3 年 前
コミット
bd31a96e5d

+ 1 - 1
src/main/java/com/fdkankan/ucenter/config/WebAppConfig.java

@@ -27,7 +27,7 @@ public class WebAppConfig implements WebMvcConfigurer {
 	@Override
 	public void addInterceptors(InterceptorRegistry registry) {
 		registry.addInterceptor(ucenterInterceptor).addPathPatterns("/**")
-				.excludePathPatterns("/**/sso/**","/app/**","/test/**");
+				.excludePathPatterns("/**/sso/**","/app/**","/test/**","/**/inner/**");
 
 		registry.addInterceptor(appInterceptor).addPathPatterns("/app/**");
 		WebMvcConfigurer.super.addInterceptors(registry);

+ 56 - 0
src/main/java/com/fdkankan/ucenter/controller/inner/InnerController.java

@@ -0,0 +1,56 @@
+package com.fdkankan.ucenter.controller.inner;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.fdkankan.common.util.JwtUtil;
+import com.fdkankan.redis.constant.RedisKey;
+import com.fdkankan.redis.util.RedisUtil;
+import com.fdkankan.ucenter.common.BaseController;
+import com.fdkankan.ucenter.common.Result;
+import com.fdkankan.ucenter.entity.ScenePro;
+import com.fdkankan.ucenter.entity.User;
+import com.fdkankan.ucenter.service.ISceneProService;
+import com.fdkankan.ucenter.service.IUserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 内部接口控制器
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/8/19
+ **/
+@RestController
+@RequestMapping("/inner")
+public class InnerController extends BaseController {
+
+    @Autowired
+    private ISceneProService sceneProService;
+    @Autowired
+    private IUserService userService;
+    @Autowired
+    private RedisUtil redisUtil;
+
+    /**
+     * 下载全景图数据
+     */
+    @GetMapping("/createTokenByNum")
+    public Result createTokenByNum(String num) throws Exception{
+
+        ScenePro sceneProEntity = sceneProService.getByNum(num);
+        User user = userService.getById(sceneProEntity.getUserId());
+        String token = JwtUtil.createJWT(-1, user.getUserName(), "user");
+        String redisKey = String.format(RedisKey.TOKEN_V3,token);
+        redisUtil.set(redisKey, JSON.toJSONString(user), RedisKey.EXPIRE_TIME_2_HOUR);
+
+        JSONObject object = new JSONObject();
+        object.put("token", token);
+
+        return Result.success(object);
+    }
+
+}

+ 26 - 20
src/main/java/com/fdkankan/ucenter/service/impl/SceneUpgradeToV4Service.java

@@ -1,5 +1,6 @@
 package com.fdkankan.ucenter.service.impl;
 
+import cn.hutool.core.exceptions.ExceptionUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
@@ -30,6 +31,7 @@ import com.fdkankan.ucenter.service.ISceneProEditService;
 import com.fdkankan.ucenter.service.ISceneProService;
 import com.fdkankan.ucenter.service.ISceneRepairLogService;
 import com.fdkankan.ucenter.service.ISceneUpgradeToV4Service;
+import java.util.Calendar;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Objects;
@@ -84,24 +86,23 @@ public class SceneUpgradeToV4Service implements ISceneUpgradeToV4Service {
             return Result.failure(ErrorCode.FAILURE_CODE_7019.code(), ErrorCode.FAILURE_CODE_7019.message());
         }
 
+        SceneRepairLog sceneRepairLog = null;
         try {
             //查询升级日志,如果已经升级成功,不允许重复升级
-            SceneRepairLog sceneRepairLog = sceneRepairLogService.getOne(
+            sceneRepairLog = sceneRepairLogService.getOne(
                 new LambdaQueryWrapper<SceneRepairLog>()
-                    .eq(SceneRepairLog::getNum, num));
+                    .eq(SceneRepairLog::getNum, num)
+                    .orderByDesc(SceneRepairLog::getId)
+                    .last("limit 1"));
             if(Objects.nonNull(sceneRepairLog)){
                 if(sceneRepairLog.getState() == 0){
-                    redisLockUtil.unlockLua(lockKey);
                     return Result.failure(ErrorCode.FAILURE_CODE_7019.code(), ErrorCode.FAILURE_CODE_7019.message());
                 }
-//                if(!param.isReUpgrade()){
-//                    if(sceneRepairLog.getState() == 1){
-//                        redisLockUtil.unlockLua(lockKey);
-//                        return ResultData.error(ErrorCode.FAILURE_CODE_7020);
-//                    }
-//                }
             }
 
+            //写入升级日志
+            this.upgradeLog(null, num, 0, null);
+
             //同步到scenePlus、scenePlus
             sceneUpgradeMapper.deleteScenePlus(scenePro.getId());
             sceneUpgradeMapper.transferScenePlus(scenePro.getId());
@@ -109,25 +110,18 @@ public class SceneUpgradeToV4Service implements ISceneUpgradeToV4Service {
             String sceneKind = scenePro.getSceneScheme() == 3 ? SceneKind.FACE.code():SceneKind.TILES.code();
             sceneUpgradeMapper.transferScenePlusExt(scenePro.getId(), sceneKind);
 
-            //国际版需要兼容切片图
-            ScenePlus scenePlus = scenePlusService.getById(scenePro.getId());
-            ScenePlusExt scenePlusExt = scenePlusExtService.getByPlusId(scenePlus.getId());
-            if(scenePlusExt.getSceneScheme() == 3){
-                scenePlusExt.setSceneResolution(SceneResolution.TILES.code());
-                scenePlusExtService.updateById(scenePlusExt);
-            }
-
-            //发送mq
-            rabbitMqProducer.sendByWorkQueue(upgradeToV4, scenePro.getId());
-
             //写入进度条
             Map<String, Integer> progress = new HashMap<>();
             progress.put("status", 0);
             progress.put("progress", 0);
             redisUtil.set(RedisKey.scene_upgrade_progress_num, JSON.toJSONString(progress));
 
+            //发送mq
+            rabbitMqProducer.sendByWorkQueue(upgradeToV4, scenePro.getId());
+
         }catch (Exception e){
             log.error("场景升级失败", e);
+            this.upgradeLog(sceneRepairLog, num, 2, ExceptionUtil.stacktraceToString(e, 3000));
             return Result.failure(ErrorCode.FAILURE_CODE_7021.code(), ErrorCode.FAILURE_CODE_7021.message());
         }
 
@@ -146,4 +140,16 @@ public class SceneUpgradeToV4Service implements ISceneUpgradeToV4Service {
         }
         return Result.success(progressBean);
     }
+
+    private void upgradeLog(SceneRepairLog sceneRepairLog, String num, int status, String reason){
+        //写入升级日志
+        if(Objects.isNull(sceneRepairLog)){
+            sceneRepairLog = new SceneRepairLog();
+            sceneRepairLog.setNum(num);
+        }
+        sceneRepairLog.setState(status);
+        sceneRepairLog.setReason(reason);
+        sceneRepairLog.setCreateTime(Calendar.getInstance().getTime());
+        sceneRepairLogService.saveOrUpdate(sceneRepairLog);
+    }
 }

+ 3 - 3
src/main/java/com/fdkankan/ucenter/task/TaskService.java

@@ -43,10 +43,10 @@ public class TaskService {
     }
 
     private void delFile(File[] files){
-        if(files == null && files.length >0){
-            return;
-        }
         for (File f : files) {
+            if(files == null && files.length >0){
+                return;
+            }
             if(f==null || !f.getName().contains(".")){
                 continue;
             }