Forráskód Böngészése

feat: 增加流水线和需求节点的日志功能

181250114 4 éve
szülő
commit
0a79362f25

+ 17 - 0
web/src/main/java/cn/seecoder/web/service/impl/pipeline/DeploymentServiceImpl.java

@@ -1,6 +1,8 @@
 package cn.seecoder.web.service.impl.pipeline;
 
 import cn.seecoder.api.k8s.K8sConstants;
+import cn.seecoder.common.util.LogTrackingUtil;
+import cn.seecoder.common.util.OpType;
 import cn.seecoder.web.dao.pipeline.DeploymentMapper;
 import cn.seecoder.web.dao.pipeline.PipelineRecordMapper;
 import cn.seecoder.web.dao.pipeline.PipelineMapper;
@@ -9,6 +11,7 @@ import cn.seecoder.web.model.po.pipeline.DeploymentPO;
 import cn.seecoder.web.model.po.pipeline.PipelineRecordPO;
 import cn.seecoder.web.model.po.pipeline.PipelinePO;
 import cn.seecoder.web.model.po.project.ProjectPO;
+import com.alibaba.fastjson.JSONObject;
 import io.kubernetes.client.openapi.models.V1DeploymentStatus;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.http.HttpStatus;
@@ -160,6 +163,20 @@ public class DeploymentServiceImpl implements DeploymentService {
             pipelineRecordMapper.update(record);
         }
         //ANA 日志需要打出部署流水线的信息
+        List<Integer> pipelineIds = new ArrayList<>();
+        pipelineIds.add(pipelineId);
+        PipelineRecordPO pipelineRecordPO = pipelineRecordMapper.selectPipelinesLatestRecord(pipelineIds);
+        try{
+            JSONObject object = new JSONObject();
+            object.put("record_id",pipelineRecordPO.getId());
+            object.put("pipeline_id",pipelineId);
+            object.put("user_id",userId);
+            object.put("type",record.getResult());
+            object.put("result",record.getResult());
+
+            String data = JSONObject.toJSONString(object);
+            LogTrackingUtil.log(data, OpType.DEPLOY_PIPELINE);
+        }catch (Exception e){}
     }
 
     @Override

+ 29 - 0
web/src/main/java/cn/seecoder/web/service/impl/pipeline/PipelineServiceImpl.java

@@ -2,17 +2,22 @@ package cn.seecoder.web.service.impl.pipeline;
 
 import cn.seecoder.common.exceptions.AccessDeniedException;
 import cn.seecoder.common.exceptions.ServiceException;
+import cn.seecoder.common.util.LogTrackingUtil;
+import cn.seecoder.common.util.OpType;
 import cn.seecoder.web.core.pipeline.PipelineException;
 import cn.seecoder.web.core.pipeline.template.PipelineTemplateTable;
+import cn.seecoder.web.dao.pipeline.DeploymentMapper;
 import cn.seecoder.web.dao.pipeline.PipelineMapper;
 import cn.seecoder.web.dao.pipeline.PipelineRecordMapper;
 import cn.seecoder.web.dao.user.UserMapper;
+import cn.seecoder.web.model.po.pipeline.DeploymentPO;
 import cn.seecoder.web.model.po.pipeline.PipelinePO;
 import cn.seecoder.web.model.po.pipeline.PipelineRecordPO;
 import cn.seecoder.web.model.po.user.UserPO;
 import cn.seecoder.web.model.vo.pipeline.*;
 import cn.seecoder.web.service.pipeline.DeploymentService;
 import cn.seecoder.web.service.pipeline.PipelineService;
