Explorar o código

feat: 定义Devcloud中的Service

181250114 %!s(int64=4) %!d(string=hai) anos
pai
achega
1f2e7aaab3

+ 79 - 0
src/main/java/com/seecoder/dataanalysis/analysis/DevcloudDataAnalysisService.java

@@ -1,9 +1,88 @@
 package com.seecoder.dataanalysis.analysis;
 
+import com.seecoder.dataanalysis.data.entity.devcloud.BugInfo;
+import com.seecoder.dataanalysis.data.entity.devcloud.DevcloudInfo;
+import com.seecoder.dataanalysis.data.entity.devcloud.DevcloudProject;
+import com.seecoder.dataanalysis.data.entity.devcloud.TreeNodeInfo;
+import com.seecoder.dataanalysis.data.entity.devcloud.display.FormatGroup;
+import com.seecoder.dataanalysis.data.entity.devcloud.display.FormatStudent;
+import com.seecoder.dataanalysis.vo.devcloud.*;
+
 /**
  * @author Peng Yiyan
  * @since 2022/03/11
  */
 public interface DevcloudDataAnalysisService {
 
+    /**
+     * 收到新的Devcloud日志,以项目为单位进行分析入库
+     * 命名方式同日志格式中的op_type
+     * 此处为op_type=100 缺陷处理信息
+     * @param bugInfoDTO op_type=100的日志
+     * @return DevcloudInfo 项目对应的Devcloud信息
+     */
+    DevcloudInfo updateDevInfoType100(BugInfoDTO bugInfoDTO);
+
+    /**
+     * op_type=101 用户进行commit
+     * @param commitInfoDTO op_type=101的日志
+     */
+    DevcloudInfo updateDevInfoType101(CommitInfoDTO commitInfoDTO);
+
+    /**
+     * op_type=102 用户创建并执行接口测试
+     * @param testInfoDTO op_type=102的日志
+     */
+    DevcloudInfo updateDevInfoType102(TestInfoDTO testInfoDTO);
+
+    /**
+     * op_type=103 用户创建流水线
+     * @param pipelineCreationDTO op_type=103的日志
+     */
+    DevcloudInfo updateDevInfoType103(PipelineCreationDTO pipelineCreationDTO);
+
+    /**
+     * op_type=104 用户删除流水线
+     * @param pipelineDeletionDTO op_type=104的日志
+     */
+    DevcloudInfo updateDevInfoType104(PipelineDeletionDTO pipelineDeletionDTO);
+
+    /**
+     * op_type=105 用户部署流水线
+     * @param pipelineDeployDTO op_type=105的日志
+     */
+    DevcloudInfo updateDevInfoType105(PipelineDeployDTO pipelineDeployDTO);
+
+    /**
+     * op_type=106 用户插入/更新节点
+     * @param treeNodeInfoDTO op_type=106的日志
+     */
+    DevcloudInfo updateDevInfoType106(TreeNodeInfoDTO treeNodeInfoDTO);
+
+    /**
+     * op_type=107 用户删除节点
+     * @param treeNodeDeletionDTO op_type=107的日志
+     */
+    DevcloudInfo updateDevInfoType107(TreeNodeDeletionDTO treeNodeDeletionDTO);
+
+    /**
+     * op_type=108 将成员加入某项目中
+     * @param addProjectDTO op_type=108的日志
+     */
+    DevcloudProject updateDevInfoType108(AddProjectDTO addProjectDTO);
+
+    /**
+     * 根据学生id,分析并返回学生的个人情况
+     * @param user_id 学生的用户id
+     * @return 学生对应的分析报告
+     */
+    FormatStudent getStudentAnalysis(Integer user_id);
+
+    /**
+     * 根据项目id,分析并返回小组的项目情况
+     * 因为目前没有小组id,所以用项目id指代小组,之后会进行修改
+     * @param project_id 项目的id
+     * @return 小组对应的分析报告
+     */
+    FormatGroup getGroupAnalysis(Integer project_id);
 }

+ 5 - 1
src/main/java/com/seecoder/dataanalysis/analysis/EvalDataAnalysisService.java

@@ -2,6 +2,8 @@ package com.seecoder.dataanalysis.analysis;
 
 import com.seecoder.dataanalysis.data.entity.competency.CompetencyTree;
 
