Browse Source

edit接口耗时打印日志测试

wuweihao 2 years ago
parent
commit
73cfba7625

+ 37 - 0
720yun_fd_manage/gis_common/src/main/java/com/gis/common/util/DateUtils.java

@@ -0,0 +1,37 @@
+package com.gis.common.util;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * Created by owen on 2022/10/27 0027 15:09
+ */
+@Slf4j
+public class DateUtils {
+
+    /**
+     * 耗时日志打印
+     * @param startTime
+     * @param unit 单位 s:秒, ms:毫秒(默认)
+     * @return
+     */
+    public static void spendTime(Long startTime, String unit, String desc){
+        long now = System.currentTimeMillis();
+        if ("s".equals(unit)){
+            log.info("当前节点耗时: {} s, 节点描述:{}", (now-startTime)/1000, desc);
+        } else {
+            log.info("当前节点耗时: {} ms, 节点描述:{}", now-startTime, desc);
+        }
+
+    }
+
+    public static void spendTime(Long startTime, String desc){
+       spendTime(startTime, null, desc);
+    }
+
+
+    public static void spendTime(Long startTime){
+        spendTime(startTime, null, null);
+    }
+
+
+}

+ 2 - 0
720yun_fd_manage/gis_common/src/main/java/com/gis/common/util/FileUtils.java

@@ -809,4 +809,6 @@ public class FileUtils {
         }
     }
 
+
+
 }

+ 51 - 3
720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/TestServiceImpl.java

@@ -119,6 +119,9 @@ public class TestServiceImpl implements TestService {
         return Result.success();
     }
 
+
+
+
     /**
      * 2022-10-21
      * @param isAll
@@ -135,6 +138,9 @@ public class TestServiceImpl implements TestService {
         return Result.success("更新完成");
     }
 
+
+
+
     /**
      * 2022-10-21
      * 作品创建tour.xml
@@ -150,7 +156,8 @@ public class TestServiceImpl implements TestService {
         int n = 0;
         for (WorkEntity workEntity : list) {
             String id = workEntity.getId();
-            String sceneCodes = workEntity.getSceneCodes();
+//            String sceneCodes = workEntity.getSceneCodes();
+            List<String> sceneCodes = downLoadSomeData(id);
             createTour(sceneCodes, id);
             n ++;
             log.info("更新完成第:{} 个, 作品码为:{}", n, id);
@@ -161,8 +168,49 @@ public class TestServiceImpl implements TestService {
         }
     }
 
-    private void createTour(String sceneCodes, String id) {
-        List<String> scenes = filterSceneCodesByPano(sceneCodes);
+    /**
+     * oss 下载ossSomeData
+     * 原因: 作品码里的场景数据有误的
+     * @param id
+     * @return
+     */
+    private List<String> downLoadSomeData(String id){
+        String someData = configConstant.ossDomain + configConstant.ossBasePath + id +"/someData.json";
+        String locSomeData = configConstant.serverBasePath + id +"/someData.json";
+        try {
+            HttpUtil.downloadFile(someData, locSomeData);
+        } catch (Exception e) {
+            log.warn("ossSomeData为空, 不需要更新, 作品码:{}, oss路径:{}", id, someData);
+            return new ArrayList<>();
+        }
+
+        // 保存oss
+        if (!FileUtil.isFile(locSomeData)) {
+            Result.failure(ErrorEnum.FAILURE_CODE_3103.code(), "服务器someData.json文件不存在");
+        }
+
+
+        String s = FileUtil.readString(locSomeData, "utf-8");
+        JSONObject jsonObject = JSONObject.parseObject(s);
+        JSONArray scenes = jsonObject.getJSONArray("scenes");
+
+        List<String> list = new ArrayList<>();
+        for (Object scene : scenes) {
+            JSONObject sub = JSONObject.parseObject(scene.toString());
+
+            String type = sub.getString("type");
+            // 过滤场景
+            if ("pano".equals(type)){
+                String sceneCode = sub.getString("sceneCode");
+                list.add(sceneCode);
+            }
+
+        }
+        return list;
+    }
+
+    private void createTour(List<String> scenes, String id) {
+//        List<String> scenes = filterSceneCodesByPano(sceneCodes);
         List<FodderEntity> list = fodderService.batchBySceneCodes(scenes);
 
         // 读取tour.xml模板

+ 15 - 2
720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/WorkServiceImpl.java

@@ -248,6 +248,8 @@ public class WorkServiceImpl extends IBaseStrServiceImpl<WorkEntity, String> imp
 
     @Override
     public Result edit(SomeDataDto param) {
+        long startTime = System.currentTimeMillis();
+
 
 
         // 检查是否是改用户的作品
@@ -260,17 +262,20 @@ public class WorkServiceImpl extends IBaseStrServiceImpl<WorkEntity, String> imp
             return Result.success();
         }
 
+
         // 3秒内防止重复提交
         redisUtil.set(editKey, param.toString(), 3, TimeUnit.SECONDS);
+        DateUtils.spendTime(startTime, "防重检查");
 
         WorkEntity entity = findByIdForUpdate(id);
+        DateUtils.spendTime(startTime, "forUpdate");
         if (entity == null) {
             log.error("作品已被删除,无法编辑, id: " + id);
             throw new BaseRuntimeException(ErrorEnum.FAILURE_SYS_3001.code(), "作品已被删除,无法编辑, id: " + id);
         }
         try {
             // 休眠0.5秒
-            Thread.sleep(500);
+            Thread.sleep(100);
         } catch (InterruptedException e) {
             e.printStackTrace();
         }
@@ -281,6 +286,7 @@ public class WorkServiceImpl extends IBaseStrServiceImpl<WorkEntity, String> imp
 
         // 更新作品信息
         boolean isEdit = editEntity(param, entity);
+        DateUtils.spendTime(startTime, "更新作品表完成");
         if (!isEdit) {
             return Result.failure(ErrorEnum.FAILURE_SYS_3001.code(), "对象不存在");
         }
@@ -289,9 +295,11 @@ public class WorkServiceImpl extends IBaseStrServiceImpl<WorkEntity, String> imp
         JSONObject someDataToJson = someDataToJson(param);
         // 保存someData.json
         editSomeData(param);
+        DateUtils.spendTime(startTime, "someData更新oss完成");
 
         // 更新跟目录tour.xml 2022-09-15
         updateTour(someDataToJson, id);
+        DateUtils.spendTime(startTime, "tour更新oss完成");
 
         return Result.success();
     }
