Przeglądaj źródła

feat: 增加节点入库功能

181250114 4 lat temu
rodzic
commit
112b6b2bb9

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

@@ -54,13 +54,13 @@ public interface DevcloudDataAnalysisService {
      * op_type=106 用户插入/更新节点
      * @param treeNodeInfoDTO op_type=106的日志
      */
-//    DevcloudInfo updateDevInfoType106(TreeNodeInfoDTO treeNodeInfoDTO);
+    DevcloudInfo updateDevInfoType106(TreeNodeInfoDTO treeNodeInfoDTO);
 
     /**
      * op_type=107 用户删除节点
      * @param treeNodeDeletionDTO op_type=107的日志
      */
-//    DevcloudInfo updateDevInfoType107(TreeNodeDeletionDTO treeNodeDeletionDTO);
+    DevcloudInfo updateDevInfoType107(TreeNodeDeletionDTO treeNodeDeletionDTO);
 
     /**
      * op_type=108 将成员加入某项目中

+ 86 - 9
src/main/java/com/seecoder/dataanalysis/analysis/impl/DevcloudDataAnalysisServiceImpl.java

@@ -60,6 +60,7 @@ public class DevcloudDataAnalysisServiceImpl implements DevcloudDataAnalysisServ
                 bugInfoList.get(i).setDescription(bugInfoDTO.getDescription());
                 bugInfoList.get(i).setTimeToTake(bugInfoDTO.getTimeToTake());
                 bugInfoList.get(i).setBugState(bugInfoDTO.getBugState());
+                break;
             }
         }
         //如果不存在bug_id,将bugInfo加入List
@@ -256,15 +257,91 @@ public class DevcloudDataAnalysisServiceImpl implements DevcloudDataAnalysisServ
         return devcloudInfo;
     }
 
-//    @Override
-//    public DevcloudInfo updateDevInfoType106(TreeNodeInfoDTO treeNodeInfoDTO){
-//        return null;
-//    }
-//
-//    @Override
-//    public DevcloudInfo updateDevInfoType107(TreeNodeDeletionDTO treeNodeDeletionDTO){
-//        return null;
-//    }
+    @Override
+    public DevcloudInfo updateDevInfoType106(TreeNodeInfoDTO treeNodeInfoDTO){
+        Integer projectId = treeNodeInfoDTO.getProjectId();
+        DevcloudInfo devcloudInfo;
+        Optional<DevcloudInfo> result = devcloudInfoDao.findById(projectId);
+        if(!result.isPresent()){
+            devcloudInfo = new DevcloudInfo(projectId);
+        }else {
+            devcloudInfo = devcloudInfoDao.findById(projectId).get();
+        }
+        List<TreeNodeInfo> treeNodeInfoList = devcloudInfo.getTreeNodeList();
+        boolean exist = false;
+        for(int i=0;i<treeNodeInfoList.size();i++){
+            //如果已经存在node_id,则视为对节点信息的修改
+            if(treeNodeInfoList.get(i).getNodeId().equals(treeNodeInfoDTO.getNodeId())){
+                exist = true;
+                treeNodeInfoList.get(i).setTitle(treeNodeInfoDTO.getTitle());
+                treeNodeInfoList.get(i).setUserId(treeNodeInfoDTO.getUserId());
+                treeNodeInfoList.get(i).setType(treeNodeInfoDTO.getType());
+                treeNodeInfoList.get(i).setPriority(treeNodeInfoDTO.getPriority());
+                treeNodeInfoList.get(i).setState(treeNodeInfoDTO.getState());
+                treeNodeInfoList.get(i).setTimeToTake(treeNodeInfoDTO.getTimeToTake());
+                treeNodeInfoList.get(i).setParentId(treeNodeInfoDTO.getParentId());
+                treeNodeInfoList.get(i).setDeep(treeNodeInfoDTO.getDeep());
+                break;
+            }
+        }
+        //如果不存在node_id,则视为添加节点
+        if(!exist){
+            TreeNodeInfo treeNodeInfoNew = new TreeNodeInfo();
+            treeNodeInfoNew.setNodeId(treeNodeInfoDTO.getNodeId());
+            treeNodeInfoNew.setTitle(treeNodeInfoDTO.getTitle());
+            treeNodeInfoNew.setUserId(treeNodeInfoDTO.getUserId());
+            treeNodeInfoNew.setType(treeNodeInfoDTO.getType());
+            treeNodeInfoNew.setPriority(treeNodeInfoDTO.getPriority());
+            treeNodeInfoNew.setState(treeNodeInfoDTO.getState());
+            treeNodeInfoNew.setTimeToTake(treeNodeInfoDTO.getTimeToTake());
+            treeNodeInfoNew.setParentId(treeNodeInfoDTO.getParentId());
+            treeNodeInfoNew.setDeep(treeNodeInfoDTO.getDeep());
+
+            treeNodeInfoList.add(treeNodeInfoNew);
+        }
+
+        devcloudInfo.setTreeNodeList(treeNodeInfoList);
+        devcloudInfoDao.save(devcloudInfo);
+        return devcloudInfo;
+    }
+
+    @Override
+    public DevcloudInfo updateDevInfoType107(TreeNodeDeletionDTO treeNodeDeletionDTO){
+        Integer projectId = treeNodeDeletionDTO.getProjectId();
+        DevcloudInfo devcloudInfo;
+
+        Optional<DevcloudInfo> result = devcloudInfoDao.findById(projectId);
+        if(!result.isPresent()){
+            devcloudInfo = new DevcloudInfo(projectId);
+        }else {
+            devcloudInfo = devcloudInfoDao.findById(projectId).get();
+        }
+
+        List<TreeNodeInfo> treeNodeInfoList = devcloudInfo.getTreeNodeList();
+        List<Integer> nodeIds = treeNodeDeletionDTO.getNodeIds();
+//        for(int i=0;i<treeNodeInfoList.size();i++){
+//            for(int j=0;j<nodeIds.size();j++){
+//                if(treeNodeInfoList.get(i).getNodeId().equals(nodeIds.get(j))){
+//                    treeNodeInfoList.remove(i);
+//                    i--;
+//                    break;
+//                }
+//            }
+//        }
+        for(int i=0;i<nodeIds.size();i++){
+            Integer nodeId = nodeIds.get(i);
+            for(int j=0;j<treeNodeInfoList.size();j++){
+                if(treeNodeInfoList.get(j).getNodeId().equals(nodeId)){
+                    treeNodeInfoList.remove(j);
+                    break;
+                }
+            }
+        }
+
+        devcloudInfo.setTreeNodeList(treeNodeInfoList);
+        devcloudInfoDao.save(devcloudInfo);
+        return devcloudInfo;
+    }
 
     @Override
     public DevcloudProject updateDevInfoType108(AddProjectDTO addProjectDTO){

+ 4 - 0
src/main/java/com/seecoder/dataanalysis/vo/devcloud/TreeNodeDeletionDTO.java

@@ -15,6 +15,10 @@ import java.util.List;
 @AllArgsConstructor
 @NoArgsConstructor
 public class TreeNodeDeletionDTO {
+
+    @JSONField(name = "project_id")
+    private Integer projectId;
+
     @JSONField(name = "node_ids")
     private List<Integer> nodeIds;
 }

+ 29 - 20
src/test/java/com/seecoder/dataanalysis/devcloud/impl/DevcloudDataAnalysisServiceImplTest.java

@@ -27,17 +27,6 @@ public class DevcloudDataAnalysisServiceImplTest {
 
     @Test
     void type100(){
-//        DevcloudInfo devcloudInfo = devcloudInfoDao.findById(1).get();
-//        List<BugInfo> bugInfos = devcloudInfo.getBugList();
-//        System.out.println(bugInfos);
-
-        BugInfo bugInfo = new BugInfo();
-        bugInfo.setBugId(1).setUserId(1).setTitle("aaa").setPriority("high").setDescription("一个bug").setTimeToTake(100).setBugState("未修复");
-
-//        bugInfos.add(bugInfo);
-//        devcloudInfo.setBugList(bugInfos);
-//        devcloudInfoDao.save(devcloudInfo);
-
         BugInfoDTO bugInfoDTO = new BugInfoDTO();
         bugInfoDTO.setBugId(2);
         bugInfoDTO.setProjectId(1);
@@ -53,9 +42,6 @@ public class DevcloudDataAnalysisServiceImplTest {
 
     @Test
     void type101(){
-//        DevcloudInfo devcloudInfo = devcloudInfoDao.findById(12).get();
-//        List<CommitInfo> commitInfos = devcloudInfo.getCommitList();
-
         CommitInfoDTO commitInfoDTO = new CommitInfoDTO();
         commitInfoDTO.setProjectId(22);
         commitInfoDTO.setCommitId("aaaa123456");
@@ -70,9 +56,6 @@ public class DevcloudDataAnalysisServiceImplTest {
 
     @Test
     void type102(){
-//        DevcloudInfo devcloudInfo = devcloudInfoDao.findById(12).get();
-//        List<TestInfo> testInfos = devcloudInfo.getTestList();
-
         TestInfoDTO testInfoDTO = new TestInfoDTO();
         testInfoDTO.setProjectId(123);
         testInfoDTO.setApiTestId(123);
@@ -85,9 +68,6 @@ public class DevcloudDataAnalysisServiceImplTest {
 
     @Test
     void type103(){
-//        DevcloudInfo devcloudInfo = devcloudInfoDao.findById(12).get();
-//        List<PipelineInfo> pipelineInfos = devcloudInfo.getPipelineList();
-
         PipelineCreationDTO pipelineCreationDTO = new PipelineCreationDTO();
         pipelineCreationDTO.setPipelineId(1);
         pipelineCreationDTO.setProjectId(12);
@@ -126,6 +106,35 @@ public class DevcloudDataAnalysisServiceImplTest {
         devcloudDataAnalysisService.updateDevInfoType105(pipelineDeployDTO);
     }
 
+    @Test
+    void type106(){
+        TreeNodeInfoDTO treeNodeInfoDTO = new TreeNodeInfoDTO();
+        treeNodeInfoDTO.setNodeId(123);
+        treeNodeInfoDTO.setTitle("更新图片");
+        treeNodeInfoDTO.setProjectId(12);
+        treeNodeInfoDTO.setUserId(3);
+        treeNodeInfoDTO.setType("REQUIREMENT");
+        treeNodeInfoDTO.setPriority("HIGH");
+        treeNodeInfoDTO.setState("CREATED");
+        treeNodeInfoDTO.setTimeToTake(100);
+        treeNodeInfoDTO.setParentId(123);
+        treeNodeInfoDTO.setDeep(3);
+
+        devcloudDataAnalysisService.updateDevInfoType106(treeNodeInfoDTO);
+    }
+
+    @Test
+    void type107(){
+        TreeNodeDeletionDTO treeNodeDeletionDTO = new TreeNodeDeletionDTO();
+        treeNodeDeletionDTO.setProjectId(12);
+        List<Integer> nodeIds = new ArrayList<>();
+        nodeIds.add(12);
+        nodeIds.add(123);
+        treeNodeDeletionDTO.setNodeIds(nodeIds);
+
+        devcloudDataAnalysisService.updateDevInfoType107(treeNodeDeletionDTO);
+    }
+
     @Test
     void type108(){
         AddProjectDTO addProjectDTO = new AddProjectDTO();