+import java.util.Map;
+
 /**
  * @author Peng Yiyan
  * @since 2022/02/03
@@ -10,7 +12,7 @@ import com.seecoder.dataanalysis.data.entity.competency.CompetencyTree;
 public interface EvalDataAnalysisService {
 
     /**
-     * 根据学生id,分析该学生的能力树
+     * 根据学生id,分析该学生的能力树,返回可视化结果
      * @param student_id 学生id
      * @return competency_tree 返回能力树
      */
@@ -28,5 +30,7 @@ public interface EvalDataAnalysisService {
      * @param student_id 学生id
      * @return Map<String, Double> errorQuestions 返回学生的错误题目
      */
+    Map<String, Double> getStudentErrorQuestions(int student_id);
+
 
 }

+ 69 - 0
src/main/java/com/seecoder/dataanalysis/analysis/impl/DevcloudDataAnalysisServiceImpl.java

@@ -1,7 +1,76 @@
 package com.seecoder.dataanalysis.analysis.impl;
 
 import com.seecoder.dataanalysis.analysis.DevcloudDataAnalysisService;
+import com.seecoder.dataanalysis.data.dao.devcloud.DevcloudInfoDao;
+import com.seecoder.dataanalysis.data.dao.devcloud.DevcloudProjectDao;
+import com.seecoder.dataanalysis.data.dao.devcloud.DevcloudUserDao;
+import com.seecoder.dataanalysis.data.dao.devcloud.ProjectRelateDao;
+import com.seecoder.dataanalysis.data.entity.devcloud.BugInfo;
+import com.seecoder.dataanalysis.data.entity.devcloud.DevcloudInfo;
+import com.seecoder.dataanalysis.data.entity.devcloud.DevcloudProject;
+import com.seecoder.dataanalysis.data.entity.devcloud.display.FormatGroup;
+import com.seecoder.dataanalysis.data.entity.devcloud.display.FormatStudent;
+import com.seecoder.dataanalysis.vo.devcloud.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
 
+/**
+ * @author Peng Yiyan
+ * @since 2022/03/12
+ */
+@Service
 public class DevcloudDataAnalysisServiceImpl implements DevcloudDataAnalysisService {
 
+    @Autowired
+    private DevcloudInfoDao devcloudInfoDao;
+    @Autowired
+    private DevcloudProjectDao devcloudProjectDao;
+    @Autowired
+    private DevcloudUserDao devcloudUserDao;
+    @Autowired
+    private ProjectRelateDao projectRelateDao;
+
+
+    @Override
+    public DevcloudInfo updateDevInfoType100(BugInfoDTO bugInfoDTO){
+        return null;
+    }
+
+    @Override
+    public DevcloudInfo updateDevInfoType101(CommitInfoDTO commitInfoDTO){
+        return null;
+    }
+
+    @Override
+    public DevcloudInfo updateDevInfoType102(TestInfoDTO testInfoDTO){ return null;}
+
+    @Override
+    public DevcloudInfo updateDevInfoType103(PipelineCreationDTO pipelineCreationDTO){ return null;}
+
+    @Override
+    public DevcloudInfo updateDevInfoType104(PipelineDeletionDTO pipelineDeletionDTO){ return null;}
+
+    @Override
+    public DevcloudInfo updateDevInfoType105(PipelineDeployDTO pipelineDeployDTO){ return null;}
+
+    @Override
+    public DevcloudInfo updateDevInfoType106(TreeNodeInfoDTO treeNodeInfoDTO){ return null;}
+    
+    @Override
+    public DevcloudInfo updateDevInfoType107(TreeNodeDeletionDTO treeNodeDeletionDTO){ return null;}
+
+    @Override
+    public DevcloudProject updateDevInfoType108(AddProjectDTO addProjectDTO){ return null;}
+
+
+    @Override
+    public FormatStudent getStudentAnalysis(Integer user_id){
+        return null;
+    }
+
+    @Override
+    public FormatGroup getGroupAnalysis(Integer project_id){
+        return null;
+    }
+
 }

+ 3 - 1
src/main/java/com/seecoder/dataanalysis/analysis/impl/EvalDataAnalysisServiceImpl.java

@@ -1,6 +1,5 @@
 package com.seecoder.dataanalysis.analysis.impl;
 
-import com.seecoder.dataanalysis.analysis.eval.DataAnalysisService;
 import com.seecoder.dataanalysis.analysis.EvalDataAnalysisService;
 import com.seecoder.dataanalysis.data.dao.competency.CompetencyTreeDao;
 import com.seecoder.dataanalysis.data.dao.eval.EvalExamInfoDao;
