|
|
@@ -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);
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
|