Jelajahi Sumber

refactor: commit pipeline功能放入core文件夹,功能测试表名修改,删除Tree log功能

370774330@qq.com 5 tahun lalu
induk
melakukan
2fa19a1081
38 mengubah file dengan 120 tambahan dan 244 penghapusan
  1. 0 16
      web/src/main/java/cn/seecoder/web/aop/TreeLogging.java
  2. 0 65
      web/src/main/java/cn/seecoder/web/aspect/TreeLoggingAspect.java
  3. 2 2
      web/src/main/java/cn/seecoder/web/controller/gitlab/HookController.java
  4. 5 1
      web/src/main/java/cn/seecoder/web/core/commit/CommitResolver.java
  5. 1 1
      web/src/main/java/cn/seecoder/web/core/commit/model/CommitRule.java
  6. 1 1
      web/src/main/java/cn/seecoder/web/core/commit/model/CommitState.java
  7. 1 1
      web/src/main/java/cn/seecoder/web/core/commit/model/CommitType.java
  8. 1 1
      web/src/main/java/cn/seecoder/web/core/pipeline/Context.java
  9. 1 1
      web/src/main/java/cn/seecoder/web/core/pipeline/Handler.java
  10. 1 1
      web/src/main/java/cn/seecoder/web/core/pipeline/Pipeline.java
  11. 1 1
      web/src/main/java/cn/seecoder/web/core/pipeline/PipelineException.java
  12. 4 4
      web/src/main/java/cn/seecoder/web/core/pipeline/PipelineFactory.java
  13. 4 4
      web/src/main/java/cn/seecoder/web/core/pipeline/config/HandlerConfigTable.java
  14. 4 4
      web/src/main/java/cn/seecoder/web/core/pipeline/handler/AbstractHandler.java
  15. 4 4
      web/src/main/java/cn/seecoder/web/core/pipeline/handler/ApiTestHandler.java
  16. 4 4
      web/src/main/java/cn/seecoder/web/core/pipeline/handler/JavaImageBuildHandler.java
  17. 3 3
      web/src/main/java/cn/seecoder/web/core/pipeline/handler/K8sDeploymentHandler.java
  18. 3 3
      web/src/main/java/cn/seecoder/web/core/pipeline/handler/K8sIngressHandler.java
  19. 3 3
      web/src/main/java/cn/seecoder/web/core/pipeline/handler/K8sNamespaceHandler.java
  20. 3 3
      web/src/main/java/cn/seecoder/web/core/pipeline/handler/K8sServiceHandler.java
  21. 4 4
      web/src/main/java/cn/seecoder/web/core/pipeline/handler/NodeImageBuildHandler.java
  22. 2 2
      web/src/main/java/cn/seecoder/web/core/pipeline/inspector/PipelineInspector.java
  23. 2 2
      web/src/main/java/cn/seecoder/web/core/pipeline/inspector/PipelineInspectorFactory.java
  24. 5 5
      web/src/main/java/cn/seecoder/web/core/pipeline/pipeline/PipelineImpl.java
  25. 2 2
      web/src/main/java/cn/seecoder/web/core/pipeline/template/PipelineTemplateTable.java
  26. 3 3
      web/src/main/java/cn/seecoder/web/dao/project/FuncTestCaseMapper.java
  27. 3 3
      web/src/main/java/cn/seecoder/web/dao/project/FuncTestStepMapper.java
  28. 5 5
      web/src/main/java/cn/seecoder/web/service/impl/pipeline/DeploymentServiceImpl.java
  29. 2 2
      web/src/main/java/cn/seecoder/web/service/impl/pipeline/PipelineServiceImpl.java
  30. 1 1
      web/src/main/java/cn/seecoder/web/service/impl/project/BugListServiceImpl.java
  31. 15 15
      web/src/main/java/cn/seecoder/web/service/impl/project/TestCaseServiceImpl.java
  32. 1 6
      web/src/main/java/cn/seecoder/web/service/impl/tree/TreeNodeServiceImpl.java
  33. 1 1
      web/src/main/java/cn/seecoder/web/service/project/BugListService.java
  34. 1 1
      web/src/main/java/cn/seecoder/web/service/tree/TreeNodeService.java
  35. 0 26
      web/src/main/resources/SQLScripts/api_test.sql
  36. 1 0
      web/src/main/resources/sql/devcloud_stage.sql
  37. 25 42
      web/src/main/resources/sql/init.sql
  38. 1 1
      web/src/test/java/cn/seecoder/web/dao/pipeline/PipelineMapperTest.java

+ 0 - 16
web/src/main/java/cn/seecoder/web/aop/TreeLogging.java

@@ -1,16 +0,0 @@
-package cn.seecoder.web.aop;
-
-import cn.seecoder.web.model.enums.OperationEnum;
-
-import java.lang.annotation.*;
-
-/**
- * 以注解方式标记日志插入
- * 要求:参数里带有TreeNodeVO
- */
-@Target({ElementType.PARAMETER, ElementType.METHOD})
-@Retention(RetentionPolicy.RUNTIME)
-@Documented
-public @interface TreeLogging {
-    public OperationEnum value();
-}

