Browse Source

fix: 修改日志解析部分

181250114 4 years ago
parent
commit
44c9ad73db

+ 17 - 17
src/main/java/com/seecoder/dataanalysis/data/entity/devcloud/PipelineInfo.java

@@ -23,23 +23,23 @@ public class PipelineInfo {
     @Field("pipeline_id")
     private Integer pipelineId;
 
-    /**
-     * 用户 ID
-     */
-    @Field("user_id")
-    private Integer userId;
-
-    /**
-     * 成功数量
-     */
-    @Field("success")
-    private Integer success;
-
-    /**
-     * 总数量
-     */
-    @Field("total")
-    private Integer total;
+//    /**
+//     * 用户 ID
+//     */
+//    @Field("user_id")
+//    private Integer userId;
+//
+//    /**
+//     * 成功数量
+//     */
+//    @Field("success")
+//    private Integer success;
+//
+//    /**
+//     * 总数量
+//     */
+//    @Field("total")
+//    private Integer total;
 
     /**
      * 记录在该流水线上的部署信息

+ 108 - 63
src/main/java/com/seecoder/dataanalysis/logic/parser/impl/LogParsingServiceImpl.java

@@ -1,12 +1,14 @@
 package com.seecoder.dataanalysis.logic.parser.impl;
 
 import com.alibaba.fastjson.JSONException;
+import com.seecoder.dataanalysis.analysis.DevcloudDataAnalysisService;
 import com.seecoder.dataanalysis.data.dao.devcloud.DevcloudInfoDao;
 import com.seecoder.dataanalysis.data.dao.eval.EvalExamInfoDao;
 import com.seecoder.dataanalysis.data.dao.eval.EvalExamRecordDao;
 import com.seecoder.dataanalysis.data.entity.devcloud.*;
 import com.seecoder.dataanalysis.data.entity.eval.EvalExamInfo;
 import com.seecoder.dataanalysis.data.entity.eval.EvalExamRecord;
+import com.seecoder.dataanalysis.data.entity.eval.User;
 import com.seecoder.dataanalysis.logic.parser.LogParsingService;
 import com.seecoder.dataanalysis.logic.parser.ParsingException;
 import com.seecoder.dataanalysis.logic.parser.convertor.LogConvertor;
@@ -27,6 +29,9 @@ import java.util.*;
 @Service
 public class LogParsingServiceImpl implements LogParsingService {
 
+    @Autowired
+    private DevcloudDataAnalysisService devcloudDataAnalysisService;
+
     /**
      * 根据日志元数据操作类型(op_type)查找对应的类名
      */
@@ -101,7 +106,7 @@ public class LogParsingServiceImpl implements LogParsingService {
         opTypesTable.put(1, EvalExamInfoDTO.class.getName());  //诗句更新数据
         opTypesTable.put(2, EvalExamRecordDTO.class.getName());  //学生提交试卷
 
-        opTypesTable.put(100, BugInfoDTO.class.getName());  //修改缺陷信息
+        opTypesTable.put(100, BugInfoDTO.class.getName());  //新建/修改缺陷信息
         opTypesTable.put(101, CommitInfoDTO.class.getName());  //用户进行commit
         opTypesTable.put(102, TestInfoDTO.class.getName());  //用户创建并执行接口测试
         opTypesTable.put(103, PipelineCreationDTO.class.getName());  //用户创建流水线
@@ -109,6 +114,10 @@ public class LogParsingServiceImpl implements LogParsingService {
         opTypesTable.put(105, PipelineDeployDTO.class.getName());  //用户部署流水线
         opTypesTable.put(106, TreeNodeInfoDTO.class.getName());  //用户插入/更新节点
         opTypesTable.put(107, TreeNodeDeletionDTO.class.getName());  //用户删除节点
+        opTypesTable.put(108, AddProjectDTO.class.getName());//将成员加入项目
+        opTypesTable.put(109, RelateProjectDTO.class.getName());//项目A和项目B关联
+        opTypesTable.put(110, ProjectDTO.class.getName());//创建项目
+        opTypesTable.put(111, UserDTO.class.getName());//创建用户
     }
 
 
@@ -121,17 +130,20 @@ public class LogParsingServiceImpl implements LogParsingService {
             EvalExamRecord record = LogConvertor.convertToEvalExamRecordEntity((EvalExamRecordDTO) data);
             evalExamRecordDao.save(record);
 
+        //Devcloud op_type100-111
         } else if (className.equals(BugInfoDTO.class.getName())) {
             BugInfoDTO bugInfoDTO = (BugInfoDTO) data;
             if (bugInfoDTO.getProjectId() == null) {
                 throw new ParsingException(Messages.PROJECT_ID_NOT_FOUND, 3, data.toString());
             }
 
-            BugInfo info = LogConvertor.convertToBugInfoEntity(bugInfoDTO);
-            Optional<DevcloudInfo> devcloudInfo = devcloudInfoDao.findById(bugInfoDTO.getProjectId());
-            DevcloudInfo devcloudInfoEntity = devcloudInfo.orElseGet(() -> createDevCloudInfo(bugInfoDTO.getProjectId()));
-            devcloudInfoEntity.getBugList().add(info);
-            devcloudInfoDao.save(devcloudInfoEntity);
+            devcloudDataAnalysisService.updateDevInfoType100(bugInfoDTO);
+
+//            BugInfo info = LogConvertor.convertToBugInfoEntity(bugInfoDTO);
+//            Optional<DevcloudInfo> devcloudInfo = devcloudInfoDao.findById(bugInfoDTO.getProjectId());
+//            DevcloudInfo devcloudInfoEntity = devcloudInfo.orElseGet(() -> createDevCloudInfo(bugInfoDTO.getProjectId()));
+//            devcloudInfoEntity.getBugList().add(info);
+//            devcloudInfoDao.save(devcloudInfoEntity);
 
         } else if (className.equals(CommitInfoDTO.class.getName())) {
             CommitInfoDTO commitInfoDTO = (CommitInfoDTO) data;
@@ -139,11 +151,13 @@ public class LogParsingServiceImpl implements LogParsingService {
                 throw new ParsingException(Messages.PROJECT_ID_NOT_FOUND, 3, data.toString());
             }
 
-            CommitInfo info = LogConvertor.convertToCommitInfoEntity(commitInfoDTO);
-            Optional<DevcloudInfo> devcloudInfo = devcloudInfoDao.findById(commitInfoDTO.getProjectId());
-            DevcloudInfo devcloudInfoEntity = devcloudInfo.orElseGet(() -> createDevCloudInfo(commitInfoDTO.getProjectId()));
-            devcloudInfoEntity.getCommitList().add(info);
-            devcloudInfoDao.save(devcloudInfoEntity);
+            devcloudDataAnalysisService.updateDevInfoType101(commitInfoDTO);
+
+//            CommitInfo info = LogConvertor.convertToCommitInfoEntity(commitInfoDTO);
+//            Optional<DevcloudInfo> devcloudInfo = devcloudInfoDao.findById(commitInfoDTO.getProjectId());
+//            DevcloudInfo devcloudInfoEntity = devcloudInfo.orElseGet(() -> createDevCloudInfo(commitInfoDTO.getProjectId()));
+//            devcloudInfoEntity.getCommitList().add(info);
+//            devcloudInfoDao.save(devcloudInfoEntity);
 
         } else if (className.equals(TestInfoDTO.class.getName())) {
             TestInfoDTO testInfoDTO = (TestInfoDTO) data;
@@ -151,11 +165,13 @@ public class LogParsingServiceImpl implements LogParsingService {
                 throw new ParsingException(Messages.PROJECT_ID_NOT_FOUND, 3, data.toString());
             }
 
-            TestInfo info = LogConvertor.convertToTestInfoEntity(testInfoDTO);
-            Optional<DevcloudInfo> devcloudInfo = devcloudInfoDao.findById(testInfoDTO.getProjectId());
-            DevcloudInfo devcloudInfoEntity = devcloudInfo.orElseGet(() -> createDevCloudInfo(testInfoDTO.getProjectId()));
-            devcloudInfoEntity.getTestList().add(info);
-            devcloudInfoDao.save(devcloudInfoEntity);
+            devcloudDataAnalysisService.updateDevInfoType102(testInfoDTO);
+
+//            TestInfo info = LogConvertor.convertToTestInfoEntity(testInfoDTO);
+//            Optional<DevcloudInfo> devcloudInfo = devcloudInfoDao.findById(testInfoDTO.getProjectId());
+//            DevcloudInfo devcloudInfoEntity = devcloudInfo.orElseGet(() -> createDevCloudInfo(testInfoDTO.getProjectId()));
+//            devcloudInfoEntity.getTestList().add(info);
+//            devcloudInfoDao.save(devcloudInfoEntity);
 
         } else if (className.equals(PipelineCreationDTO.class.getName())) {
             PipelineCreationDTO creationDTO = (PipelineCreationDTO) data;
@@ -163,39 +179,44 @@ public class LogParsingServiceImpl implements LogParsingService {
                 throw new ParsingException(Messages.PROJECT_ID_NOT_FOUND, 3, data.toString());
             }
 
-            Optional<DevcloudInfo> devcloudInfo = devcloudInfoDao.findById(creationDTO.getProjectId());
-            DevcloudInfo devcloudInfoEntity = devcloudInfo.orElseGet(() -> createDevCloudInfo(creationDTO.getProjectId()));
-            PipelineInfo pipelineInfo = new PipelineInfo();
-            pipelineInfo.setPipelineId(creationDTO.getPipelineId());
-            devcloudInfoEntity.getPipelineList().add(pipelineInfo);
-            devcloudInfoDao.save(devcloudInfoEntity);
+            devcloudDataAnalysisService.updateDevInfoType103(creationDTO);
+
+//            Optional<DevcloudInfo> devcloudInfo = devcloudInfoDao.findById(creationDTO.getProjectId());
+//            DevcloudInfo devcloudInfoEntity = devcloudInfo.orElseGet(() -> createDevCloudInfo(creationDTO.getProjectId()));
+//            PipelineInfo pipelineInfo = new PipelineInfo();
+//            pipelineInfo.setPipelineId(creationDTO.getPipelineId());
+//            devcloudInfoEntity.getPipelineList().add(pipelineInfo);
+//            devcloudInfoDao.save(devcloudInfoEntity);
 
         } else if (className.equals(PipelineDeletionDTO.class.getName())) {
             PipelineDeletionDTO deletionDTO = (PipelineDeletionDTO) data;
-            Optional<DevcloudInfo> devcloudInfo = devcloudInfoDao.findById(deletionDTO.getProjectId());
-            //TODO 暂不处理删除部署
+//            Optional<DevcloudInfo> devcloudInfo = devcloudInfoDao.findById(deletionDTO.getProjectId());
+//            //TODO 暂不处理删除部署
+            devcloudDataAnalysisService.updateDevInfoType104(deletionDTO);
 
         } else if (className.equals(PipelineDeployDTO.class.getName())) {
             PipelineDeployDTO deployDTO = (PipelineDeployDTO) data;
 
-            boolean foundPipeline = false;
-            for (DevcloudInfo devcloudInfo: devcloudInfoDao.findAll()) {
-                for (PipelineInfo info: devcloudInfo.getPipelineList()) {
-                    if (info.getPipelineId().equals(deployDTO.getPipelineId())) {
-                        info.setUserId(deployDTO.getUserId());  // 更新用户id
-                        int successInc = (deployDTO.getSuccess() ? 1 : 0);
-                        info.setSuccess(info.getSuccess() + successInc);
-                        info.setTotal(info.getTotal() + 1);
-                        foundPipeline = true;
-                        break;
-                    }
-                }
-
-                if (foundPipeline) {
-                    devcloudInfoDao.save(devcloudInfo);
-                    break;
-                }
-            }
+            devcloudDataAnalysisService.updateDevInfoType105(deployDTO);
+
+//            boolean foundPipeline = false;
+//            for (DevcloudInfo devcloudInfo: devcloudInfoDao.findAll()) {
+//                for (PipelineInfo info: devcloudInfo.getPipelineList()) {
+//                    if (info.getPipelineId().equals(deployDTO.getPipelineId())) {
+//                        info.setUserId(deployDTO.getUserId());  // 更新用户id
+//                        int successInc = (deployDTO.getSuccess() ? 1 : 0);
+//                        info.setSuccess(info.getSuccess() + successInc);
+//                        info.setTotal(info.getTotal() + 1);
+//                        foundPipeline = true;
+//                        break;
+//                    }
+//                }
+//
+//                if (foundPipeline) {
+//                    devcloudInfoDao.save(devcloudInfo);
+//                    break;
+//                }
+//            }
 
         } else if (className.equals(TreeNodeInfoDTO.class.getName())) {
             TreeNodeInfoDTO nodeInfoDTO = (TreeNodeInfoDTO) data;
@@ -203,30 +224,54 @@ public class LogParsingServiceImpl implements LogParsingService {
                 throw new ParsingException(Messages.PROJECT_ID_NOT_FOUND, 3, data.toString());
             }
 
-            TreeNodeInfo info = LogConvertor.convertToTreeNodeInfoEntity(nodeInfoDTO);
-            Optional<DevcloudInfo> devcloudInfo = devcloudInfoDao.findById(nodeInfoDTO.getProjectId());
-            DevcloudInfo devcloudInfoEntity = devcloudInfo.orElseGet(() -> createDevCloudInfo(nodeInfoDTO.getProjectId()));
-            devcloudInfoEntity.getTreeNodeList().add(info);
-            devcloudInfoDao.save(devcloudInfoEntity);
+            devcloudDataAnalysisService.updateDevInfoType106(nodeInfoDTO);
 
-        }  else if (className.equals(TreeNodeDeletionDTO.class.getName())) {
+//            TreeNodeInfo info = LogConvertor.convertToTreeNodeInfoEntity(nodeInfoDTO);
+//            Optional<DevcloudInfo> devcloudInfo = devcloudInfoDao.findById(nodeInfoDTO.getProjectId());
+//            DevcloudInfo devcloudInfoEntity = devcloudInfo.orElseGet(() -> createDevCloudInfo(nodeInfoDTO.getProjectId()));
+//            devcloudInfoEntity.getTreeNodeList().add(info);
+//            devcloudInfoDao.save(devcloudInfoEntity);
+
+        } else if (className.equals(TreeNodeDeletionDTO.class.getName())) {
             TreeNodeDeletionDTO deletionDTO = (TreeNodeDeletionDTO) data;
 
-            for (DevcloudInfo devcloudInfo: devcloudInfoDao.findAll()) {
-                boolean updated = false;
-                List<TreeNodeInfo> deleteList = new ArrayList<>();
-                for (TreeNodeInfo info: devcloudInfo.getTreeNodeList()) {
-                    if (deletionDTO.getNodeIds().contains(info.getNodeId())) {
-                        deleteList.add(info);
-                        updated = true;
-                    }
-                }
-
-                if (updated) {
-                    devcloudInfo.getTreeNodeList().removeAll(deleteList);
-                    devcloudInfoDao.save(devcloudInfo);
-                }
-            }
+            devcloudDataAnalysisService.updateDevInfoType107(deletionDTO);
+
+//            for (DevcloudInfo devcloudInfo: devcloudInfoDao.findAll()) {
+//                boolean updated = false;
+//                List<TreeNodeInfo> deleteList = new ArrayList<>();
+//                for (TreeNodeInfo info: devcloudInfo.getTreeNodeList()) {
+//                    if (deletionDTO.getNodeIds().contains(info.getNodeId())) {
+//                        deleteList.add(info);
+//                        updated = true;
+//                    }
+//                }
+//
+//                if (updated) {
+//                    devcloudInfo.getTreeNodeList().removeAll(deleteList);
+//                    devcloudInfoDao.save(devcloudInfo);
+//                }
+//            }
+        } else if (className.equals(AddProjectDTO.class.getName())){
+            AddProjectDTO addProjectDTO = (AddProjectDTO) data;
+
+            devcloudDataAnalysisService.updateDevInfoType108(addProjectDTO);
+
+        } else if (className.equals(RelateProjectDTO.class.getName())){
+            RelateProjectDTO relateProjectDTO = (RelateProjectDTO) data;
+
+            devcloudDataAnalysisService.updateDevInfoType109(relateProjectDTO);
+
+        } else if (className.equals(ProjectDTO.class.getName())){
+            ProjectDTO projectDTO = (ProjectDTO) data;
+
+            devcloudDataAnalysisService.updateDevInfoType110(projectDTO);
+
+        } else if (className.equals(UserDTO.class.getName())){
+            UserDTO userDTO = (UserDTO) data;
+
+            devcloudDataAnalysisService.updateDevInfoType111(userDTO);
+
         }
     }