|
@@ -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<>();
|