|
|
@@ -1,8 +1,10 @@
|
|
|
package com.seecoder.dataanalysis.logic.parser.impl;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONException;
|
|
|
+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.logic.parser.LogParsingService;
|
|
|
@@ -14,8 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.PostConstruct;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.Map;
|
|
|
+import java.util.*;
|
|
|
|
|
|
/**
|
|
|
* @author miaomuzhi
|
|
|
@@ -30,18 +31,21 @@ public class LogParsingServiceImpl implements LogParsingService {
|
|
|
private Map<Integer, String> opTypesTable;
|
|
|
|
|
|
private EvalExamRecordDao evalExamRecordDao;
|
|
|
-
|
|
|
private EvalExamInfoDao evalExamInfoDao;
|
|
|
+ private DevcloudInfoDao devcloudInfoDao;
|
|
|
|
|
|
@Autowired
|
|
|
public void setEvalExamRecordDao(EvalExamRecordDao evalExamRecordDao) {
|
|
|
this.evalExamRecordDao = evalExamRecordDao;
|
|
|
}
|
|
|
-
|
|
|
@Autowired
|
|
|
public void setEvalExamInfoDao(EvalExamInfoDao evalExamInfoDao) {
|
|
|
this.evalExamInfoDao = evalExamInfoDao;
|
|
|
}
|
|
|
+ @Autowired
|
|
|
+ public void setDevcloudInfoDao(DevcloudInfoDao devcloudInfoDao) {
|
|
|
+ this.devcloudInfoDao = devcloudInfoDao;
|
|
|
+ }
|
|
|
|
|
|
|
|
|
@Override
|
|
|
@@ -106,9 +110,106 @@ public class LogParsingServiceImpl implements LogParsingService {
|
|
|
if (className.equals(EvalExamInfoDTO.class.getName())) {
|
|
|
EvalExamInfo info = LogConvertor.convertToEvalExamInfoEntity((EvalExamInfoDTO) data);
|
|
|
evalExamInfoDao.save(info);
|
|
|
+
|
|
|
} else if (className.equals(EvalExamRecordDTO.class.getName())) {
|
|
|
EvalExamRecord record = LogConvertor.convertToEvalExamRecordEntity((EvalExamRecordDTO) data);
|
|
|
evalExamRecordDao.save(record);
|
|
|
+
|
|
|
+ } else if (className.equals(BugInfoDTO.class.getName())) {
|
|
|
+ BugInfoDTO bugInfoDTO = (BugInfoDTO) data;
|
|
|
+ BugInfo info = LogConvertor.convertToBugInfoEntity(bugInfoDTO);
|
|
|
+
|
|
|
+ Optional<DevcloudInfo> devcloudInfo = devcloudInfoDao.findById(bugInfoDTO.getProjectId());
|
|
|
+ if (devcloudInfo.isPresent()) {
|
|
|
+ devcloudInfo.get().getBugList().add(info);
|
|
|
+ devcloudInfoDao.save(devcloudInfo.get());
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if (className.equals(CommitInfoDTO.class.getName())) {
|
|
|
+ CommitInfoDTO commitInfoDTO = (CommitInfoDTO) data;
|
|
|
+ CommitInfo info = LogConvertor.convertToCommitInfoEntity(commitInfoDTO);
|
|
|
+
|
|
|
+ Optional<DevcloudInfo> devcloudInfo = devcloudInfoDao.findById(commitInfoDTO.getProjectId());
|
|
|
+ if (devcloudInfo.isPresent()) {
|
|
|
+ devcloudInfo.get().getCommitList().add(info);
|
|
|
+ devcloudInfoDao.save(devcloudInfo.get());
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if (className.equals(TestInfoDTO.class.getName())) {
|
|
|
+ TestInfoDTO testInfoDTO = (TestInfoDTO) data;
|
|
|
+ TestInfo info = LogConvertor.convertToTestInfoEntity(testInfoDTO);
|
|
|
+
|
|
|
+ Optional<DevcloudInfo> devcloudInfo = devcloudInfoDao.findById(testInfoDTO.getProjectId());
|
|
|
+ if (devcloudInfo.isPresent()) {
|
|
|
+ devcloudInfo.get().getTestList().add(info);
|
|
|
+ devcloudInfoDao.save(devcloudInfo.get());
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if (className.equals(PipelineCreationDTO.class.getName())) {
|
|
|
+ PipelineCreationDTO creationDTO = (PipelineCreationDTO) data;
|
|
|
+ Optional<DevcloudInfo> devcloudInfo = devcloudInfoDao.findById(creationDTO.getProjectId());
|
|
|
+ if (devcloudInfo.isPresent()) {
|
|
|
+ PipelineInfo pipelineInfo = new PipelineInfo();
|
|
|
+ pipelineInfo.setPipelineId(creationDTO.getPipelineId());
|
|
|
+ devcloudInfo.get().getPipelineList().add(pipelineInfo);
|
|
|
+ devcloudInfoDao.save(devcloudInfo.get());
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if (className.equals(PipelineDeletionDTO.class.getName())) {
|
|
|
+ PipelineDeletionDTO deletionDTO = (PipelineDeletionDTO) data;
|
|
|
+ Optional<DevcloudInfo> devcloudInfo = devcloudInfoDao.findById(deletionDTO.getProjectId());
|
|
|
+ //TODO 暂不处理删除部署
|
|
|
+
|
|
|
+ } 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;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if (className.equals(TreeNodeInfoDTO.class.getName())) {
|
|
|
+ TreeNodeInfoDTO nodeInfoDTO = (TreeNodeInfoDTO) data;
|
|
|
+ TreeNodeInfo info = LogConvertor.convertToTreeNodeInfoEntity(nodeInfoDTO);
|
|
|
+
|
|
|
+ Optional<DevcloudInfo> devcloudInfo = devcloudInfoDao.findById(nodeInfoDTO.getProjectId());
|
|
|
+ if (devcloudInfo.isPresent()) {
|
|
|
+ devcloudInfo.get().getTreeNodeList().add(info);
|
|
|
+ devcloudInfoDao.save(devcloudInfo.get());
|
|
|
+ }
|
|
|
+
|
|
|
+ } 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);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|