+ 0 - 65
web/src/main/java/cn/seecoder/web/aspect/TreeLoggingAspect.java

@@ -1,65 +0,0 @@
-package cn.seecoder.web.aspect;
-
-import cn.seecoder.web.aop.TreeLogging;
-import cn.seecoder.web.dao.tree.TreeLogMapper;
-import cn.seecoder.web.model.po.tree.TreeLogPO;
-import cn.seecoder.web.model.po.user.UserPO;
-import cn.seecoder.web.model.vo.tree.TreeNodeVO;
-import cn.seecoder.web.service.user.UserService;
-import org.aspectj.lang.JoinPoint;
-import org.aspectj.lang.annotation.AfterReturning;
-import org.aspectj.lang.annotation.Aspect;
-import org.aspectj.lang.annotation.Pointcut;
-import org.aspectj.lang.reflect.MethodSignature;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-import cn.seecoder.web.model.vo.Response;
-
-import java.lang.reflect.Method;
-
-/**
- * 树操作日志类切面,关联@TreeLogging注解
- */
-@Aspect
-@Component
-public class TreeLoggingAspect {
-    @Autowired
-    TreeLogMapper treeLogMapper;
-
-    @Pointcut("@annotation(cn.seecoder.web.aop.TreeLogging)")
-    public void logPointCut() {
-
-    }
-
-    @AfterReturning(pointcut = "logPointCut()", returning = "result")
-    public void doAfterReturning(JoinPoint joinPoint, Response result) {
-        // 只处理成功的情况
-        if (result.getCode().equals(200)) {
-            TreeLogPO log = new TreeLogPO();
-            //从切面织入点处通过反射机制获取织入点处的方法
-            MethodSignature signature = (MethodSignature) joinPoint.getSignature();
-            //获取切入点所在的方法
-            Method method = signature.getMethod();
-            //获取注解,提取操作类型属性
-            TreeLogging logging = method.getAnnotation(TreeLogging.class);
-            if (logging != null) {
-                log.setOperation(logging.value());
-            }
-            //请求的参数
-            Object[] args = joinPoint.getArgs();
-            for (Object arg : args) {
-                if (arg instanceof TreeNodeVO) {
-                    TreeNodeVO node = (TreeNodeVO) arg;
-                    log.setTreeId(node.getId());
-                    UserPO userPO = UserService.loginUser();
-                    log.setUserId(userPO.getId());
-                    log.setUserName(userPO.getUsername());
-                    log.setTime(null);
-                    System.out.println(log);
-                    treeLogMapper.insertTreeLog(log,"time");
-                    break;
-                }
-            }
-        }
-    }
-}

+ 2 - 2
web/src/main/java/cn/seecoder/web/controller/gitlab/HookController.java

@@ -1,8 +1,8 @@
 package cn.seecoder.web.controller.gitlab;
 
 import cn.seecoder.common.exceptions.ServiceException;
-import cn.seecoder.web.commit.CommitResolver;
-import cn.seecoder.web.commit.CommitRule;
+import cn.seecoder.web.core.commit.CommitResolver;
+import cn.seecoder.web.core.commit.model.CommitRule;
 import cn.seecoder.web.model.enums.CommitRelatedType;
 import cn.seecoder.web.model.po.project.CommitPO;
 import cn.seecoder.web.model.vo.GitWebHookVO;

+ 5 - 1
web/src/main/java/cn/seecoder/web/commit/CommitResolver.java → web/src/main/java/cn/seecoder/web/core/commit/CommitResolver.java

