Browse Source

reset: back to 9.27

181250114 3 years ago
parent
commit
fe7e02312b

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

@@ -73,7 +73,7 @@ public interface DevcloudDataAnalysisService {
      * op_type=109 将项目A与项目B关联
      * @param relateProjectDTO op_type=109的日志
      */
-    int updateDevInfoType109(RelateProjectDTO relateProjectDTO);
+    ProjectRelate updateDevInfoType109(RelateProjectDTO relateProjectDTO);
 
     /**
      * op_type=110 新建项目时,将项目的基本信息存储在分析系统中

+ 64 - 85
src/main/java/com/seecoder/dataanalysis/analysis/impl/DevcloudDataAnalysisServiceImpl.java

@@ -28,8 +28,8 @@ public class DevcloudDataAnalysisServiceImpl implements DevcloudDataAnalysisServ
     private DevcloudProjectDao devcloudProjectDao;
     @Autowired
     private DevcloudUserDao devcloudUserDao;
-//    @Autowired
-//    private ProjectRelateDao projectRelateDao;
+    @Autowired
+    private ProjectRelateDao projectRelateDao;
     @Autowired
     private UserDao userDao;
     @Autowired
@@ -372,36 +372,35 @@ public class DevcloudDataAnalysisServiceImpl implements DevcloudDataAnalysisServ
 
         Integer userId = addProjectDTO.getUserId();
 
-//        //查询该项目是否有关联项目,如果有关联项目,需要把该成员也加入关联项目中
-//        Optional<ProjectRelate> result2 = projectRelateDao.findById(projectId);
-//        Integer relateId = -1;
-//        //如果存在关联项目
-//        if(result2.isPresent()){
-//            relateId = projectRelateDao.findById(projectId).get().getRelateId();
-//        }
-//
-//        DevcloudProject relateProject;
-//        if(relateId != -1){
-//            Optional<DevcloudProject> result3 = devcloudProjectDao.findById(relateId);
-//            if(!result3.isPresent()){
-//                relateProject = new DevcloudProject();
-//                relateProject.setProjectId(relateId);
-//            }else {
-//                relateProject = devcloudProjectDao.findById(relateId).get();
-//            }
-//
-//            List<Integer> relateMembers = relateProject.getUserIds();
-//            if(!relateMembers.contains(userId)){
-//                relateMembers.add(userId);
-//                relateProject.setUserIds(relateMembers);
-//            }
-//
-//            devcloudProjectDao.save(relateProject);
-//        }
+        //查询该项目是否有关联项目,如果有关联项目,需要把该成员也加入关联项目中
+        Optional<ProjectRelate> result2 = projectRelateDao.findById(projectId);
+        Integer relateId = -1;
+        //如果存在关联项目
+        if(result2.isPresent()){
+            relateId = projectRelateDao.findById(projectId).get().getRelateId();
+        }
+
+        DevcloudProject relateProject;
+        if(relateId != -1){
+            Optional<DevcloudProject> result3 = devcloudProjectDao.findById(relateId);
+            if(!result3.isPresent()){
+                relateProject = new DevcloudProject();
+                relateProject.setProjectId(relateId);
+            }else {
+                relateProject = devcloudProjectDao.findById(relateId).get();
+            }
+
+            List<Integer> relateMembers = relateProject.getUserIds();
+            if(!relateMembers.contains(userId)){
+                relateMembers.add(userId);
+                relateProject.setUserIds(relateMembers);
+            }
+
+            devcloudProjectDao.save(relateProject);
+        }
 
         //处理完项目-用户关系,现在处理用户-项目关系
         //所有的devcloudUser都在此处创建
-
         DevcloudUser devcloudUser;
 
         Optional<DevcloudUser> result1 = devcloudUserDao.findById(userId);
@@ -417,11 +416,11 @@ public class DevcloudDataAnalysisServiceImpl implements DevcloudDataAnalysisServ
         if(!projectIds.contains(addProjectDTO.getProjectId())){
             projectIds.add(addProjectDTO.getProjectId());
         }
-//        if(relateId!=-1){
-//            if(!projectIds.contains(relateId)){
-//                projectIds.add(relateId);
-//            }
-//        }
+        if(relateId!=-1){
+            if(!projectIds.contains(relateId)){
+                projectIds.add(relateId);
+            }
+        }
 
         devcloudUser.setProjectIds(projectIds);
         devcloudUserDao.save(devcloudUser);
@@ -430,23 +429,23 @@ public class DevcloudDataAnalysisServiceImpl implements DevcloudDataAnalysisServ
     }
 
     @Override
-    public int updateDevInfoType109(RelateProjectDTO relateProjectDTO){
+    public ProjectRelate updateDevInfoType109(RelateProjectDTO relateProjectDTO){
         Integer projectAId = relateProjectDTO.getProjectAId();
         Integer projectBId = relateProjectDTO.getProjectBId();
+        ProjectRelate projectRelate;
 
-//        ProjectRelate projectRelate;
-//        Optional<ProjectRelate> result = projectRelateDao.findById(projectAId);
-//        if(!result.isPresent()){
-//            projectRelate = new ProjectRelate();
-//            projectRelate.setProjectId(projectAId);
-//            projectRelate.setRelateId(relateProjectDTO.getProjectBId());
-//            projectRelateDao.save(projectRelate);
-//        }else {
-//            //项目的关联项目只能有一个
-//            projectRelate = projectRelateDao.findById(projectAId).get();
-//            projectRelate.setRelateId(relateProjectDTO.getProjectBId());
-//            projectRelateDao.save(projectRelate);
-//        }
+        Optional<ProjectRelate> result = projectRelateDao.findById(projectAId);
+        if(!result.isPresent()){
+            projectRelate = new ProjectRelate();
+            projectRelate.setProjectId(projectAId);
+            projectRelate.setRelateId(relateProjectDTO.getProjectBId());
+            projectRelateDao.save(projectRelate);
+        }else {
+            //项目的关联项目只能有一个
+            projectRelate = projectRelateDao.findById(projectAId).get();
+            projectRelate.setRelateId(relateProjectDTO.getProjectBId());
+            projectRelateDao.save(projectRelate);
+        }
 
         //增加关联后,A和B中的成员应该相同,每个成员也应该加入
         //先将A、B项目中的成员同步
@@ -467,7 +466,6 @@ public class DevcloudDataAnalysisServiceImpl implements DevcloudDataAnalysisServ
             projectB = devcloudProjectDao.findById(projectBId).get();
         }
 
-        //将A和B中的user_id进行合并
         List<Integer> totalMembers = new ArrayList<>();
         for(Integer id : projectA.getUserIds()){
             if(!totalMembers.contains(id)){
@@ -510,7 +508,7 @@ public class DevcloudDataAnalysisServiceImpl implements DevcloudDataAnalysisServ
         }
 
 
-        return 1;
+        return projectRelate;
     }
 
     @Override
@@ -738,25 +736,22 @@ public class DevcloudDataAnalysisServiceImpl implements DevcloudDataAnalysisServ
     public FormatGroup getGroupAnalysis(Integer project_id){
         //暂时不存在GroupId,先使用ProjectId代替
         FormatGroup formatGroup = new FormatGroup();
-        //记录该小组拥有的所有项目的id
         List<Integer> projectList = new ArrayList<>();
-        //记录所有项目的信息,用于小组项目信息展示
         List<Project> projects = new ArrayList<>();
+        Integer projectAId = project_id;
+        Integer projectBId;
+        Optional<ProjectRelate> result1 = projectRelateDao.findById(project_id);
+        if(!result1.isPresent()){
+            System.out.println("没有找到关联项目");
+        }else {
+            projectBId = projectRelateDao.findById(project_id).get().getRelateId();
+            projectList.add(projectBId);
+            projects.add(projectDao.findById(projectBId).get());
+        }
 
-//        Integer projectAId = project_id;
-//        Integer projectBId;
-//        Optional<ProjectRelate> result1 = projectRelateDao.findById(project_id);
-//        if(!result1.isPresent()){
-//            System.out.println("没有找到关联项目");
-//        }else {
-//            projectBId = projectRelateDao.findById(project_id).get().getRelateId();
-//            projectList.add(projectBId);
-//            projects.add(projectDao.findById(projectBId).get());
-//        }
-
-        //先将传入的project加入List
-        projectList.add(project_id);
-        projects.add(projectDao.findById(project_id).get());
+        projectList.add(projectAId);
+
+        projects.add(projectDao.findById(projectAId).get());
 
         Optional<DevcloudProject> result2 = devcloudProjectDao.findById(project_id);
         if(!result2.isPresent()){
@@ -766,29 +761,13 @@ public class DevcloudDataAnalysisServiceImpl implements DevcloudDataAnalysisServ
 
         List<Integer> userIds = devcloudProjectDao.findById(project_id).get().getUserIds();
 
-        //遍历加入项目中所有成员下拥有的项目,得到该小组所有的项目
-        for(Integer userId : userIds){
-            Optional<DevcloudUser> result = devcloudUserDao.findById(userId);
-            if(!result.isPresent()){
-                continue;
-            }else {
-                List<Integer> proIds = devcloudUserDao.findById(userId).get().getProjectIds();
-                for(Integer proId : proIds){
-                    if(!projectList.contains(proId)){
-                        projectList.add(proId);
-                        projects.add(projectDao.findById(proId).get());
-                    }
-                }
-            }
-        }
-
-        //将所有的成员信息加入
         List<User> users = new ArrayList<>();
         for(int i=0;i<userIds.size();i++){
             Integer userId = userIds.get(i);
             users.add(userDao.findByUserId(userId));
         }
         int n = userIds.size();
+//        System.out.println("n: "+n);
 
         formatGroup.setProjects(projects);
         formatGroup.setStudents(users);
@@ -819,8 +798,8 @@ public class DevcloudDataAnalysisServiceImpl implements DevcloudDataAnalysisServ
         //记录小组不同成员的treeNode贡献
         int[] treeNodeTimes = new int[n];
 
-        //遍历所有的项目,将整体信息作为小组的分析情况
-        for(int i=0;i<projectList.size();i++){
+        //
+        for(int i=0;i<projects.size();i++){
             Integer projectId = projectList.get(i);
             DevcloudInfo devcloudInfo;
             Optional<DevcloudInfo> result3 = devcloudInfoDao.findById(projectId);

+ 15 - 15
src/main/java/com/seecoder/dataanalysis/analysis/impl/DisplayServiceImpl.java

@@ -27,8 +27,8 @@ import java.util.Optional;
 public class DisplayServiceImpl implements DisplayService {
     @Autowired
     private UserDao userDao;
-//    @Autowired
-//    private ProjectRelateDao projectRelateDao;
+    @Autowired
+    private ProjectRelateDao projectRelateDao;
     @Autowired
     private DevcloudUserDao devcloudUserDao;
     @Autowired
@@ -72,22 +72,22 @@ public class DisplayServiceImpl implements DisplayService {
         DevcloudUser devcloudUser = devcloudUserDao.findById(user_id).get();
         List<Integer> projectIds = devcloudUser.getProjectIds();
 
-//        //如果用户只有一个项目
-//        if(projectIds.size()==1){
-//            devcloudDataAnalysisService.getGroupAnalysis(projectIds.get(0));
-//        }
+        //如果用户只有一个项目
+        if(projectIds.size()==1){
+            devcloudDataAnalysisService.getGroupAnalysis(projectIds.get(0));
+        }
 
         Integer project_id = projectIds.get(0);
 
-//        for(int projectId : projectIds){
-//            Optional<ProjectRelate> result1 = projectRelateDao.findById(projectId);
-//            if(!result1.isPresent()){
-//                continue;
-//            }else {
-//                project_id = projectId;
-//                break;
-//            }
-//        }
+        for(int projectId : projectIds){
+            Optional<ProjectRelate> result1 = projectRelateDao.findById(projectId);
+            if(!result1.isPresent()){
+                continue;
+            }else {
+                project_id = projectId;
+                break;
+            }
+        }
 
         return devcloudDataAnalysisService.getGroupAnalysis(project_id);
     }

+ 3 - 12
src/main/java/com/seecoder/dataanalysis/data/entity/devcloud/ProjectRelate.java

@@ -7,8 +7,6 @@ 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)
@@ -22,16 +20,9 @@ public class ProjectRelate {
     @Field("project_id")
     private Integer projectId;
 
-//    /**
-//     * 关联ID
-//     */
-//    @Field("relate_id")
-//    private Integer relateId;
-
     /**
-     * 2022/10/19
-     * 关联ID(修改成一对多的模式,因为一个项目可以有若干个关联)
+     * 关联ID
      */
-    @Field("relate_ids")
-    private List<Integer> relateIds;
+    @Field("relate_id")
+    private Integer relateId;
 }

