Explorar o código

feat: 教师端课程批量调整

Joburgess %!s(int64=4) %!d(string=hai) anos
pai
achega
5c9e8a0741

+ 19 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -1454,8 +1454,13 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			}
 		}
 		Set<Integer> currentCourseLeaveStudentIds = courseLeaveStudentIdsMap.get(courseSchedule.getId());
-		Set<Integer> currentCourseStudentIds = courseStudentIdsMap.get(courseSchedule.getId())
-												.stream().filter(id->Objects.nonNull(currentCourseLeaveStudentIds)&&!currentCourseLeaveStudentIds.contains(id)).collect(Collectors.toSet());
+		Set<Integer> currentCourseStudentIds;
+		if(null!=currentCourseLeaveStudentIds){
+			currentCourseStudentIds = courseStudentIdsMap.get(courseSchedule.getId())
+					.stream().filter(id->Objects.nonNull(currentCourseLeaveStudentIds)&&!currentCourseLeaveStudentIds.contains(id)).collect(Collectors.toSet());
+		}else{
+			currentCourseStudentIds = courseStudentIdsMap.get(courseSchedule.getId());
+		}
 
 		boolean isRepeat = false;
 		List<CourseSchedule> repeatCourses = new ArrayList<>();
@@ -1482,9 +1487,14 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
 			Set<Integer> csLeaveStudentIds = courseLeaveStudentIdsMap.get(cs.getId());
 			Set<Integer> repeatStudentIds = new HashSet<>();
+			Set<Integer> csStudentIds;
 			if(null!=csLeaveStudentIds){
-				Set<Integer> csStudentIds = courseStudentIdsMap.get(cs.getId()).stream()
+				csStudentIds = courseStudentIdsMap.get(cs.getId()).stream()
 						.filter(id->Objects.nonNull(csLeaveStudentIds)&&!csLeaveStudentIds.contains(id)).collect(Collectors.toSet());
+			}else{
+				csStudentIds = courseStudentIdsMap.get(cs.getId());
+			}
+			if(null!=csStudentIds){
 				repeatStudentIds = csStudentIds.stream().filter(id -> currentCourseStudentIds.contains(id)).collect(Collectors.toSet());
 			}
 
@@ -1507,9 +1517,14 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
 				Set<Integer> csLeaveStudentIds = courseLeaveStudentIdsMap.get(cs.getId());
 				Set<Integer> repeatStudentIds = new HashSet<>();
+				Set<Integer> csStudentIds;
 				if(null!=csLeaveStudentIds){
-					Set<Integer> csStudentIds = courseStudentIdsMap.get(cs.getId()).stream()
+					csStudentIds = courseStudentIdsMap.get(cs.getId()).stream()
 							.filter(id->Objects.nonNull(csLeaveStudentIds)&&!csLeaveStudentIds.contains(id)).collect(Collectors.toSet());
+				}else{
+					csStudentIds = courseStudentIdsMap.get(cs.getId());
+				}
+				if(null!=csStudentIds){
 					repeatStudentIds = csStudentIds.stream().filter(id -> currentCourseStudentIds.contains(id)).collect(Collectors.toSet());
 				}