uncln 4 лет назад
Родитель
Сommit
d3ee4485db

+ 7 - 0
src/main/java/com/seecoder/dataanalysis/data/dao/devcloud/DevcloudInfoDao.java

@@ -0,0 +1,7 @@
+package com.seecoder.dataanalysis.data.dao.devcloud;
+
+import com.seecoder.dataanalysis.data.entity.devcloud.DevcloudInfo;
+import org.springframework.data.mongodb.repository.MongoRepository;
+
+public interface DevcloudInfoDao extends MongoRepository<DevcloudInfo, String> {
+}

+ 53 - 0
src/main/java/com/seecoder/dataanalysis/data/entity/devcloud/BugInfo.java

@@ -0,0 +1,53 @@
+package com.seecoder.dataanalysis.data.entity.devcloud;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import org.springframework.data.annotation.Id;
+import org.springframework.data.mongodb.core.mapping.Field;
+
+@NoArgsConstructor
+@AllArgsConstructor
+@Accessors(chain = true)
+@Data
+public class BugInfo {
+
+    /**
+     * bug ID
+     */
+    @Id
+    @Field("bug_id")
+    private Integer bugId;
+
+    /**
+     * 优先级
+     */
+    @Field("priority")
+    private String priority;
+
+    /**
+     * 标题
+     */
+    @Field("title")
+    private String title;
+
+    /**
+     * 描述
+     */
+    @Field("description")
+    private String description;
+
+    /**
+     * 耗费时间
+     */
+    @Field("time_to_take")
+    private Integer timeToTake;
+
+    /**
+     * bug 状态
+     */
+    @Field("bug_state")
+    private String bugState;
+
+}

+ 35 - 0
src/main/java/com/seecoder/dataanalysis/data/entity/devcloud/CommitInfo.java

@@ -0,0 +1,35 @@
+package com.seecoder.dataanalysis.data.entity.devcloud;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import org.springframework.data.annotation.Id;
+import org.springframework.data.mongodb.core.aggregation.ArrayOperators;
+import org.springframework.data.mongodb.core.mapping.Field;
+
+@NoArgsConstructor
+@AllArgsConstructor
+@Accessors(chain = true)
+@Data
+public class CommitInfo {
+
+    /**
+     * commit ID
+     */
+    @Id
+    @Field("commit_id")
+    private String commitId;
+
+    /**
+     * 用户 ID
+     */
+    @Field("user_id")
+    private Integer userId;
+
+    /**
+     * 提交时间
+     */
+    @Field("commit_time")
+    private String commitTime;
+}

+ 56 - 0
src/main/java/com/seecoder/dataanalysis/data/entity/devcloud/DevcloudInfo.java

@@ -0,0 +1,56 @@
+package com.seecoder.dataanalysis.data.entity.devcloud;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import org.springframework.data.annotation.Id;
+import org.springframework.data.mongodb.core.mapping.Field;
+
+import java.util.List;
+
+@NoArgsConstructor
+@AllArgsConstructor
+@Accessors(chain = true)
+@Data
+public class DevcloudInfo {
+
+    /**
+     * 项目ID
+     */
+    @Id
+    @Field("project_id")
+    private Integer projectId;
+
+    /**
+     * bug_list 信息
+     */
+    @Field("bug_list")
+    private List<BugInfo> bugList;
+
+    /**
+     * commit_list 提交记录
+     */
+    @Field("commit_list")
+    private List<CommitInfo> commitList;
+
+    /**
+     * test_list 测试记录
+     */
+    @Field("test_list")
+    private List<TestInfo> testList;
+
+    /**
+     * pipeline 流水线记录
+     */
+    @Field("pipeline_list")
+    private List<PipelineInfo> pipelineList;
+
+    /**
+     * treenode_list
+     */
+    @Field("treeNode_list")
+    private List<TreeNodeInfo> treeNodeList;
+
+
+}

+ 30 - 0
src/main/java/com/seecoder/dataanalysis/data/entity/devcloud/DevcloudUser.java

@@ -0,0 +1,30 @@
+package com.seecoder.dataanalysis.data.entity.devcloud;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import org.springframework.data.annotation.Id;
+import org.springframework.data.mongodb.core.mapping.Field;
+
+import java.util.List;
+
+@NoArgsConstructor
+@AllArgsConstructor
+@Accessors(chain = true)
+@Data
+public class DevcloudUser {
+
+    /**
+     * 学生ID
+     **/
+    @Id
+    @Field("user_id")
+    private Integer userId;
+
+    /**
+     * 项目ID
+     */
+    @Field("project_ids")
+    private List<Integer> projectIds;
+}

+ 40 - 0
src/main/java/com/seecoder/dataanalysis/data/entity/devcloud/PipelineInfo.java

@@ -0,0 +1,40 @@
+package com.seecoder.dataanalysis.data.entity.devcloud;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import org.springframework.data.annotation.Id;
+import org.springframework.data.mongodb.core.mapping.Field;
+
+@NoArgsConstructor
+@AllArgsConstructor
+@Accessors(chain = true)
+@Data
+public class PipelineInfo {
+
+    /**
+     * pipeline ID
+     */
+    @Id
+    @Field("pipeline_id")
+    private Integer pipelineId;
+
+    /**
+     * 用户 ID
+     */
+    @Field("user_id")
+    private Integer userId;
+
+    /**
+     * 成功数量
+     */
+    @Field("success")
+    private Integer success;
+
+    /**
+     * 总数量
+     */
+    @Field("total")
+    private Integer total;
+}