@@ -1,4 +1,8 @@
-package cn.seecoder.web.commit;
+package cn.seecoder.web.core.commit;
+
+import cn.seecoder.web.core.commit.model.CommitRule;
+import cn.seecoder.web.core.commit.model.CommitState;
+import cn.seecoder.web.core.commit.model.CommitType;
 
 /**
  * @author PuHong Weng

+ 1 - 1
web/src/main/java/cn/seecoder/web/commit/CommitRule.java → web/src/main/java/cn/seecoder/web/core/commit/model/CommitRule.java

@@ -1,4 +1,4 @@
-package cn.seecoder.web.commit;
+package cn.seecoder.web.core.commit.model;
 
 import lombok.AllArgsConstructor;
 import lombok.Data;

+ 1 - 1
web/src/main/java/cn/seecoder/web/commit/CommitState.java → web/src/main/java/cn/seecoder/web/core/commit/model/CommitState.java

@@ -1,4 +1,4 @@
-package cn.seecoder.web.commit;
+package cn.seecoder.web.core.commit.model;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 

+ 1 - 1
web/src/main/java/cn/seecoder/web/commit/CommitType.java → web/src/main/java/cn/seecoder/web/core/commit/model/CommitType.java

@@ -1,4 +1,4 @@
-package cn.seecoder.web.commit;
+package cn.seecoder.web.core.commit.model;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 

+ 1 - 1
web/src/main/java/cn/seecoder/web/pipeline/Context.java → web/src/main/java/cn/seecoder/web/core/pipeline/Context.java

@@ -1,4 +1,4 @@
-package cn.seecoder.web.pipeline;
+package cn.seecoder.web.core.pipeline;
 
 import cn.seecoder.api.ApplicationProperties;
 import lombok.AllArgsConstructor;

+ 1 - 1
web/src/main/java/cn/seecoder/web/pipeline/Handler.java → web/src/main/java/cn/seecoder/web/core/pipeline/Handler.java

@@ -1,4 +1,4 @@
-package cn.seecoder.web.pipeline;
+package cn.seecoder.web.core.pipeline;
 
 /**
  * @author PuHong Weng

+ 1 - 1
web/src/main/java/cn/seecoder/web/pipeline/Pipeline.java → web/src/main/java/cn/seecoder/web/core/pipeline/Pipeline.java

@@ -1,4 +1,4 @@
-package cn.seecoder.web.pipeline;
+package cn.seecoder.web.core.pipeline;
 
 /**
  * @author PuHong Weng

+ 1 - 1
web/src/main/java/cn/seecoder/web/pipeline/PipelineException.java → web/src/main/java/cn/seecoder/web/core/pipeline/PipelineException.java

@@ -1,4 +1,4 @@
-package cn.seecoder.web.pipeline;
+package cn.seecoder.web.core.pipeline;
 
 /**
  * @author PuHong Weng

+ 4 - 4
web/src/main/java/cn/seecoder/web/pipeline/PipelineFactory.java → web/src/main/java/cn/seecoder/web/core/pipeline/PipelineFactory.java

@@ -1,13 +1,13 @@
-package cn.seecoder.web.pipeline;
+package cn.seecoder.web.core.pipeline;
 
-import cn.seecoder.web.pipeline.handler.AbstractHandler;
+import cn.seecoder.web.core.pipeline.handler.AbstractHandler;
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import org.apache.http.HttpStatus;
-import cn.seecoder.web.pipeline.config.HandlerConfigTable;
-import cn.seecoder.web.pipeline.pipeline.PipelineImpl;
+import cn.seecoder.web.core.pipeline.config.HandlerConfigTable;
+import cn.seecoder.web.core.pipeline.pipeline.PipelineImpl;
 
 import java.util.List;
 

+ 4 - 4
web/src/main/java/cn/seecoder/web/pipeline/config/HandlerConfigTable.java → web/src/main/java/cn/seecoder/web/core/pipeline/config/HandlerConfigTable.java

@@ -1,8 +1,8 @@
-package cn.seecoder.web.pipeline.config;
+package cn.seecoder.web.core.pipeline.config;
 
-import cn.seecoder.web.pipeline.Handler;
-import cn.seecoder.web.pipeline.PipelineException;
-import cn.seecoder.web.pipeline.handler.*;
+import cn.seecoder.web.core.pipeline.Handler;
+import cn.seecoder.web.core.pipeline.PipelineException;
+import cn.seecoder.web.core.pipeline.handler.*;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import lombok.extern.slf4j.Slf4j;

+ 4 - 4
web/src/main/java/cn/seecoder/web/pipeline/handler/AbstractHandler.java → web/src/main/java/cn/seecoder/web/core/pipeline/handler/AbstractHandler.java

@@ -1,9 +1,9 @@
-package cn.seecoder.web.pipeline.handler;
+package cn.seecoder.web.core.pipeline.handler;
 
 
-import cn.seecoder.web.pipeline.Context;
-import cn.seecoder.web.pipeline.Handler;
-import cn.seecoder.web.pipeline.PipelineException;
+import cn.seecoder.web.core.pipeline.Context;
+import cn.seecoder.web.core.pipeline.Handler;
+import cn.seecoder.web.core.pipeline.PipelineException;
 import lombok.Data;
 
 /**

+ 4 - 4
web/src/main/java/cn/seecoder/web/pipeline/handler/ApiTestHandler.java → web/src/main/java/cn/seecoder/web/core/pipeline/handler/ApiTestHandler.java

@@ -1,8 +1,8 @@
-package cn.seecoder.web.pipeline.handler;
+package cn.seecoder.web.core.pipeline.handler;
 
 import cn.seecoder.common.util.SpringUtil;
-import cn.seecoder.web.pipeline.Context;
-import cn.seecoder.web.pipeline.PipelineException;
+import cn.seecoder.web.core.pipeline.Context;
+import cn.seecoder.web.core.pipeline.PipelineException;
 import cn.seecoder.web.service.APITest.APITestService;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.core.type.TypeReference;
@@ -14,7 +14,7 @@ import org.apache.http.HttpStatus;
 
 import java.util.List;
 
-import static cn.seecoder.web.pipeline.PipelineException.API_TEST_ID_RESOLVE_ERROR;
+import static cn.seecoder.web.core.pipeline.PipelineException.API_TEST_ID_RESOLVE_ERROR;
 
 
 /**

+ 4 - 4
web/src/main/java/cn/seecoder/web/pipeline/handler/JavaImageBuildHandler.java → web/src/main/java/cn/seecoder/web/core/pipeline/handler/JavaImageBuildHandler.java

@@ -1,8 +1,8 @@
-package cn.seecoder.web.pipeline.handler;
+package cn.seecoder.web.core.pipeline.handler;
 
-import cn.seecoder.web.pipeline.Context;
-import cn.seecoder.web.pipeline.PipelineException;
-import cn.seecoder.web.pipeline.template.PipelineTemplateTable;
+import cn.seecoder.web.core.pipeline.Context;
+import cn.seecoder.web.core.pipeline.PipelineException;
+import cn.seecoder.web.core.pipeline.template.PipelineTemplateTable;
 import com.spotify.docker.client.ProgressHandler;
 import com.spotify.docker.client.exceptions.DockerException;
 import com.spotify.docker.client.messages.ProgressMessage;

+ 3 - 3
web/src/main/java/cn/seecoder/web/pipeline/handler/K8sDeploymentHandler.java → web/src/main/java/cn/seecoder/web/core/pipeline/handler/K8sDeploymentHandler.java

@@ -1,7 +1,7 @@
-package cn.seecoder.web.pipeline.handler;
+package cn.seecoder.web.core.pipeline.handler;
 
-import cn.seecoder.web.pipeline.Context;
-import cn.seecoder.web.pipeline.PipelineException;
+import cn.seecoder.web.core.pipeline.Context;
+import cn.seecoder.web.core.pipeline.PipelineException;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.http.HttpStatus;
 import cn.seecoder.api.ApplicationProperties;

+ 3 - 3
web/src/main/java/cn/seecoder/web/pipeline/handler/K8sIngressHandler.java → web/src/main/java/cn/seecoder/web/core/pipeline/handler/K8sIngressHandler.java

@@ -1,7 +1,7 @@
-package cn.seecoder.web.pipeline.handler;
+package cn.seecoder.web.core.pipeline.handler;
 
-import cn.seecoder.web.pipeline.Context;
-import cn.seecoder.web.pipeline.PipelineException;
+import cn.seecoder.web.core.pipeline.Context;
+import cn.seecoder.web.core.pipeline.PipelineException;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.http.HttpStatus;
 import cn.seecoder.api.ApplicationProperties;

+ 3 - 3
web/src/main/java/cn/seecoder/web/pipeline/handler/K8sNamespaceHandler.java → web/src/main/java/cn/seecoder/web/core/pipeline/handler/K8sNamespaceHandler.java

@@ -1,7 +1,7 @@
-package cn.seecoder.web.pipeline.handler;
+package cn.seecoder.web.core.pipeline.handler;
 
-import cn.seecoder.web.pipeline.Context;
-import cn.seecoder.web.pipeline.PipelineException;
+import cn.seecoder.web.core.pipeline.Context;
+import cn.seecoder.web.core.pipeline.PipelineException;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.http.HttpStatus;
 import cn.seecoder.api.k8s.NamespaceApi;

+ 3 - 3
web/src/main/java/cn/seecoder/web/pipeline/handler/K8sServiceHandler.java → web/src/main/java/cn/seecoder/web/core/pipeline/handler/K8sServiceHandler.java

@@ -1,7 +1,7 @@
-package cn.seecoder.web.pipeline.handler;
+package cn.seecoder.web.core.pipeline.handler;
 
-import cn.seecoder.web.pipeline.Context;
-import cn.seecoder.web.pipeline.PipelineException;
+import cn.seecoder.web.core.pipeline.Context;
+import cn.seecoder.web.core.pipeline.PipelineException;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.http.HttpStatus;
 import cn.seecoder.api.k8s.K8sConstants;

+ 4 - 4
web/src/main/java/cn/seecoder/web/pipeline/handler/NodeImageBuildHandler.java → web/src/main/java/cn/seecoder/web/core/pipeline/handler/NodeImageBuildHandler.java

@@ -1,8 +1,8 @@
-package cn.seecoder.web.pipeline.handler;
+package cn.seecoder.web.core.pipeline.handler;
 
-import cn.seecoder.web.pipeline.Context;
-import cn.seecoder.web.pipeline.PipelineException;
-import cn.seecoder.web.pipeline.template.PipelineTemplateTable;
+import cn.seecoder.web.core.pipeline.Context;
+import cn.seecoder.web.core.pipeline.PipelineException;
+import cn.seecoder.web.core.pipeline.template.PipelineTemplateTable;
 import com.spotify.docker.client.ProgressHandler;
 import com.spotify.docker.client.exceptions.DockerException;
 import com.spotify.docker.client.messages.ProgressMessage;

+ 2 - 2
web/src/main/java/cn/seecoder/web/pipeline/inspector/PipelineInspector.java → web/src/main/java/cn/seecoder/web/core/pipeline/inspector/PipelineInspector.java

@@ -1,8 +1,8 @@
-package cn.seecoder.web.pipeline.inspector;
+package cn.seecoder.web.core.pipeline.inspector;
 
 import cn.seecoder.api.k8s.*;
 import cn.seecoder.api.k8s.model.*;
-import cn.seecoder.web.pipeline.Context;
+import cn.seecoder.web.core.pipeline.Context;
 import io.kubernetes.client.openapi.models.V1DeploymentStatus;
 import cn.seecoder.common.util.SpringUtil;
 

+ 2 - 2
web/src/main/java/cn/seecoder/web/pipeline/inspector/PipelineInspectorFactory.java → web/src/main/java/cn/seecoder/web/core/pipeline/inspector/PipelineInspectorFactory.java

@@ -1,6 +1,6 @@
-package cn.seecoder.web.pipeline.inspector;
+package cn.seecoder.web.core.pipeline.inspector;
 
-import cn.seecoder.web.pipeline.Context;
+import cn.seecoder.web.core.pipeline.Context;
 
 /**
  * @author PuHong Weng

+ 5 - 5
web/src/main/java/cn/seecoder/web/pipeline/pipeline/PipelineImpl.java → web/src/main/java/cn/seecoder/web/core/pipeline/pipeline/PipelineImpl.java

@@ -1,9 +1,9 @@
-package cn.seecoder.web.pipeline.pipeline;
+package cn.seecoder.web.core.pipeline.pipeline;
 
-import cn.seecoder.web.pipeline.Context;
-import cn.seecoder.web.pipeline.Pipeline;
-import cn.seecoder.web.pipeline.Handler;
-import cn.seecoder.web.pipeline.PipelineException;
+import cn.seecoder.web.core.pipeline.Context;
+import cn.seecoder.web.core.pipeline.Pipeline;
+import cn.seecoder.web.core.pipeline.Handler;
+import cn.seecoder.web.core.pipeline.PipelineException;
 
 /**
  * @author PuHong Weng

+ 2 - 2
web/src/main/java/cn/seecoder/web/pipeline/template/PipelineTemplateTable.java → web/src/main/java/cn/seecoder/web/core/pipeline/template/PipelineTemplateTable.java

@@ -1,9 +1,9 @@
-package cn.seecoder.web.pipeline.template;
+package cn.seecoder.web.core.pipeline.template;
 
 import org.apache.commons.io.IOUtils;
 import org.apache.http.HttpStatus;
 import org.springframework.core.io.ClassPathResource;
-import cn.seecoder.web.pipeline.PipelineException;
+import cn.seecoder.web.core.pipeline.PipelineException;
 
 import java.io.IOException;
 import java.nio.file.Files;

+ 3 - 3
web/src/main/java/cn/seecoder/web/dao/project/TestCaseMapper.java → web/src/main/java/cn/seecoder/web/dao/project/FuncTestCaseMapper.java

@@ -13,7 +13,7 @@ import java.util.List;
  * @description:
  */
 @Repository
