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

fix: 修复了项目可见性问题

xuxiaopang 2 лет назад
Родитель
Сommit
7aec94cbfe

+ 15 - 12
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/serviceImpl/ProjectServiceImpl.java

@@ -101,19 +101,20 @@ public class ProjectServiceImpl implements ProjectService {
             projects.getJSONArray("public").add(this.findProjectById(courseProject.getProjectId()));
         }
         // private
-        publicProjects = courseProjectRepository.findByCourse_IdAndIsPublic(courseId, false);
+/*        publicProjects = courseProjectRepository.findByCourse_IdAndIsPublic(courseId, false);
         for (CourseProject courseProject : publicProjects) {
             projects.getJSONArray("private").add(this.findProjectById(courseProject.getProjectId()));
+        }*/
+        //恢复私有查找 不然会获取到其他人的私有项目
+        JSONArray allProjects = this.findAllProjects();
+        for (Object o : allProjects) {
+            JSONObject project = (JSONObject) o;
+            log.info("增加私有项目");
+            CourseProject courseProject = courseProjectRepository.findById(project.getInteger("id")).orElse(null);
+            if (courseProject != null && !courseProject.getPublic()) {
+                projects.getJSONArray("private").add(project);
+            }
         }
-//        JSONArray allProjects = this.findAllProjects();
-//        for (Object o : allProjects) {
-//            JSONObject project = (JSONObject) o;
-//            log.info("增加私有项目");
-//            CourseProject courseProject = courseProjectRepository.findById(project.getInteger("id")).orElse(null);
-//            if (courseProject != null && !courseProject.getPublic()) {
-//                projects.getJSONArray("private").add(project);
-//            }
-//        }
         return projects;
     }
 
@@ -121,14 +122,16 @@ public class ProjectServiceImpl implements ProjectService {
     @Transactional(rollbackFor = RuntimeException.class)
     public JSONObject createProject(JSONObject project) {
         log.info("Ready to create project.");
-        log.info("ProjectVisibility:{}",project.getBoolean("isPublic"));
         JSONObject devcloudResult = devcloudService.createProject(project);
         log.info("devcloudService.createProject: {}", devcloudResult);
         CourseProject courseProject = new CourseProject();
         courseProject.setProjectId(devcloudResult.getInteger("id"));
         courseProject.setCourse(courseMapper.courseVOToCourse(courseService.findCourseById(project.getLong("courseId"))));
         courseProject.setPublic(project.getBoolean("isPublic"));
-        log.info("CourseProjectVisibility:{}",courseProject.getPublic());
+        //额外处理一下private的项目
+        if(!courseProject.getPublic()){
+            this.setProjectVisibility(courseProject.getProjectId(), courseProject.getPublic());
+        }
         //this.setProjectVisibility(courseProject.getProjectId(), courseProject.getPublic());
         courseProjectRepository.save(courseProject);
         return devcloudResult;