Explorar o código

fix:1、课程合并去掉部分限制

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

+ 10 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -5272,16 +5272,24 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		Map<Long, Set<Integer>> courseStudentIdsMap = courseScheduleStudentPayments.stream().collect(Collectors.groupingBy(CourseScheduleStudentPayment::getCourseScheduleId, Collectors.mapping(CourseScheduleStudentPayment::getUserId, Collectors.toSet())));
 		Set<Integer> allStudentIds = courseScheduleStudentPayments.stream().map(CourseScheduleStudentPayment::getUserId).collect(Collectors.toSet());
 
-		Set<Integer> mainCourseStudentIds = courseScheduleStudentPayments.stream().filter(c -> courseMergeInfo.getId().equals(c.getCourseScheduleId())).map(CourseScheduleStudentPayment::getUserId).collect(Collectors.toSet());
+		Map<Integer, CourseScheduleStudentPayment> mainStudentCourseMap = courseScheduleStudentPayments.stream().filter(c -> courseMergeInfo.getId().equals(c.getCourseScheduleId())).collect(Collectors.toMap(CourseScheduleStudentPayment::getUserId, c -> c, (c1, c2) -> c1));
 		List<CourseScheduleStudentPayment> newPayments = new ArrayList<>();
+		List<CourseScheduleStudentPayment> updatePayments = new ArrayList<>();
 		for (CourseScheduleStudentPayment courseScheduleStudentPayment : courseScheduleStudentPayments) {
-			if(mainCourseStudentIds.contains(courseScheduleStudentPayment.getUserId())){
+			if(mainStudentCourseMap.keySet().contains(courseScheduleStudentPayment.getUserId())){
+				CourseScheduleStudentPayment updatePayment = mainStudentCourseMap.get(courseScheduleStudentPayment.getUserId());
+				updatePayment.setExpectPrice(updatePayment.getExpectPrice().add(courseScheduleStudentPayment.getExpectPrice()));
+				courseScheduleStudentPayment.setExpectPrice(BigDecimal.ZERO);
+				updatePayments.add(updatePayment);
+				updatePayments.add(courseScheduleStudentPayment);
 				continue;
 			}
 			CourseScheduleStudentPayment newPayment = new CourseScheduleStudentPayment();
 			BeanUtils.copyProperties(courseScheduleStudentPayment, newPayment);
 			newPayment.setCourseScheduleId(courseMergeInfo.getId());
 			newPayment.setClassGroupId(courseMergeInfo.getClassGroupId());
+			courseScheduleStudentPayment.setExpectPrice(BigDecimal.ZERO);
+			updatePayments.add(courseScheduleStudentPayment);
 		}
 
 		List<CourseSchedule> courseSchedules=new ArrayList<>();