|
@@ -5271,6 +5271,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
}
|
|
|
if(Objects.isNull(courseMergeInfo.getClassGroupId())&&courseMergeInfo.getId().equals(courseSchedule.getId())){
|
|
|
courseMergeInfo.setClassGroupId(courseSchedule.getClassGroupId());
|
|
|
+ courseMergeInfo.setGroupType(courseSchedule.getGroupType());
|
|
|
+ courseMergeInfo.setMusicGroupId(courseSchedule.getMusicGroupId());
|
|
|
}
|
|
|
courseSchedule.setNote("课程合并");
|
|
|
}
|
|
@@ -5279,26 +5281,40 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
Set<Integer> allStudentIds = courseScheduleStudentPayments.stream().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));
|
|
|
+
|
|
|
+ Map<Integer, List<CourseScheduleStudentPayment>> otherStudentCourseMap = courseScheduleStudentPayments.stream().filter(c -> !courseMergeInfo.getId().equals(c.getCourseScheduleId())).collect(Collectors.groupingBy(CourseScheduleStudentPayment::getUserId));
|
|
|
+
|
|
|
+
|
|
|
List<CourseScheduleStudentPayment> newPayments = new ArrayList<>();
|
|
|
List<CourseScheduleStudentPayment> updatePayments = new ArrayList<>();
|
|
|
- for (CourseScheduleStudentPayment courseScheduleStudentPayment : courseScheduleStudentPayments) {
|
|
|
- CourseScheduleStudentPayment updatePayment = mainStudentCourseMap.get(courseScheduleStudentPayment.getUserId());
|
|
|
- if(Objects.nonNull(updatePayment)&&updatePayment.getCourseScheduleId().equals(courseScheduleStudentPayment.getCourseScheduleId())){
|
|
|
- continue;
|
|
|
- }
|
|
|
- if(Objects.nonNull(updatePayment)&&updatePayment.getUserId().equals(courseScheduleStudentPayment.getUserId())){
|
|
|
- updatePayment.setExpectPrice(updatePayment.getExpectPrice().add(courseScheduleStudentPayment.getExpectPrice()));
|
|
|
- courseScheduleStudentPayment.setExpectPrice(BigDecimal.ZERO);
|
|
|
+
|
|
|
+ for (Map.Entry<Integer, List<CourseScheduleStudentPayment>> otherStudentCourseMapEntry : otherStudentCourseMap.entrySet()) {
|
|
|
+ List<CourseScheduleStudentPayment> studentCoursePayments = otherStudentCourseMapEntry.getValue();
|
|
|
+ BigDecimal salary = studentCoursePayments.stream().map(CourseScheduleStudentPayment::getExpectPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ if(mainStudentCourseMap.containsKey(otherStudentCourseMapEntry.getKey())){
|
|
|
+ CourseScheduleStudentPayment updatePayment = mainStudentCourseMap.get(otherStudentCourseMapEntry.getKey());
|
|
|
+ updatePayment.setExpectPrice(updatePayment.getExpectPrice().add(salary));
|
|
|
updatePayments.add(updatePayment);
|
|
|
- updatePayments.add(courseScheduleStudentPayment);
|
|
|
+
|
|
|
+ for (CourseScheduleStudentPayment studentCoursePayment : studentCoursePayments) {
|
|
|
+ studentCoursePayment.setExpectPrice(BigDecimal.ZERO);
|
|
|
+ updatePayments.add(studentCoursePayment);
|
|
|
+ }
|
|
|
continue;
|
|
|
}
|
|
|
CourseScheduleStudentPayment newPayment = new CourseScheduleStudentPayment();
|
|
|
- BeanUtils.copyProperties(courseScheduleStudentPayment, newPayment);
|
|
|
+ BeanUtils.copyProperties(studentCoursePayments.get(0), newPayment);
|
|
|
newPayment.setCourseScheduleId(courseMergeInfo.getId());
|
|
|
newPayment.setClassGroupId(courseMergeInfo.getClassGroupId());
|
|
|
- courseScheduleStudentPayment.setExpectPrice(BigDecimal.ZERO);
|
|
|
- updatePayments.add(courseScheduleStudentPayment);
|
|
|
+ newPayment.setMusicGroupId(courseMergeInfo.getMusicGroupId());
|
|
|
+ newPayment.setGroupType(courseMergeInfo.getGroupType());
|
|
|
+ newPayment.setExpectPrice(salary);
|
|
|
+ newPayment.setId(null);
|
|
|
+ newPayments.add(newPayment);
|
|
|
+ for (CourseScheduleStudentPayment studentCoursePayment : studentCoursePayments) {
|
|
|
+ studentCoursePayment.setExpectPrice(BigDecimal.ZERO);
|
|
|
+ updatePayments.add(studentCoursePayment);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
List<CourseSchedule> courseSchedules=new ArrayList<>();
|