+ 28 - 0
src/main/java/com/seecoder/dataanalysis/data/entity/devcloud/ProjectRelate.java

@@ -0,0 +1,28 @@
+package com.seecoder.dataanalysis.data.entity.devcloud;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import org.springframework.data.annotation.Id;
+import org.springframework.data.mongodb.core.mapping.Field;
+
+@NoArgsConstructor
+@AllArgsConstructor
+@Accessors(chain = true)
+@Data
+public class ProjectRelate {
+
+    /**
+     * 项目ID
+     */
+    @Id
+    @Field("project_id")
+    private Integer projectId;
+
+    /**
+     * 关联ID
+     */
+    @Field("relate_id")
+    private Integer relateId;
+}

+ 40 - 0
src/main/java/com/seecoder/dataanalysis/data/entity/devcloud/TestInfo.java

@@ -0,0 +1,40 @@
+package com.seecoder.dataanalysis.data.entity.devcloud;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import org.springframework.data.annotation.Id;
+import org.springframework.data.mongodb.core.mapping.Field;
+
+@NoArgsConstructor
+@AllArgsConstructor
+@Accessors(chain = true)
+@Data
+public class TestInfo {
+
+    /**
+     * 测试 ID
+     */
+    @Id
+    @Field("api_test_id")
+    private Integer apiTestId;
+
+    /**
+     * 用户 ID
+     */
+    @Field("user_id")
+    private Integer userId;
+
+    /**
+     * 成功数量
+     */
+    @Field("success")
+    private Integer success;
+
+    /**
+     * 失败数量
+     */
+    @Field("failure")
+    private Integer failure;
+}

+ 70 - 0
src/main/java/com/seecoder/dataanalysis/data/entity/devcloud/TreeNodeInfo.java

@@ -0,0 +1,70 @@
+package com.seecoder.dataanalysis.data.entity.devcloud;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import org.springframework.data.annotation.Id;
+import org.springframework.data.mongodb.core.mapping.Field;
+
+@NoArgsConstructor
+@AllArgsConstructor
+@Accessors(chain = true)
+@Data
+public class TreeNodeInfo {
+
+    /**
+     * 测试 ID
+     */
+    @Id
+    @Field("node_id")
+    private Integer nodeId;
+
+    /**
+     * 节点title
+     */
+    @Field("title")
+    private String title;
+
+    /**
+     * 用户 ID
+     */
+    @Field("user_id")
+    private Integer userId;
+
+    /**
+     * 节点类型
+     */
+    @Field("type")
+    private String type;
+
+    /**
+     * 优先级
+     */
+    @Field("priority")
+    private String priority;
+
+    /**
+     * 状态
+     */
+    @Field("state")
+    private String state;
+
+    /**
+     * 耗费时间
+     */
+    @Field("time_to_take")
+    private Integer timeToTake;
+
+    /**
+     * 父节点
+     */
+    @Field("parent_id")
+    private Integer parentId;
+
+    /**
+     * 深度
+     */
+    @Field("deep")
+    private Integer deep;
+}

+ 14 - 1
src/test/java/com/seecoder/dataanalysis/DataAnalysisApplicationTests.java

@@ -1,12 +1,15 @@
 package com.seecoder.dataanalysis;
 
 import com.seecoder.dataanalysis.data.dao.competency.CompetencyTreeDao;
+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.competency.CompetencyTree;
 import com.seecoder.dataanalysis.data.entity.competency.DScore;
 import com.seecoder.dataanalysis.data.entity.competency.KSDScore;
 import com.seecoder.dataanalysis.data.entity.competency.KSScore;
+import com.seecoder.dataanalysis.data.entity.devcloud.BugInfo;
+import com.seecoder.dataanalysis.data.entity.devcloud.DevcloudInfo;
 import com.seecoder.dataanalysis.data.entity.eval.EvalExamInfo;
 import com.seecoder.dataanalysis.data.entity.eval.EvalExamRecord;
 import org.junit.jupiter.api.Test;
@@ -33,7 +36,8 @@ class DataAnalysisApplicationTests {
     private EvalExamRecordDao evalExamRecordDao;
 
     @Autowired
-    private MongoTemplate mongoTemplate;
+    private DevcloudInfoDao devcloudInfoDao;
+
 
     @Test
     void saveTree(){
@@ -87,4 +91,13 @@ class DataAnalysisApplicationTests {
                 .setStudentId(1);
         evalExamRecordDao.save(evalExamRecord);
     }
+
+    @Test
+    void saveDevcloudInfo(){
+        BugInfo bugInfo = new BugInfo(1, "一般", "数据入库问题", "无法讲新帖子写入数据库", 1, "FINISHED");
+        List<BugInfo> bugInfos = new ArrayList<>();
+        bugInfos.add(bugInfo);
+        DevcloudInfo devcloudInfo = new DevcloudInfo(1, bugInfos, null, null, null, null);
+        devcloudInfoDao.save(devcloudInfo);
+    }
 }