فهرست منبع

tmp: 录视频版本

mjh 4 سال پیش
والد
کامیت
282154c261

+ 4 - 2
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/service/CourseService.java

@@ -1,6 +1,8 @@
 package cn.seecoder.seecoderportalserver.service;
 
 import cn.seecoder.seecoderportalcommon.vo.*;
+import cn.seecoder.seecoderportalserver.domain.Course;
+import cn.seecoder.seecoderportalserver.web.rest.errors.CustomErrorException;
 
 import java.util.List;
 
@@ -20,7 +22,7 @@ public interface CourseService {
 
     List<CourseVO> findRecommendCourses();
 
-    Long findCourseByCoderId(Integer coderId);
+    CourseVO findCourseByCoderId(Integer coderId);
 
     Boolean checkCourseNameUnique(Long id, String name);
 
@@ -34,7 +36,7 @@ public interface CourseService {
 
     Boolean checkCourseCodeUnique(Long id, String code);
 
-    Long findCourseByEvalId(int evalId);
+    CourseVO findCourseByEvalId(int evalId) throws Exception;
 
     Boolean isCourseNameExisted(String name);
 }

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

@@ -55,8 +55,7 @@ public class AnnouncementServiceImpl implements AnnouncementService {
 
     public AnnouncementVO update(AnnouncementVO announcementVO, Long userId) {
         AnnouncementVO announcement = this.findAnnouncementById(announcementVO.getId());
-        if (!userId.equals(announcement.getSender().getId())
-                || !announcementVO.getSender().getId().equals(announcement.getSender().getId())) {
+        if (!userId.equals(announcement.getSender().getId())) {
             throw new CustomErrorException("当前用户无权修改公告");
         }
         announcement.setType(announcementVO.getType());

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

@@ -137,9 +137,9 @@ public class CourseServiceImpl implements CourseService {
                 .collect(Collectors.toList());
     }
 
-    public Long findCourseByCoderId(Integer coderId) {
+    public CourseVO findCourseByCoderId(Integer coderId) {
         Course course = courseRepository.findCourseByCoderId(coderId).orElseThrow(CustomErrorException::courseNotFound);
-        return course.getState() == ObjectState.DELETED ? null : courseMapper.courseToCourseVO(course).getId();
+        return course.getState() == ObjectState.DELETED ? null : courseMapper.courseToCourseVO(course);
     }
 
     public Boolean checkCourseNameUnique(Long id, String name) {
@@ -158,14 +158,14 @@ public class CourseServiceImpl implements CourseService {
     public String confirmCourseSelection(Long courseId, Long userId) {
         UserVO userVO = userService.findUserById(userId);
         assert userService.isStudent(userVO.getRole());
-        CourseSelectionKey courseSelectionKey = new CourseSelectionKey(courseId, userId);
+        CourseSelectionKey courseSelectionKey = new CourseSelectionKey(userId, courseId);
         CourseVO course = this.findCourseById(courseId);
         // coder系统选课
         if (course.getCoderId() != null) {
             JSONObject coderRes = coderService.chooseCourse(course.getInvitationCode());
-            if (!coderRes.containsKey("res")) {
-                throw new CustomErrorException("Coder: " + coderRes.get("msg"));
-            }
+//            if (!coderRes.containsKey("res")) {
+//                throw new CustomErrorException("Coder: " + coderRes.get("msg"));
+//            }
         }
         // eval系统选课
         if (course.getEvalId() != null) {
@@ -207,9 +207,9 @@ public class CourseServiceImpl implements CourseService {
         return course == null || course.getId().equals(id);
     }
 
-    public Long findCourseByEvalId(int evalId) {
+    public CourseVO findCourseByEvalId(int evalId) throws Exception{
         Course course = courseRepository.findCourseByEvalId(evalId).orElseThrow(CustomErrorException::courseNotFound);
-        return course.getState() == ObjectState.DELETED ? null : courseMapper.courseToCourseVO(course).getId();
+        return course.getState() == ObjectState.DELETED ? null : courseMapper.courseToCourseVO(course);
     }
 
     public Boolean isCourseNameExisted(String name) {

+ 38 - 52
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/serviceImpl/ExamServiceImpl.java

@@ -1,8 +1,10 @@
 package cn.seecoder.seecoderportalserver.serviceImpl;
 
 import cn.seecoder.seecoderportalcommon.vo.CourseVO;
+import cn.seecoder.seecoderportalserver.domain.Course;
 import cn.seecoder.seecoderportalserver.service.CourseService;
 import cn.seecoder.seecoderportalserver.service.ExamService;
+import cn.seecoder.seecoderportalserver.web.rest.errors.CustomErrorException;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import org.springframework.stereotype.Service;
@@ -57,53 +59,13 @@ public class ExamServiceImpl implements ExamService {
     @Override
     public JSONObject findCoderExamsByStudentGroupByCourse() {
         JSONArray exams = coderService.findStudentExams(1, 1000, 0).getJSONArray("res");
-        JSONObject result = new JSONObject();
-        for (int i = 0; i < exams.size(); i++) {
-            JSONObject exam = exams.getJSONObject(i);
-            if (result.containsKey(exam.getString("course"))) {
-                result.getJSONArray(exam.getString("course")).add(exam);
-            } else {
-                JSONArray array = new JSONArray();
-                array.add(exam);
-                result.put(exam.getString("course"), array);
-            }
-        }
-        List<String> keys = new ArrayList<>();
-        for (String key : result.keySet()) {
-            if (!courseService.isCourseNameExisted(key)) {
-                keys.add(key);
-            }
-        }
-        for (String key : keys) {
-            result.remove(key);
-        }
-        return result;
+        return this.groupCoderExamsByCourse(exams);
     }
 
     @Override
     public JSONObject findCoderExamsByTeacherGroupByCourse() {
         JSONArray exams = coderService.findTeacherExams(1, 1000, 0).getJSONArray("res");
-        JSONObject result = new JSONObject();
-        for (int i = 0; i < exams.size(); i++) {
-            JSONObject exam = exams.getJSONObject(i);
-            if (result.containsKey(exam.getString("course"))) {
-                result.getJSONArray(exam.getString("course")).add(exam);
-            } else {
-                JSONArray array = new JSONArray();
-                array.add(exam);
-                result.put(exam.getString("course"), array);
-            }
-        }
-        List<String> keys = new ArrayList<>();
-        for (String key : result.keySet()) {
-            if (!courseService.isCourseNameExisted(key)) {
-                keys.add(key);
-            }
-        }
-        for (String key : keys) {
-            result.remove(key);
-        }
-        return result;
+        return this.groupCoderExamsByCourse(exams);
     }
 
     @Override
@@ -167,26 +129,25 @@ public class ExamServiceImpl implements ExamService {
     @Override
     public JSONObject findEvalExamsByTeacherGroupByCourse() {
         JSONArray exams = evalService.findTeacherExams(1, 1000, 0).getJSONObject("result").getJSONArray("examVOList");
+        JSONObject groupedExams = new JSONObject();
         JSONObject result = new JSONObject();
         for (int i = 0; i < exams.size(); i++) {
             JSONObject exam = exams.getJSONObject(i);
-            if (result.containsKey(exam.getJSONObject("course").getString("name"))) {
-                result.getJSONArray(exam.getJSONObject("course").getString("name")).add(exam);
+            if (groupedExams.containsKey(exam.getJSONObject("course").getString("id"))) {
+                groupedExams.getJSONArray(exam.getJSONObject("course").getString("id")).add(exam);
             } else {
                 JSONArray array = new JSONArray();
                 array.add(exam);
-                result.put(exam.getJSONObject("course").getString("name"), array);
+                groupedExams.put(exam.getJSONObject("course").getString("id"), array);
             }
         }
-        List<String> keys = new ArrayList<>();
-        for (String key : result.keySet()) {
-            if (!courseService.isCourseNameExisted(key)) {
-                keys.add(key);
+        for (String key : groupedExams.keySet()) {
+            int evalId = Integer.parseInt(key);
+            try {
+                result.put(courseService.findCourseByEvalId(evalId).getName(), groupedExams.get(key));
+            } catch (Exception ignored) {
             }
         }
-        for (String key : keys) {
-            result.remove(key);
-        }
         return result;
     }
 
@@ -199,4 +160,29 @@ public class ExamServiceImpl implements ExamService {
     public JSONArray findEvalTeacherExamsByCourseId(int courseId) {
         return evalService.findStudentExamsByCourseId(courseId).getJSONArray("result");
     }
+
+    // private
+    private JSONObject groupCoderExamsByCourse(JSONArray exams) {
+        JSONObject groupedExams = new JSONObject();
+        JSONObject result = new JSONObject();
+
+        for (int i = 0; i < exams.size(); i++) {
+            JSONObject exam = exams.getJSONObject(i);
+            if (groupedExams.containsKey(exam.getString("courseId"))) {
+                groupedExams.getJSONArray(exam.getString("courseId")).add(exam);
+            } else {
+                JSONArray array = new JSONArray();
+                array.add(exam);
+                groupedExams.put(exam.getString("courseId"), array);
+            }
+        }
+        for (String key : groupedExams.keySet()) {
+            try {
+                int coderId = Integer.parseInt(key);
+                result.put(courseService.findCourseByCoderId(coderId).getName(), groupedExams.get(key));
+            } catch (CustomErrorException ignored) {
+            }
+        }
+        return result;
+    }
 }

+ 6 - 2
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/web/rest/CourseController.java

@@ -58,7 +58,7 @@ public class CourseController {
 
     @GetMapping("/getCourseByCoderId")
     public OkResponse<Long> findCourseByCoderId(@RequestParam Integer coderId) {
-        return OkResponse.of(courseService.findCourseByCoderId(coderId));
+        return OkResponse.of(courseService.findCourseByCoderId(coderId).getId());
     }
 
     @GetMapping("/checkName")
@@ -88,6 +88,10 @@ public class CourseController {
 
     @GetMapping("/getCourseByEvalId")
     public OkResponse<Long> findCourseByEvalId(@RequestParam int evalId){
-        return OkResponse.of(courseService.findCourseByEvalId(evalId));
+        try {
+            return OkResponse.of(courseService.findCourseByEvalId(evalId).getId());
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
     }
 }