+ 41 - 78
src/test/java/com/seecoder/dataanalysis/devcloud/impl/DevcloudDataAnalysisServiceImplTest.java

@@ -58,8 +58,8 @@ public class DevcloudDataAnalysisServiceImplTest {
     private DevcloudUserDao devcloudUserDao;
     @Autowired
     private DevcloudProjectDao devcloudProjectDao;
-//    @Autowired
-//    private ProjectRelateDao projectRelateDao;
+    @Autowired
+    private ProjectRelateDao projectRelateDao;
     @Autowired
     private DevcloudController devcloudController;
 
@@ -333,11 +333,11 @@ public class DevcloudDataAnalysisServiceImplTest {
         devcloudProjectDao.save(devcloudProject1);
         devcloudProjectDao.save(devcloudProject2);
 
-//        ProjectRelate projectRelate1 = new ProjectRelate();
-//        projectRelate1.setProjectId(2959);
-//        projectRelate1.setRelateId(2958);
-//
-//        projectRelateDao.save(projectRelate1);
+        ProjectRelate projectRelate1 = new ProjectRelate();
+        projectRelate1.setProjectId(2959);
+        projectRelate1.setRelateId(2958);
+
+        projectRelateDao.save(projectRelate1);
 
         System.out.println(displayService.getGroupAnalysisById(1566));
     }
@@ -380,11 +380,11 @@ public class DevcloudDataAnalysisServiceImplTest {
         devcloudProjectDao.save(devcloudProject1);
         devcloudProjectDao.save(devcloudProject2);
 
-//        ProjectRelate projectRelate1 = new ProjectRelate();
-//        projectRelate1.setProjectId(3048);
-//        projectRelate1.setRelateId(3049);
-//
-//        projectRelateDao.save(projectRelate1);
+        ProjectRelate projectRelate1 = new ProjectRelate();
+        projectRelate1.setProjectId(3048);
+        projectRelate1.setRelateId(3049);
+
+        projectRelateDao.save(projectRelate1);
 
         System.out.println(displayService.getGroupAnalysisById(1709));
     }
@@ -427,11 +427,11 @@ public class DevcloudDataAnalysisServiceImplTest {
         devcloudProjectDao.save(devcloudProject1);
         devcloudProjectDao.save(devcloudProject2);
 
-//        ProjectRelate projectRelate1 = new ProjectRelate();
-//        projectRelate1.setProjectId(3071);
-//        projectRelate1.setRelateId(3072);
-//
-//        projectRelateDao.save(projectRelate1);
+        ProjectRelate projectRelate1 = new ProjectRelate();
+        projectRelate1.setProjectId(3071);
+        projectRelate1.setRelateId(3072);
+
+        projectRelateDao.save(projectRelate1);
 
         System.out.println(displayService.getGroupAnalysisById(1594 ));
     }
@@ -474,11 +474,11 @@ public class DevcloudDataAnalysisServiceImplTest {
         devcloudProjectDao.save(devcloudProject1);
         devcloudProjectDao.save(devcloudProject2);
 
-//        ProjectRelate projectRelate1 = new ProjectRelate();
-//        projectRelate1.setProjectId(3056);
-//        projectRelate1.setRelateId(3058);
-//
-//        projectRelateDao.save(projectRelate1);
+        ProjectRelate projectRelate1 = new ProjectRelate();
+        projectRelate1.setProjectId(3056);
+        projectRelate1.setRelateId(3058);
+
+        projectRelateDao.save(projectRelate1);
 
         System.out.println(displayService.getGroupAnalysisById(1609 ));
     }
@@ -521,11 +521,11 @@ public class DevcloudDataAnalysisServiceImplTest {
         devcloudProjectDao.save(devcloudProject1);
         devcloudProjectDao.save(devcloudProject2);
 
-//        ProjectRelate projectRelate1 = new ProjectRelate();
-//        projectRelate1.setProjectId(3004);
-//        projectRelate1.setRelateId(3003);
-//
-//        projectRelateDao.save(projectRelate1);
+        ProjectRelate projectRelate1 = new ProjectRelate();
+        projectRelate1.setProjectId(3004);
+        projectRelate1.setRelateId(3003);
+
+        projectRelateDao.save(projectRelate1);
 
         System.out.println(displayService.getGroupAnalysisById(1712 ));
     }
@@ -568,15 +568,15 @@ public class DevcloudDataAnalysisServiceImplTest {
         devcloudProjectDao.save(devcloudProject1);
         devcloudProjectDao.save(devcloudProject2);
 
-//        ProjectRelate projectRelate1 = new ProjectRelate();
-//        projectRelate1.setProjectId(2976);
-//        projectRelate1.setRelateId(2975);
-//
-////        ProjectRelate projectRelate2 = new ProjectRelate();
-////        projectRelate2.setProjectId(2975);
-////        projectRelate2.setRelateId(2976);
-//
-//        projectRelateDao.save(projectRelate1);
+        ProjectRelate projectRelate1 = new ProjectRelate();
+        projectRelate1.setProjectId(2976);
+        projectRelate1.setRelateId(2975);
+
+//        ProjectRelate projectRelate2 = new ProjectRelate();
+//        projectRelate2.setProjectId(2975);
+//        projectRelate2.setRelateId(2976);
+
+        projectRelateDao.save(projectRelate1);
 
         System.out.println(displayService.getGroupAnalysisById(1583));
 //        System.out.println(devcloudDataAnalysisService.getStudentAnalysis(1583));
@@ -620,11 +620,11 @@ public class DevcloudDataAnalysisServiceImplTest {
         devcloudProjectDao.save(devcloudProject1);
         devcloudProjectDao.save(devcloudProject2);
 
-//        ProjectRelate projectRelate1 = new ProjectRelate();
-//        projectRelate1.setProjectId(2980);
-//        projectRelate1.setRelateId(2982);
-//
-//        projectRelateDao.save(projectRelate1);
+        ProjectRelate projectRelate1 = new ProjectRelate();
+        projectRelate1.setProjectId(2980);
+        projectRelate1.setRelateId(2982);
+
+        projectRelateDao.save(projectRelate1);
 
         System.out.println(displayService.getGroupAnalysisById(1622 ));
     }
@@ -671,41 +671,4 @@ public class DevcloudDataAnalysisServiceImplTest {
         return Math.sqrt(dVar/(m-1));
 //        return Math.sqrt(dVar/m);
     }
-
-    @Test
-    void testNewRelate(){
-
-        RelateProjectDTO relateProjectDTO1 = new RelateProjectDTO();
-        relateProjectDTO1.setProjectAId(10001);
-        relateProjectDTO1.setProjectBId(10002);
-
-        RelateProjectDTO relateProjectDTO2 = new RelateProjectDTO();
-        relateProjectDTO2.setProjectAId(10002);
-        relateProjectDTO2.setProjectBId(10003);
-
-        AddProjectDTO addProjectDTO1 = new AddProjectDTO();
-        addProjectDTO1.setProjectId(10001);
-        addProjectDTO1.setUserId(123);
-
-        AddProjectDTO addProjectDTO2 = new AddProjectDTO();
-        addProjectDTO2.setProjectId(10001);
-        addProjectDTO2.setUserId(1234);
-
-        AddProjectDTO addProjectDTO3 = new AddProjectDTO();
-        addProjectDTO3.setProjectId(10002);
-        addProjectDTO3.setUserId(12345);
-
-        AddProjectDTO addProjectDTO4 = new AddProjectDTO();
-        addProjectDTO4.setProjectId(10003);
-        addProjectDTO4.setUserId(123456);
-
-        devcloudDataAnalysisService.updateDevInfoType109(relateProjectDTO1);
-//        devcloudDataAnalysisService.updateDevInfoType109(relateProjectDTO2);
-        devcloudDataAnalysisService.updateDevInfoType108(addProjectDTO1);
-        devcloudDataAnalysisService.updateDevInfoType108(addProjectDTO2);
-        devcloudDataAnalysisService.updateDevInfoType108(addProjectDTO3);
-        devcloudDataAnalysisService.updateDevInfoType108(addProjectDTO4);
-        devcloudDataAnalysisService.updateDevInfoType109(relateProjectDTO2);
-
-    }
 }