+import com.alibaba.fastjson.JSONObject;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -38,6 +43,9 @@ public class PipelineServiceImpl implements PipelineService {
 
     private final DeploymentService deploymentService;
 
+    @Autowired
+    private DeploymentMapper deploymentMapper;
+
 
     @Autowired
     public PipelineServiceImpl(PipelineRecordMapper pipelineRecordMapper, PipelineMapper pipelineMapper, UserMapper userMapper, DeploymentService deploymentService) {
@@ -118,6 +126,17 @@ public class PipelineServiceImpl implements PipelineService {
         }
         pipelineMapper.insert(pipeline);
         //ANA 日志需要打出创建流水线的信息
+        PipelinePO pipelinePO = pipelineMapper.selectByNameAndProjectId(pipelineCreateVO.getName(),pipelineCreateVO.getProjectId());
+        try{
+            JSONObject object = new JSONObject();
+            object.put("pipeline_id",pipelinePO.getId());
+            object.put("project_id",pipelinePO.getProjectId());
+            object.put("project_name",pipelinePO.getName());
+
+            String data = JSONObject.toJSONString(object);
+            LogTrackingUtil.log(data, OpType.CREATE_PIPELINE);
+        }catch (Exception e){}
+
     }
 
     @Override
@@ -134,6 +153,16 @@ public class PipelineServiceImpl implements PipelineService {
         pipelineMapper.delete(pipelineId);
         deploymentService.delete(projectId,pipelineId);
         //ANA 日志需要打出被删除流水线的信息
+        DeploymentPO deploymentPO = deploymentMapper.selectByPipelineId(pipelineId);
+        try{
+            JSONObject object = new JSONObject();
+            object.put("pipeline_id",pipelineId);
+            object.put("project_id",projectId);
+            object.put("delete_deploy_id",deploymentPO.getId());
+
+            String data = JSONObject.toJSONString(object);
+            LogTrackingUtil.log(data, OpType.DELETE_PIPELINE);
+        }catch (Exception e){}
     }
 
     @Override

+ 63 - 1
web/src/main/java/cn/seecoder/web/service/impl/tree/TreeNodeServiceImpl.java

@@ -1,5 +1,7 @@
 package cn.seecoder.web.service.impl.tree;
 
+import cn.seecoder.common.util.LogTrackingUtil;
+import cn.seecoder.common.util.OpType;
 import cn.seecoder.web.dao.project.CommitMapper;
 import cn.seecoder.web.dao.tree.TreeNodeMapper;
 import cn.seecoder.web.dao.user.UserMapper;
@@ -12,6 +14,7 @@ import cn.seecoder.web.model.vo.tree.TreeNodeUpdateBasicVO;
 import cn.seecoder.web.model.vo.tree.TreeNodeVO;
 import cn.seecoder.web.service.tree.TreeNodeService;
 
+import com.alibaba.fastjson.JSONObject;
 import org.apache.http.HttpStatus;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -88,6 +91,22 @@ public class TreeNodeServiceImpl implements TreeNodeService {
             throw new ServiceException(503,"插入需求节点失败");
         }
         //ANA 日志需要打出创建需求节点的信息
+        try{
+            JSONObject object = new JSONObject();
+            object.put("node_id",res);
+            object.put("title",treeNodePO.getTitle());
+            object.put("project_id",treeNodePO.getProjectId());
+            object.put("user_id",treeNodePO.getProcessorId());
+            object.put("type",treeNodePO.getType());
+            object.put("priority",treeNodePO.getPriority());
+            object.put("state",treeNodePO.getState());
+            object.put("timeToTake",treeNodePO.getTimeToTake());
+            object.put("parent_id",treeNodePO.getParentId());
+            object.put("deep",treeNodePO.getDeep());
+
+            String data = JSONObject.toJSONString(object);
+            LogTrackingUtil.log(data, OpType.MODYFY_REQUIREMENT_TREENODE);
+        }catch (Exception e){}
     }
 
     @Override
@@ -103,18 +122,37 @@ public class TreeNodeServiceImpl implements TreeNodeService {
         }
         treeNodeMapper.update(treeNodePO);
         //ANA 日志需要打出更新需求节点的信息
+        try{
+            JSONObject object = new JSONObject();
+            object.put("node_id",treeNodePO.getId());
+            object.put("title",treeNodePO.getTitle());
+            object.put("project_id",treeNodePO.getProjectId());
+            object.put("user_id",treeNodePO.getProcessorId());
+            object.put("type",treeNodePO.getType());
+            object.put("priority",treeNodePO.getPriority());
+            object.put("state",treeNodePO.getState());
+            object.put("timeToTake",treeNodePO.getTimeToTake());
+            object.put("parent_id",treeNodePO.getParentId());
+            object.put("deep",treeNodePO.getDeep());
+
+            String data = JSONObject.toJSONString(object);
+            LogTrackingUtil.log(data, OpType.MODYFY_REQUIREMENT_TREENODE);
+        }catch (Exception e){}
     }
 
     @Override
     @Transactional
     public void deleteTreeNode(int nodeId) throws ServiceException {
         TreeNodePO po = treeNodeMapper.getTreeNodeById(nodeId);
+        List<Integer> nodes = new ArrayList<>();
+        nodes.add(nodeId);
         if (po != null && po.getParentId()!=null){
             Stack<TreeNodePO> trees = new Stack<TreeNodePO>();
             trees.push(po);
             //递归删除
             while (trees.size()!=0){
                 TreeNodePO toDelete = trees.pop();
+                nodes.add(toDelete.getId());
                 treeNodeMapper.deleteTreeNode(toDelete.getId());
                 List<TreeNodePO> childs = treeNodeMapper.getTreeNodesByParentId(toDelete.getId());
                 for (TreeNodePO child : childs){
@@ -125,6 +163,13 @@ public class TreeNodeServiceImpl implements TreeNodeService {
             throw new ServiceException(HttpStatus.SC_SERVICE_UNAVAILABLE, "根节点不可以被删除");
         }
         //ANA 日志需要打出删除需求节点的信息
+        try{
+            JSONObject object = new JSONObject();
+            object.put("node_ids",nodes);
+
+            String data = JSONObject.toJSONString(object);
+            LogTrackingUtil.log(data,OpType.DELETE_REQUIREMENT_TREENODE);
+        }catch (Exception e){}
     }
 
     /**
@@ -167,8 +212,25 @@ public class TreeNodeServiceImpl implements TreeNodeService {
                 .priority(PriorityEnum.MIDDLE)
                 .timeToTake(0L)
                 .build();
-        treeNodeMapper.insertTreeNode(son);
+        Integer res = treeNodeMapper.insertTreeNode(son);
         //ANA 日志需要打出创建需求节点的信息
+
+        try{
+            JSONObject object = new JSONObject();
+            object.put("node_id",res);
+            object.put("title",son.getTitle());
+            object.put("project_id",son.getProjectId());
+            object.put("user_id",son.getProcessorId());
+            object.put("type",son.getType());
+            object.put("priority",son.getPriority());
+            object.put("state",son.getState());
+            object.put("timeToTake",son.getTimeToTake());
+            object.put("parent_id",son.getParentId());
+            object.put("deep",son.getDeep());
+
+            String data = JSONObject.toJSONString(object);
+            LogTrackingUtil.log(data, OpType.MODYFY_REQUIREMENT_TREENODE);
+        }catch (Exception e){}
     }
 
     @Override