|  | @@ -4,6 +4,7 @@ import com.ym.mec.biz.dal.dao.*;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.entity.*;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.enums.TeachModeEnum;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.enums.VipGroupActivityTypeEnum;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.enums.VipGroupStatusEnum;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.service.CourseScheduleStudentPaymentService;
 | 
	
		
			
				|  |  |  import com.ym.mec.common.constant.CommonConstants;
 | 
	
		
			
				|  |  |  import com.ym.mec.common.dal.BaseDAO;
 | 
	
	
		
			
				|  | @@ -52,6 +53,17 @@ public class CourseScheduleStudentPaymentServiceImpl extends BaseServiceImpl<Lon
 | 
	
		
			
				|  |  |  		if(CollectionUtils.isEmpty(vipGroupCourseSchedules)){
 | 
	
		
			
				|  |  |  			throw new BizException("未获取到排课信息");
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        boolean hasGiveClass=false;
 | 
	
		
			
				|  |  | +        int giveClassTimes=0;
 | 
	
		
			
				|  |  | +        if(vipGroupApplyBaseInfoDto.getStatus().equals(VipGroupStatusEnum.APPLYING)
 | 
	
		
			
				|  |  | +                &&Objects.nonNull(vipGroupActivity)
 | 
	
		
			
				|  |  | +                &&vipGroupActivity.getType().equals(VipGroupActivityTypeEnum.GIVE_CLASS)
 | 
	
		
			
				|  |  | +                &&vipGroupCourseSchedules.size()>=Integer.parseInt(vipGroupActivity.getAttribute1())){
 | 
	
		
			
				|  |  | +            hasGiveClass=true;
 | 
	
		
			
				|  |  | +            giveClassTimes=Integer.parseInt(vipGroupActivity.getAttribute2());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  		List<CourseScheduleStudentPayment> courseScheduleStudentPayments=new ArrayList<>();
 | 
	
		
			
				|  |  |  		Map<TeachModeEnum, List<CourseSchedule>> courseScheduleGroupByTeachMode = vipGroupCourseSchedules.stream().collect(Collectors.groupingBy(CourseSchedule::getTeachMode));
 | 
	
		
			
				|  |  |  		for(TeachModeEnum teachModeEnum:courseScheduleGroupByTeachMode.keySet()){
 | 
	
	
		
			
				|  | @@ -82,9 +94,8 @@ public class CourseScheduleStudentPaymentServiceImpl extends BaseServiceImpl<Lon
 | 
	
		
			
				|  |  |  							);
 | 
	
		
			
				|  |  |  							break;
 | 
	
		
			
				|  |  |  						case GIVE_CLASS:
 | 
	
		
			
				|  |  | -							if (vipGroupActivity.getType() == VipGroupActivityTypeEnum.GIVE_CLASS
 | 
	
		
			
				|  |  | -									&& vipGroupApplyBaseInfoDto.getGiveTeachMode() == teachModeEnum
 | 
	
		
			
				|  |  | -									&& i >= Integer.parseInt(vipGroupActivity.getAttribute1())) {
 | 
	
		
			
				|  |  | +							if (vipGroupApplyBaseInfoDto.getGiveTeachMode() == teachModeEnum
 | 
	
		
			
				|  |  | +									&& i >= (courseSchedules.size()-giveClassTimes)) {
 | 
	
		
			
				|  |  |  								courseScheduleStudentPayment.setExpectPrice(new BigDecimal(0));
 | 
	
		
			
				|  |  |  							} else {
 | 
	
		
			
				|  |  |  								courseScheduleStudentPayment.setExpectPrice(vipGroupApplyBaseInfoDto.getOnlineClassesUnitPrice());
 | 
	
	
		
			
				|  | @@ -108,9 +119,8 @@ public class CourseScheduleStudentPaymentServiceImpl extends BaseServiceImpl<Lon
 | 
	
		
			
				|  |  |  							);
 | 
	
		
			
				|  |  |  							break;
 | 
	
		
			
				|  |  |  						case GIVE_CLASS:
 | 
	
		
			
				|  |  | -							if (vipGroupActivity.getType() == VipGroupActivityTypeEnum.GIVE_CLASS
 | 
	
		
			
				|  |  | -									&& vipGroupApplyBaseInfoDto.getGiveTeachMode() == teachModeEnum
 | 
	
		
			
				|  |  | -									&& i >= Integer.parseInt(vipGroupActivity.getAttribute1())) {
 | 
	
		
			
				|  |  | +							if (vipGroupApplyBaseInfoDto.getGiveTeachMode() == teachModeEnum
 | 
	
		
			
				|  |  | +                                    && i >= (courseSchedules.size()-giveClassTimes)) {
 | 
	
		
			
				|  |  |  								courseScheduleStudentPayment.setExpectPrice(new BigDecimal(0));
 | 
	
		
			
				|  |  |  							} else {
 | 
	
		
			
				|  |  |  								courseScheduleStudentPayment.setExpectPrice(vipGroupApplyBaseInfoDto.getOfflineClassesUnitPrice());
 |