Browse Source

fix: 团队fork项目

mjh 3 years ago
parent
commit
877f12a80a

+ 3 - 6
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/serviceImpl/CourseServiceImpl.java

@@ -38,7 +38,6 @@ public class CourseServiceImpl implements CourseService {
     private final CourseSelectionRepository courseSelectionRepository;
     private final UserService userService;
     private final CoderService coderService;
-    //private final HelperService helperService;
     private final EvalService evalService;
     private final OssUtil ossUtil;
 
@@ -193,7 +192,6 @@ public class CourseServiceImpl implements CourseService {
         assert userService.isStudent(userVO.getRole());
         CourseSelectionKey courseSelectionKey = new CourseSelectionKey(userId, courseId);
         CourseVO course = this.findCourseById(courseId);
-        // coder系统选课
         if (course.getCoderId() != null) {
             JSONObject coderRes = coderService.chooseCourse(course.getInvitationCode());
         }
@@ -201,10 +199,6 @@ public class CourseServiceImpl implements CourseService {
         if (course.getEvalId() != null) {
             JSONObject evalRes = evalService.chooseCourse(course.getInvitationCode());
         }
-//        // 门户系统选课
-//        if (course.getHelperId() != null) {
-//            JSONObject jsonObject = helperService.chooseCourse(course.getInvitationCode());
-//        }
         CourseSelection courseSelection = new CourseSelection(courseSelectionKey);
         courseSelection.setState(true);
         courseSelectionRepository.save(courseSelection);
@@ -272,6 +266,9 @@ public class CourseServiceImpl implements CourseService {
     public Boolean isCourseAccessible(Long id) {
         DomainUserDetails user = SecurityUtils.getCurrentUser();
         CourseVO courseVO = findCourseById(id);
+        if(courseVO.getState().equals(ObjectState.EXAMPLE)){
+            return true;
+        }
         if(user.getId().equals(courseVO.getTeacher().getId())){
             return true;
         }

+ 2 - 1
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/serviceImpl/GroupServiceImpl.java

@@ -183,8 +183,9 @@ public class GroupServiceImpl implements GroupService {
                     getGroupTableName(courseId),
                     groupMember.getGroupId());
             return generateGroupDTO(courseId, group);
-        } catch (PSQLException e) {
+        } catch (PSQLException | NullPointerException e) {
             throw CustomErrorException.groupNotFound();
+
         }
     }
 

+ 9 - 10
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/serviceImpl/ProjectServiceImpl.java

@@ -148,20 +148,19 @@ public class ProjectServiceImpl implements ProjectService {
         if (!courseService.checkSelection(SecurityUtils.getCurrentUser().getId(), courseProject.getCourse().getId())) {
             throw CustomErrorException.unauthorizedUser();
         }
-//        JSONObject devcloudResult = devcloudService.forkProject(projectId, name);
-//        log.info("devcloudService.forkProject: {}", devcloudResult);
-//        CourseProject forkCourseProject = new CourseProject();
-//        Integer newProjectId = devcloudResult.getInteger("projectId");
-        Integer newProjectId = 6520;
-//        forkCourseProject.setProjectId(newProjectId);
-//        forkCourseProject.setCourse(courseProject.getCourse());
-//        forkCourseProject.setPublic(false);
-//        courseProjectRepository.save(forkCourseProject);
+        JSONObject devcloudResult = devcloudService.forkProject(projectId, name);
+        log.info("devcloudService.forkProject: {}", devcloudResult);
+        CourseProject forkCourseProject = new CourseProject();
+        Integer newProjectId = devcloudResult.getInteger("projectId");
+        forkCourseProject.setProjectId(newProjectId);
+        forkCourseProject.setCourse(courseProject.getCourse());
+        forkCourseProject.setPublic(false);
+        courseProjectRepository.save(forkCourseProject);
         // 若当前用户已组队,则将队友添加到当前项目当中
         List<UserVO> members;
         try {
             members = groupService.findGroup(courseProject.getCourse().getId()).getMembers();
-        } catch (BadSqlGrammarException e) {
+        } catch (BadSqlGrammarException | CustomErrorException e) {
             members = new ArrayList<>();
         }
         for (UserVO member : members) {