@@ -100,4 +99,7 @@ public class EvalDataAnalysisServiceImpl implements EvalDataAnalysisService {
 
         return competencyTree;
     }
+
+    @Override
+    public Map<String, Double> getStudentErrorQuestions(int student_id){return null;}
 }

+ 1 - 1
src/main/java/com/seecoder/dataanalysis/vo/AddProjectDTO.java → src/main/java/com/seecoder/dataanalysis/vo/devcloud/AddProjectDTO.java

@@ -1,4 +1,4 @@
-package com.seecoder.dataanalysis.vo;
+package com.seecoder.dataanalysis.vo.devcloud;
 
 import com.alibaba.fastjson.annotation.JSONField;
 import lombok.AllArgsConstructor;

+ 1 - 1
src/main/java/com/seecoder/dataanalysis/vo/BugInfoDTO.java → src/main/java/com/seecoder/dataanalysis/vo/devcloud/BugInfoDTO.java

@@ -1,4 +1,4 @@
-package com.seecoder.dataanalysis.vo;
+package com.seecoder.dataanalysis.vo.devcloud;
 
 import com.alibaba.fastjson.annotation.JSONField;
 import lombok.AllArgsConstructor;

+ 1 - 1
src/main/java/com/seecoder/dataanalysis/vo/CommitInfoDTO.java → src/main/java/com/seecoder/dataanalysis/vo/devcloud/CommitInfoDTO.java

@@ -1,4 +1,4 @@
-package com.seecoder.dataanalysis.vo;
+package com.seecoder.dataanalysis.vo.devcloud;
 
 import com.alibaba.fastjson.annotation.JSONField;
 import lombok.AllArgsConstructor;

+ 1 - 1
src/main/java/com/seecoder/dataanalysis/vo/PipelineCreationDTO.java → src/main/java/com/seecoder/dataanalysis/vo/devcloud/PipelineCreationDTO.java

@@ -1,4 +1,4 @@
-package com.seecoder.dataanalysis.vo;
+package com.seecoder.dataanalysis.vo.devcloud;
 
 import com.alibaba.fastjson.annotation.JSONField;
 import lombok.AllArgsConstructor;

+ 1 - 1
src/main/java/com/seecoder/dataanalysis/vo/PipelineDeletionDTO.java → src/main/java/com/seecoder/dataanalysis/vo/devcloud/PipelineDeletionDTO.java

@@ -1,4 +1,4 @@
-package com.seecoder.dataanalysis.vo;
+package com.seecoder.dataanalysis.vo.devcloud;
 
 import com.alibaba.fastjson.annotation.JSONField;
 import lombok.AllArgsConstructor;

+ 1 - 1
src/main/java/com/seecoder/dataanalysis/vo/PipelineDeployDTO.java → src/main/java/com/seecoder/dataanalysis/vo/devcloud/PipelineDeployDTO.java

@@ -1,4 +1,4 @@
-package com.seecoder.dataanalysis.vo;
+package com.seecoder.dataanalysis.vo.devcloud;
 
 import com.alibaba.fastjson.annotation.JSONField;
 import lombok.AllArgsConstructor;

+ 1 - 1
src/main/java/com/seecoder/dataanalysis/vo/TestInfoDTO.java → src/main/java/com/seecoder/dataanalysis/vo/devcloud/TestInfoDTO.java

@@ -1,4 +1,4 @@
-package com.seecoder.dataanalysis.vo;
+package com.seecoder.dataanalysis.vo.devcloud;
 
 import com.alibaba.fastjson.annotation.JSONField;
 import lombok.AllArgsConstructor;

+ 1 - 1
src/main/java/com/seecoder/dataanalysis/vo/TreeNodeDeletionDTO.java → src/main/java/com/seecoder/dataanalysis/vo/devcloud/TreeNodeDeletionDTO.java

@@ -1,4 +1,4 @@
-package com.seecoder.dataanalysis.vo;
+package com.seecoder.dataanalysis.vo.devcloud;
 
 import com.alibaba.fastjson.annotation.JSONField;
 import lombok.AllArgsConstructor;

+ 1 - 1
src/main/java/com/seecoder/dataanalysis/vo/TreeNodeInfoDTO.java → src/main/java/com/seecoder/dataanalysis/vo/devcloud/TreeNodeInfoDTO.java

@@ -1,4 +1,4 @@
-package com.seecoder.dataanalysis.vo;
+package com.seecoder.dataanalysis.vo.devcloud;
 
 
 import com.alibaba.fastjson.annotation.JSONField;