-public interface TestCaseMapper {
+public interface FuncTestCaseMapper {
 
     @InsertProvider(type = GeneralInsertUpdateSqlProvider.class, method = "insert")
     @Options(useGeneratedKeys = true, keyProperty = "param1.id", keyColumn = "id")
@@ -22,9 +22,9 @@ public interface TestCaseMapper {
     @UpdateProvider(type= GeneralInsertUpdateSqlProvider.class, method="updateById")
     int update(TestCasePO testCasePO);
 
-    @Delete("delete from test_case where id = #{id}")
+    @Delete("delete from func_test_case where id = #{id}")
     int delete(Integer id);
 
-    @Select("select * from test_case where project_id = #{projectId}")
+    @Select("select * from func_test_case where project_id = #{projectId}")
     List<TestCasePO> selectByProjectId(Integer projectId);
 }

+ 3 - 3
web/src/main/java/cn/seecoder/web/dao/project/TestStepMapper.java → web/src/main/java/cn/seecoder/web/dao/project/FuncTestStepMapper.java

@@ -13,7 +13,7 @@ import java.util.List;
  * @description:
  */
 @Repository
-public interface TestStepMapper {
+public interface FuncTestStepMapper {
 
     @InsertProvider(type = GeneralInsertUpdateSqlProvider.class, method = "insert")
     @Options(useGeneratedKeys = true, keyProperty = "param1.id", keyColumn = "id")
@@ -22,9 +22,9 @@ public interface TestStepMapper {
     @UpdateProvider(type= GeneralInsertUpdateSqlProvider.class, method="updateById")
     int update(TestStepPO testStepPO);
 
-    @Delete("delete from test_step where id = #{id}")
+    @Delete("delete from func_test_step where id = #{id}")
     int delete(Integer id);
 
-    @Select("select * from test_step where test_case_id = #{testCaseId}")
+    @Select("select * from func_test_step where test_case_id = #{testCaseId}")
     List<TestStepPO> selectByProjectId(Integer testCaseId);
 }

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

@@ -16,11 +16,11 @@ import org.springframework.stereotype.Service;
 import cn.seecoder.api.ApplicationProperties;
 import cn.seecoder.common.exceptions.AccessDeniedException;
 import cn.seecoder.common.exceptions.ServiceException;
-import cn.seecoder.web.pipeline.Pipeline;
-import cn.seecoder.web.pipeline.PipelineException;
-import cn.seecoder.web.pipeline.PipelineFactory;
-import cn.seecoder.web.pipeline.inspector.PipelineInspector;
-import cn.seecoder.web.pipeline.inspector.PipelineInspectorFactory;
+import cn.seecoder.web.core.pipeline.Pipeline;
+import cn.seecoder.web.core.pipeline.PipelineException;
+import cn.seecoder.web.core.pipeline.PipelineFactory;
+import cn.seecoder.web.core.pipeline.inspector.PipelineInspector;
+import cn.seecoder.web.core.pipeline.inspector.PipelineInspectorFactory;
 import cn.seecoder.web.model.vo.pipeline.DeploymentInfoVO;
 import cn.seecoder.web.service.pipeline.DeploymentService;
 

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

@@ -1,8 +1,8 @@
 package cn.seecoder.web.service.impl.pipeline;
 
 import cn.seecoder.common.exceptions.ServiceException;
-import cn.seecoder.web.pipeline.PipelineException;
-import cn.seecoder.web.pipeline.template.PipelineTemplateTable;
+import cn.seecoder.web.core.pipeline.PipelineException;
+import cn.seecoder.web.core.pipeline.template.PipelineTemplateTable;
 import cn.seecoder.web.dao.pipeline.PipelineHistoryMapper;
 import cn.seecoder.web.dao.pipeline.PipelineMapper;
 import cn.seecoder.web.dao.user.UserMapper;

+ 1 - 1
web/src/main/java/cn/seecoder/web/service/impl/project/BugListServiceImpl.java

@@ -7,7 +7,7 @@ import cn.seecoder.web.service.project.BugListService;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import cn.seecoder.web.commit.CommitState;
+import cn.seecoder.web.core.commit.model.CommitState;
 import cn.seecoder.web.dao.project.CommitMapper;
 import cn.seecoder.web.dao.user.UserMapper;
 import cn.seecoder.web.model.po.project.BugListPO;

+ 15 - 15
web/src/main/java/cn/seecoder/web/service/impl/project/TestCaseServiceImpl.java

@@ -1,11 +1,11 @@
 package cn.seecoder.web.service.impl.project;
 
-import cn.seecoder.web.dao.project.TestCaseMapper;
+import cn.seecoder.web.dao.project.FuncTestCaseMapper;
 import cn.seecoder.web.service.project.TestCaseService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import cn.seecoder.web.dao.project.TestStepMapper;
+import cn.seecoder.web.dao.project.FuncTestStepMapper;
 import cn.seecoder.web.model.po.project.TestCasePO;
 import cn.seecoder.web.model.po.project.TestStepPO;
 import cn.seecoder.web.model.vo.project.TestCaseVO;
@@ -22,19 +22,19 @@ import java.util.stream.Collectors;
 @Service
 public class TestCaseServiceImpl implements TestCaseService {
 
-    private final TestCaseMapper testCaseMapper;
+    private final FuncTestCaseMapper funcTestCaseMapper;
 
-    private final TestStepMapper testStepMapper;
+    private final FuncTestStepMapper funcTestStepMapper;
 
     @Autowired
-    public TestCaseServiceImpl(TestCaseMapper testCaseMapper, TestStepMapper testStepMapper) {
-        this.testCaseMapper = testCaseMapper;
-        this.testStepMapper = testStepMapper;
+    public TestCaseServiceImpl(FuncTestCaseMapper funcTestCaseMapper, FuncTestStepMapper funcTestStepMapper) {
+        this.funcTestCaseMapper = funcTestCaseMapper;
+        this.funcTestStepMapper = funcTestStepMapper;
     }
 
     @Override
     public List<TestCaseVO> getTestCases(Integer projectId) {
-        return testCaseMapper.selectByProjectId(projectId).stream()
+        return funcTestCaseMapper.selectByProjectId(projectId).stream()
                 .map(TestCaseVO::new).collect(Collectors.toList());
     }
 
@@ -46,42 +46,42 @@ public class TestCaseServiceImpl implements TestCaseService {
     @Override
     @Transactional
     public void createTestCase(Integer projectId, String title) {
-        testCaseMapper.insert(TestCasePO.builder().projectId(projectId).title(title).build());
+        funcTestCaseMapper.insert(TestCasePO.builder().projectId(projectId).title(title).build());
     }
 
     @Override
     @Transactional
     public void updateTestCaseTitle(Integer testCaseId, String title) {
-        testCaseMapper.update(TestCasePO.builder().id(testCaseId).title(title).build());
+        funcTestCaseMapper.update(TestCasePO.builder().id(testCaseId).title(title).build());
     }
 
     @Override
     @Transactional
     public void updateTestCaseState(Integer testCaseId, Boolean pass) {
-        testCaseMapper.update(TestCasePO.builder().id(testCaseId).pass(pass).build());
+        funcTestCaseMapper.update(TestCasePO.builder().id(testCaseId).pass(pass).build());
     }
 
     @Override
     @Transactional
     public void deleteTestCase(Integer testCaseId) {
-        testCaseMapper.delete(testCaseId);
+        funcTestCaseMapper.delete(testCaseId);
     }
 
     @Override
     @Transactional
     public void createEmptyTestStep(Integer testCaseId) {
-        testStepMapper.insert(TestStepPO.builder().description("").testCaseId(testCaseId).build());
+        funcTestStepMapper.insert(TestStepPO.builder().description("").testCaseId(testCaseId).build());
     }
 
     @Override
     @Transactional
     public void updateTestStepDescription(Integer testStepId, String description) {
-        testStepMapper.insert(TestStepPO.builder().description(description).id(testStepId).build());
+        funcTestStepMapper.insert(TestStepPO.builder().description(description).id(testStepId).build());
     }
 
     @Override
     @Transactional
     public void deleteTestStep(Integer testStepId) {
-        testStepMapper.delete(testStepId);
+        funcTestStepMapper.delete(testStepId);
     }
 }

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

@@ -1,7 +1,5 @@
 package cn.seecoder.web.service.impl.tree;
 
-
-import cn.seecoder.web.aop.TreeLogging;
 import cn.seecoder.web.dao.project.CommitMapper;
 import cn.seecoder.web.dao.tree.TreeNodeMapper;
 import cn.seecoder.web.dao.user.UserMapper;
@@ -19,7 +17,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import cn.seecoder.common.exceptions.ServiceException;
 import cn.seecoder.common.util.DateUtil;
-import cn.seecoder.web.commit.CommitState;
+import cn.seecoder.web.core.commit.model.CommitState;
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -66,7 +64,6 @@ public class TreeNodeServiceImpl implements TreeNodeService {
 
     @Override
     @Transactional
-    @TreeLogging(OperationEnum.START)
     public void insertTreeNode(TreeNodeCreateVO treeNodeCreateVO) throws ServiceException {
 
         TreeNodePO treeNodePO = new TreeNodePO();
@@ -80,7 +77,6 @@ public class TreeNodeServiceImpl implements TreeNodeService {
 
     @Override
     @Transactional
-    @TreeLogging(OperationEnum.UPDATE)
     public void updateTreeNode(TreeNodeUpdateBasicVO treeNodeUpdateBasicVO) {
         TreeNodePO treeNodePO = new TreeNodePO();
         BeanUtils.copyProperties(treeNodeUpdateBasicVO,treeNodePO);
@@ -102,7 +98,6 @@ public class TreeNodeServiceImpl implements TreeNodeService {
      */
     @Override
     @Transactional
-    @TreeLogging(OperationEnum.START)
     public void insertTreeNodeByFatherNode(int fatherId) throws ServiceException {
         SimpleDateFormat format = DateUtil.getSimpleDateFormat();
         TreeNodePO father = treeNodeMapper.getTreeNodeById(fatherId);

+ 1 - 1
web/src/main/java/cn/seecoder/web/service/project/BugListService.java

@@ -1,6 +1,6 @@
 package cn.seecoder.web.service.project;
 
-import cn.seecoder.web.commit.CommitState;
+import cn.seecoder.web.core.commit.model.CommitState;
 import cn.seecoder.web.model.vo.project.BugListCreateVO;
 import cn.seecoder.web.model.vo.project.BugListUpdateBasicVO;
 import cn.seecoder.web.model.vo.project.BugListVO;

+ 1 - 1
web/src/main/java/cn/seecoder/web/service/tree/TreeNodeService.java

@@ -7,7 +7,7 @@ import cn.seecoder.web.model.vo.tree.TreeNodeCreateVO;
 import cn.seecoder.web.model.vo.tree.TreeNodeUpdateBasicVO;
 import cn.seecoder.web.model.vo.tree.TreeNodeVO;
 import cn.seecoder.common.exceptions.ServiceException;
-import cn.seecoder.web.commit.CommitState;
+import cn.seecoder.web.core.commit.model.CommitState;
 
 import java.util.List;
 

+ 0 - 26
web/src/main/resources/SQLScripts/api_test.sql

@@ -1,26 +0,0 @@
-SET NAMES utf8mb4;
-SET FOREIGN_KEY_CHECKS = 0;
-
--- ----------------------------
--- Table structure for api_test
--- ----------------------------
-create table if not exists devcloud.api_test;
-CREATE TABLE `api_test` (
-  `test_id` int(11) NOT NULL AUTO_INCREMENT,
-  `test_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
-  `project_id` int(11) NOT NULL,
-  `create_time` datetime NOT NULL,
-  `username` varchar(255) NOT NULL,
-  `url` varchar(255) NOT NULL,
-  `params` json DEFAULT NULL,
-  `qps` int(11) NOT NULL,
-  `state` varchar(255) NOT NULL,
-  `execute_time` datetime DEFAULT NULL,
-  `success` int(11) NOT NULL DEFAULT '0',
-  `failure` int(11) NOT NULL DEFAULT '0',
-  `time_list` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
-  `method` varchar(255) NOT NULL,
-  PRIMARY KEY (`test_id`) USING BTREE
-) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-
-SET FOREIGN_KEY_CHECKS = 1;

+ 1 - 0
web/src/main/resources/sql/devcloud_stage.sql

@@ -4,3 +4,4 @@ insert into devcloud.stage (id, title, description, name) values (3, 'kubernetes
 insert into devcloud.stage (id, title, description, name) values (4, 'kubernetes service创建', 'service,在云平台内用于集群内部互相访问服务或集群外部访问的资源概念。平台采用kubernetes作为容器化应用,service是它的核心概念之一。由于服务会有一个或多个实例,而每个实例的IP地址由网络插件动态随机分配(重启后IP地址会改变)。为屏蔽这些后端实例的动态变化和对多实例的负载均衡,service提供一个可设置的服务访问方式。它在部署中需要先于kubernetes ingress步骤创建。此平台默认采用"流水线名称-service"作为名字,这里学生仅作粗略了解,无需深入配置。', 'k8s-service');
 insert into devcloud.stage (id, title, description, name) values (5, 'kubernetes deployment创建', 'deployment,在云平台内是维护一个或一组服务实例的资源概念,对应着你部署的一个或多个应用实例。平台采用kubernetes作为容器化应用,deployment是它的核心概念之一,将部署应用的所需各项配置传入,就能自动帮用户启动并维护服务的运行状态。它在部署中需要先于kubernetes service、 ingress步骤创建。此平台默认采用"流水线名称-deployment"作为名字,这里学生仅作粗略了解,无需深入配置。', 'k8s-deployment');
 insert into devcloud.stage (id, title, description, name) values (6, 'kubernetes ingress创建', 'ingress,在云平台内用于提供一个外部请求统一访问入口的资源概念。平台采用kubernetes作为容器化应用,ingress是它的核心概念之一。由于service暴露服务访问端口方式的局限性,产生了为集群统一管理所有请求的资源概念。Ingress能方便的处理http/https请求并路由到对应的服务实例,提供负载均衡等功能。此平台默认采用"流水线名称-ingress"作为名字,这里学生仅作粗略了解,无需深入配置。', 'k8s-ingress');
+insert into devcloud.stage (id, title, description, name) values (7, 'api接口自动化测试', '用于在软件构建部署流程的结尾,指定你已建立的api测试id,在部署成功后自动化运行api测试并记录测试结果', 'api-test');

+ 25 - 42
web/src/main/resources/sql/init.sql

@@ -1,20 +1,21 @@
-create table if not exists devcloud.api_test
+create table if not exists devcloud.func_test_case
 (
-    test_id      int auto_increment
+    id         int auto_increment
         primary key,
-    test_name    varchar(255)  not null,
-    project_id   int           not null,
-    create_time  datetime      not null,
-    username     varchar(255)  not null,
-    url          varchar(255)  not null,
-    params       json          null,
-    qps          int           not null,
-    state        varchar(255)  not null,
-    execute_time datetime      null,
-    success      int default 0 not null,
-    failure      int default 0 not null,
-    time_list    text          not null,
-    method       varchar(255)  not null
+    project_id int                  not null,
+    title      varchar(63)          null,
+    pass       tinyint(1) default 0 not null
+);
+
+create table if not exists devcloud.func_test_step
+(
+    id           int auto_increment
+        primary key,
+    test_case_id int  null,
+    description  text null,
+    constraint test_step_test_case_id_fk
+        foreign key (test_case_id) references devcloud.func_test_case (id)
+            on delete set null
 );
 
 create table if not exists devcloud.project
@@ -75,38 +76,20 @@ create table if not exists devcloud.stage_config
     editable tinyint(1)  null
 );
 
-create table if not exists devcloud.test_case
-(
-    id         int auto_increment
-        primary key,
-    project_id int                  not null,
-    title      varchar(63)          null,
-    pass       tinyint(1) default 0 not null
-);
-
-create table if not exists devcloud.test_step
+create table if not exists devcloud.test_result
 (
     id           int auto_increment
         primary key,
-    test_case_id int  null,
-    description  text null,
-    constraint test_step_test_case_id_fk
-        foreign key (test_case_id) references devcloud.test_case (id)
-            on delete set null
+    test_id      int           not null,
+    execute_time datetime      not null,
+    success      int default 0 not null,
+    failure      int default 0 not null,
+    time_list    text          not null,
+    max_time     int           not null,
+    min_time     int           not null,
+    average_time double        not null
 );
 
-create table if not exists devcloud.tree_log
-(
-    id        int auto_increment
-        primary key,
-    time      datetime    null,
-    operation varchar(32) null,
-    user_id   int         null,
-    tree_id   int         null,
-    user_name varchar(64) null
-)
-    charset = utf8;
-
 create table if not exists devcloud.tree_node
 (
     id           int auto_increment

+ 1 - 1
web/src/test/java/cn/seecoder/web/dao/pipeline/PipelineMapperTest.java

@@ -6,7 +6,7 @@ import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.junit4.SpringRunner;
-import cn.seecoder.web.pipeline.template.PipelineTemplateTable;
+import cn.seecoder.web.core.pipeline.template.PipelineTemplateTable;
 import cn.seecoder.web.model.po.pipeline.PipelinePO;
 
 /**