Quellcode durchsuchen

feature 解决题目数量不对的问题

xiahan vor 1 Jahr
Ursprung
Commit
33b6ba6e03

+ 6 - 3
rw-training/training-common/src/main/java/com/rongwei/trainingcommon/sys/service/impl/TrainingExamPaperServiceImpl.java

@@ -58,13 +58,16 @@ public class TrainingExamPaperServiceImpl extends ServiceImpl<ExamPaperDao, Exam
             return R.ok();
         }
         // 存放考题类型和所需要的题目数量
-        Map<String, Long> subjectTypeAndNum = paperSubjectAutoDos.stream().collect(Collectors.groupingBy(info -> info.getSubjecttype(), Collectors.counting()));
+        Map<String, Long> subjectTypeAndNum = paperSubjectAutoDos.stream().collect(Collectors.groupingBy(info -> info.getSubjecttype(),
+                Collectors.summingLong(PaperSubjectAutoDo::getThemesubjectnum)));
         if (paperSubjectAssignDos != null && !paperSubjectAssignDos.isEmpty()) {
-            Map<String, Long> collect = paperSubjectAssignDos.stream().collect(Collectors.groupingBy(info -> info.getSubjecttype(), Collectors.counting()));
+            Map<String, Long> collect = paperSubjectAssignDos.stream().collect(Collectors.groupingBy(info -> info.getSubjecttype(),
+                    Collectors.counting()));
             collect.forEach((key, value) -> subjectTypeAndNum.merge(key, value, (prev, one) -> prev + one));
         }
         // 获取课程Id
         List<String> courseThemeId = paperSubjectAutoDos.stream().map(PaperSubjectAutoDo::getCoursethemeid).collect(Collectors.toList());
+        courseThemeId.addAll(paperSubjectAssignDos.stream().map(PaperSubjectAssignDo::getCourseid).collect(Collectors.toList()));
         // 获取随机题目中课程主题的所有题目信息
         List<SubjectDo> subjectDoList = subjectDao.selectInfoByCourseIds(courseThemeId);
         // 获取所有课程主题下 各类型题目的数量
@@ -142,7 +145,7 @@ public class TrainingExamPaperServiceImpl extends ServiceImpl<ExamPaperDao, Exam
                 // 获取固定题目中取出的题目数量
                 assignSubjectNum = (int) paperSubjectAssignDos
                         .stream()
-                        .filter(assignDo -> assignDo.getCourseid().contains(courseId) && assignDo.getSubjecttype().equals(subjectType))
+                        .filter(assignDo -> courseId.equals(assignDo.getCourseid()) && assignDo.getSubjecttype().equals(subjectType))
                         .count();
             }
             // 获取题库中当前课程主题下有多少道题目类型相同的题