lyhzzz пре 6 месеци
родитељ
комит
57e67dd364

+ 7 - 0
src/main/java/com/fdkankan/manage/controller/SceneController.java

@@ -199,5 +199,12 @@ public class SceneController {
         }
         return ResultData.ok();
     }
+
+
+    @GetMapping("/getSceneBuildLog/{num}")
+    public ResultData getSceneBuildLog(@PathVariable String num){
+        scenePlusService.getSceneBuildLog(num);
+        return ResultData.ok();
+    }
 }
 

+ 6 - 0
src/main/java/com/fdkankan/manage/mapper/IScenePlusMapper.java

@@ -1,5 +1,7 @@
 package com.fdkankan.manage.mapper;
 
+import cn.hutool.json.JSONObject;
+import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.manage.entity.ScenePlus;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -32,4 +34,8 @@ public interface IScenePlusMapper extends BaseMapper<ScenePlus> {
     Page<UserShareSceneVo> sceneAuthPageList(Page<UserShareSceneVo> objectPage, UserShareParam param);
 
     Page<UserAuthSceneVo> sceneAuthVoPageList(Page<UserShareSceneVo> objectPage, UserShareParam param);
+
+    JSONArray selectBuildProcessLog(@Param("num")String num);
+
+    JSONArray selectBuildLog(@Param("num")String num);
 }

+ 2 - 0
src/main/java/com/fdkankan/manage/service/IScenePlusService.java

@@ -36,4 +36,6 @@ public interface IScenePlusService extends IService<ScenePlus> {
     Page<UserAuthSceneVo> sceneAuthVoPageList(Page<UserShareSceneVo> objectPage, UserShareParam param);
 
     List<ScenePlus> getByNumList(List<String> numList);
+
+    void getSceneBuildLog(String num);
 }

+ 31 - 0
src/main/java/com/fdkankan/manage/service/impl/ScenePlusServiceImpl.java

@@ -1,5 +1,8 @@
 package com.fdkankan.manage.service.impl;
 
+import cn.hutool.core.io.FileUtil;
+import cn.hutool.json.JSONObject;
+import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -9,6 +12,7 @@ import com.fdkankan.manage.entity.*;
 import com.fdkankan.manage.mapper.IScenePlusMapper;
 import com.fdkankan.manage.service.*;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.manage.util.ShellUtil;
 import com.fdkankan.manage.vo.request.SceneParam;
 import com.fdkankan.manage.vo.response.GroupByCount;
 import com.fdkankan.manage.vo.response.UserAuthSceneVo;
@@ -16,6 +20,8 @@ import com.fdkankan.manage.vo.response.UserShareSceneVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.io.File;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashMap;
@@ -95,4 +101,29 @@ public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlu
         wrapper.in(ScenePlus::getNum,numList);
         return this.list(wrapper);
     }
+
+    /**
+     * 场景错误日志需要打包:
+     * 表:
+     * select * from t_scene_build_process_log where num =
+     * select * from t_build_log where scene_num =
+     * 日志文件:
+     * oss目录:
+     * /oss/4dkankan/build_log/<num>(这个目录整个打包)
+     */
+
+    @Override
+    public void getSceneBuildLog(String num) {
+        JSONArray listProcessLog =  this.getBaseMapper().selectBuildProcessLog(num);
+        JSONArray listBuildLog =  this.getBaseMapper().selectBuildLog(num);
+        String buildLogPath = "/oss/4dkankan/build_log/" + num;
+
+        if(!listProcessLog.isEmpty()){
+            FileUtil.writeString(listProcessLog.toJSONString(),new File(buildLogPath +"/process.log"), StandardCharsets.UTF_8);
+        }
+        if(!listBuildLog.isEmpty()){
+            FileUtil.writeString(listBuildLog.toJSONString(),new File(buildLogPath +"/build.log"), StandardCharsets.UTF_8);
+        }
+        ShellUtil.zip(buildLogPath,buildLogPath+"/"+num+".zip");
+    }
 }

+ 3 - 0
src/main/java/com/fdkankan/manage/service/impl/SceneProServiceImpl.java

@@ -513,6 +513,9 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
 
     @Override
     public Object sceneCount() {
+        if( !manageConfig.getNumList().isEmpty()){
+           return 1;
+        }
         SysUser byId = sysUserService.getById(Long.valueOf(StpUtil.getLoginId().toString()));
         JyUser jyUser = jyUserService.getBySysId(byId.getId());
         LambdaQueryWrapper<ScenePlus> wrapper = new LambdaQueryWrapper<>();

+ 10 - 0
src/main/java/com/fdkankan/manage/util/ShellUtil.java

@@ -113,6 +113,16 @@ public class ShellUtil {
         log.info("解压zip完毕:" + command);
     }
 
+    public static void zip(String dataPath, String zipPath) {
+        log.info("打包zip开始");
+        if(!new File(zipPath).getParentFile().exists()){
+            return;
+        }
+        String command = "zip -r -m  " + zipPath + "  " + dataPath;
+        execCmd(command);
+        log.info("解压zip完毕:" + command);
+    }
+
     /**
      * oss文件上传命令 bash /opt/ossutil/fyun-upload.sh {bucket} {srcPath} {destPath} {fyunType} {opType}
      * opType: file or folder

+ 8 - 0
src/main/resources/mapper/manage/ScenePlusMapper.xml

@@ -80,4 +80,12 @@
         order by s.create_time desc ,s.id desc
 
     </select>
+
+    <select id="selectBuildProcessLog" resultType="com.alibaba.fastjson.JSONArray">
+        select * from t_scene_build_process_log where num =#{num}
+    </select>
+
+    <select id="selectBuildLog" resultType="com.alibaba.fastjson.JSONArray">
+        select * from t_build_log where scene_num =#{num}
+    </select>
 </mapper>