@@ -302,6 +310,7 @@ public class WorkServiceImpl extends IBaseStrServiceImpl<WorkEntity, String> imp
      * @param id
      */
     private void updateTour(JSONObject someDataToJson, String id) {
+        long startTime = System.currentTimeMillis();
         String scenes = someDataToJson.getString("scenes");
         BaseRuntimeException.isBlank(scenes, null, "someData的场景码参数未空");
         List<FodderEntity> list = fodderService.batchBySceneCodes(getSceneCodesList(scenes));
@@ -322,6 +331,7 @@ public class WorkServiceImpl extends IBaseStrServiceImpl<WorkEntity, String> imp
         String tourPath = configConstant.serverBasePath + id + "/tour.xml";
         FileUtil.writeUtf8String(builder.toString(), tourPath);
         log.info("作品tour.xml写入完成");
+        DateUtils.spendTime(startTime, "生成tour");
 
         // 上传oss
         BaseRuntimeException.isTrue(!FileUtil.isFile(tourPath), ErrorEnum.FAILURE_CODE_3103.code(), "服务器tour.xml文件不存在");
@@ -329,6 +339,7 @@ public class WorkServiceImpl extends IBaseStrServiceImpl<WorkEntity, String> imp
         String ossKeyPath = configConstant.ossBasePath + id + "/tour.xml";
         aliyunOssUtil.upload(tourPath, ossKeyPath);
         log.info("tour.xml上传完成 : {}", ossKeyPath);
+        DateUtils.spendTime(startTime, "tour上传oss");
     }
 
 
@@ -437,6 +448,7 @@ public class WorkServiceImpl extends IBaseStrServiceImpl<WorkEntity, String> imp
      * 更新someData.json
      */
     private void editSomeData(SomeDataDto param) {
+        long startTime = System.currentTimeMillis();
 
         String id = param.getId();
         String baseSomeDathPath = id + "/someData.json";
@@ -448,12 +460,13 @@ public class WorkServiceImpl extends IBaseStrServiceImpl<WorkEntity, String> imp
         if (!FileUtil.isFile(saveSomeDataPath)) {
             Result.failure(ErrorEnum.FAILURE_CODE_3103.code(), "服务器someData.json文件不存在");
         }
-
+        DateUtils.spendTime(startTime, "someData写入服务器");
         String ossKeyPath = configConstant.ossBasePath + baseSomeDathPath;
         aliyunOssUtil.upload(saveSomeDataPath, ossKeyPath);
         log.info("someData.json 上传完成 : {}", ossKeyPath);
         String ossUrl = configConstant.ossDomain + ossKeyPath;
         log.info("ossUrl: {}", ossUrl);
+        DateUtils.spendTime(startTime, "someData上传oss");
 
     }
 

+ 4 - 0
720yun_fd_manage/gis_web/src/main/java/com/gis/web/controller/WorkController.java

@@ -56,6 +56,10 @@ public class WorkController extends BaseController {
     }
 
 
+    /**
+     * 创建一个基础someData.json
+     * @return
+     */
     @ApiOperation(value = "新增(空对象)", position = 1)
     @PostMapping("add")
     public Result<WorkEntity> add() {