|  | @@ -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,34 +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 (Map.Entry<Integer, CourseScheduleStudentPayment> mainStudentCourseMapEntry : mainStudentCourseMap.entrySet()) {
 | 
	
		
			
				|  |  | -			BigDecimal salary = courseScheduleStudentPayments.stream().filter(c -> mainStudentCourseMapEntry.getKey().equals(c.getUserId())).map(CourseScheduleStudentPayment::getExpectPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
 | 
	
		
			
				|  |  | -			CourseScheduleStudentPayment updatePayment = mainStudentCourseMapEntry.getValue();
 | 
	
		
			
				|  |  | -			updatePayment.setExpectPrice(salary);
 | 
	
		
			
				|  |  | -			updatePayments.add(updatePayment);
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -		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())){
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -				courseScheduleStudentPayment.setExpectPrice(BigDecimal.ZERO);
 | 
	
		
			
				|  |  | -				updatePayments.add(courseScheduleStudentPayment);
 | 
	
		
			
				|  |  | +		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);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +				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);
 | 
	
		
			
				|  |  | +			newPayment.setMusicGroupId(courseMergeInfo.getMusicGroupId());
 | 
	
		
			
				|  |  | +			newPayment.setGroupType(courseMergeInfo.getGroupType());
 | 
	
		
			
				|  |  | +			newPayment.setExpectPrice(salary);
 | 
	
		
			
				|  |  |  			newPayment.setId(null);
 | 
	
		
			
				|  |  |  			newPayments.add(newPayment);
 | 
	
		
			
				|  |  | -			updatePayments.add(courseScheduleStudentPayment);
 | 
	
		
			
				|  |  | +			for (CourseScheduleStudentPayment studentCoursePayment : studentCoursePayments) {
 | 
	
		
			
				|  |  | +				studentCoursePayment.setExpectPrice(BigDecimal.ZERO);
 | 
	
		
			
				|  |  | +				updatePayments.add(studentCoursePayment);
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  		List<CourseSchedule> courseSchedules=new ArrayList<>();
 |