|  | @@ -529,6 +529,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 | 
	
		
			
				|  |  |  			throw new BizException("学员信息错误");
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  		Map<Integer, SimpleUserDto> idUserInfoMap = studentSimpleInfos.stream().collect(Collectors.toMap(SimpleUserDto::getUserId, s -> s, (s1, s2) -> s1));
 | 
	
		
			
				|  |  | +		Map<Integer, BigDecimal> studentTheoryPriceMap = new HashMap<>();
 | 
	
		
			
				|  |  |  		for (Student student : studentDetail) {
 | 
	
		
			
				|  |  |  			if(StringUtils.isEmpty(student.getActivityCourseDetail())){
 | 
	
		
			
				|  |  |  				SimpleUserDto studentInfo = idUserInfoMap.get(student.getUserId());
 | 
	
	
		
			
				|  | @@ -542,6 +543,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 | 
	
		
			
				|  |  |  			}
 | 
	
		
			
				|  |  |  			courseDetail.fluentPut(vipGroup.getVipGroupApplyBaseInfo().getActivityCourseType().getCode(), surplusTimes-1);
 | 
	
		
			
				|  |  |  			student.setActivityCourseDetail(courseDetail.toJSONString());
 | 
	
		
			
				|  |  | +			if(ActivityCourseType.MUSIC_THEORY.equals(vipGroup.getVipGroupApplyBaseInfo().getActivityCourseType())){
 | 
	
		
			
				|  |  | +				studentTheoryPriceMap.put(student.getUserId(), courseDetail.getBigDecimal("music_theory_price"));
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  		studentDao.batchUpdate(studentDetail);
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -817,21 +821,27 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 | 
	
		
			
				|  |  |  		userRoleMap.put(vipGroupApplyBaseInfoDto.getUserId(),"指导老师");
 | 
	
		
			
				|  |  |  		//生成学生单课缴费信息
 | 
	
		
			
				|  |  |  		for (ClassGroupStudentMapper classGroupStudent : classGroupStudents) {
 | 
	
		
			
				|  |  | -			if(ActivityCourseType.FREE_VIP.equals(vipGroup.getVipGroupApplyBaseInfo().getActivityCourseType())){
 | 
	
		
			
				|  |  | +			if(ActivityCourseType.FREE_VIP.equals(vipGroup.getVipGroupApplyBaseInfo().getActivityCourseType())
 | 
	
		
			
				|  |  | +				||ActivityCourseType.MUSIC_THEORY.equals(vipGroup.getVipGroupApplyBaseInfo().getActivityCourseType())){
 | 
	
		
			
				|  |  |  				List<CourseScheduleStudentPayment> courseScheduleStudentPayments=new ArrayList<>();
 | 
	
		
			
				|  |  | -				for (Integer studentId : studentIdList) {
 | 
	
		
			
				|  |  | -					for (CourseSchedule courseSchedule : courseSchedules) {
 | 
	
		
			
				|  |  | -						CourseScheduleStudentPayment courseScheduleStudentPayment = new CourseScheduleStudentPayment();
 | 
	
		
			
				|  |  | -						courseScheduleStudentPayment.setUserId(studentId);
 | 
	
		
			
				|  |  | -						courseScheduleStudentPayment.setGroupType(courseSchedule.getGroupType());
 | 
	
		
			
				|  |  | -						courseScheduleStudentPayment.setMusicGroupId(courseSchedule.getMusicGroupId());
 | 
	
		
			
				|  |  | -						courseScheduleStudentPayment.setCourseScheduleId(courseSchedule.getId());
 | 
	
		
			
				|  |  | -						courseScheduleStudentPayment.setClassGroupId(courseSchedule.getClassGroupId());
 | 
	
		
			
				|  |  | +				BigDecimal price = studentTheoryPriceMap.get(classGroupStudent.getUserId());
 | 
	
		
			
				|  |  | +				BigDecimal coursePrice = price.divide(new BigDecimal(courseSchedules.size()), CommonConstants.DECIMAL_FINAL_PLACE, BigDecimal.ROUND_HALF_UP);
 | 
	
		
			
				|  |  | +				for (CourseSchedule courseSchedule : courseSchedules) {
 | 
	
		
			
				|  |  | +					CourseScheduleStudentPayment courseScheduleStudentPayment = new CourseScheduleStudentPayment();
 | 
	
		
			
				|  |  | +					courseScheduleStudentPayment.setUserId(classGroupStudent.getUserId());
 | 
	
		
			
				|  |  | +					courseScheduleStudentPayment.setGroupType(courseSchedule.getGroupType());
 | 
	
		
			
				|  |  | +					courseScheduleStudentPayment.setMusicGroupId(courseSchedule.getMusicGroupId());
 | 
	
		
			
				|  |  | +					courseScheduleStudentPayment.setCourseScheduleId(courseSchedule.getId());
 | 
	
		
			
				|  |  | +					courseScheduleStudentPayment.setClassGroupId(courseSchedule.getClassGroupId());
 | 
	
		
			
				|  |  | +					if(ActivityCourseType.MUSIC_THEORY.equals(vipGroup.getVipGroupApplyBaseInfo().getActivityCourseType())){
 | 
	
		
			
				|  |  | +						courseScheduleStudentPayment.setExpectPrice(coursePrice);
 | 
	
		
			
				|  |  | +						courseScheduleStudentPayment.setOriginalPrice(coursePrice);
 | 
	
		
			
				|  |  | +					}else{
 | 
	
		
			
				|  |  |  						courseScheduleStudentPayment.setExpectPrice(BigDecimal.ZERO);
 | 
	
		
			
				|  |  |  						courseScheduleStudentPayment.setOriginalPrice(BigDecimal.ZERO);
 | 
	
		
			
				|  |  | -						courseScheduleStudentPayment.setActualPrice(courseScheduleStudentPayment.getExpectPrice());
 | 
	
		
			
				|  |  | -						courseScheduleStudentPayments.add(courseScheduleStudentPayment);
 | 
	
		
			
				|  |  |  					}
 | 
	
		
			
				|  |  | +					courseScheduleStudentPayment.setActualPrice(courseScheduleStudentPayment.getExpectPrice());
 | 
	
		
			
				|  |  | +					courseScheduleStudentPayments.add(courseScheduleStudentPayment);
 | 
	
		
			
				|  |  |  				}
 | 
	
		
			
				|  |  |  				courseScheduleStudentPaymentDao.batchInsert(courseScheduleStudentPayments);
 | 
	
		
			
				|  |  |  			}else{
 |