Просмотр исходного кода

feat: 更新日志op_type=109的判断逻辑

181250114 3 лет назад
Родитель
Сommit
dbf70a1485

+ 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的日志
      */
-    ProjectRelate updateDevInfoType109(RelateProjectDTO relateProjectDTO);
+    int updateDevInfoType109(RelateProjectDTO relateProjectDTO);
 
     /**
      * op_type=110 新建项目时,将项目的基本信息存储在分析系统中

+ 49 - 48
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,32 +372,32 @@ 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都在此处创建
@@ -416,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);
@@ -429,23 +429,23 @@ public class DevcloudDataAnalysisServiceImpl implements DevcloudDataAnalysisServ
     }
 
     @Override
-    public ProjectRelate updateDevInfoType109(RelateProjectDTO relateProjectDTO){
+    public int updateDevInfoType109(RelateProjectDTO relateProjectDTO){
         Integer projectAId = relateProjectDTO.getProjectAId();
         Integer projectBId = relateProjectDTO.getProjectBId();
-        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);
-        }
+//        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);
+//        }
 
         //增加关联后,A和B中的成员应该相同,每个成员也应该加入
         //先将A、B项目中的成员同步
@@ -466,6 +466,7 @@ 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)){
@@ -508,7 +509,7 @@ public class DevcloudDataAnalysisServiceImpl implements DevcloudDataAnalysisServ
         }
 
 
-        return projectRelate;
+        return 1;
     }
 
     @Override

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

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