|  | @@ -168,12 +168,12 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	@Override
 | 
	
		
			
				|  |  | -	public List<Date> getCourseScheduleDateByTeacher(Date month) {
 | 
	
		
			
				|  |  | +	public List<Date> getCourseScheduleDateByTeacher(Date month,String type) {
 | 
	
		
			
				|  |  |  		SysUser user = sysUserFeignService.queryUserInfo();
 | 
	
		
			
				|  |  |  		if(null==user){
 | 
	
		
			
				|  |  |  			throw new BizException("获取用户信息失败");
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  | -		return courseScheduleDao.getTeacherCourseScheduleDate(user.getId().longValue(),month);
 | 
	
		
			
				|  |  | +		return courseScheduleDao.getTeacherCourseScheduleDate(user.getId().longValue(),month,type);
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	@Override
 | 
	
	
		
			
				|  | @@ -190,14 +190,15 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 | 
	
		
			
				|  |  |  		if(Objects.isNull(classDate)){
 | 
	
		
			
				|  |  |  			throw new BizException("请选择上课日期!");
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  		SysUser user = sysUserFeignService.queryUserInfo();
 | 
	
		
			
				|  |  |  		if(null==user){
 | 
	
		
			
				|  |  |  			throw new BizException("请登录");
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  		SysConfig vip_appeal_days_range = sysConfigDao.findByParamName("vip_appeal_days_range");
 | 
	
		
			
				|  |  | -		Map<String,Object> result=new HashMap<>();
 | 
	
		
			
				|  |  | +		SysConfig advance_leave_hours = sysConfigDao.findByParamName("advance_leave_hours");
 | 
	
		
			
				|  |  | +		Map<String,Object> result=new HashMap<>(3);
 | 
	
		
			
				|  |  |  		result.put("vipAppealDaysRange",vip_appeal_days_range.getParanValue());
 | 
	
		
			
				|  |  | +		result.put("advanceLeaveHours",Integer.parseInt(advance_leave_hours.getParanValue()));
 | 
	
		
			
				|  |  |  		result.put("list",courseScheduleDao.getStudentCourseSchedulesWithDate(classDate,user.getId().longValue()));
 | 
	
		
			
				|  |  |  		return result;
 | 
	
		
			
				|  |  |  	}
 | 
	
	
		
			
				|  | @@ -233,11 +234,11 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	@Override
 | 
	
		
			
				|  |  | -	public List<CourseScheduleDto> getTeacherCourseSchedulesWithDate(Integer userId,Date classDate) {
 | 
	
		
			
				|  |  | +	public List<CourseScheduleDto> getTeacherCourseSchedulesWithDate(Integer userId,Date classDate,String type) {
 | 
	
		
			
				|  |  |  		if(Objects.isNull(classDate)){
 | 
	
		
			
				|  |  |  			throw new BizException("请选择上课日期!");
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  | -		List<CourseScheduleDto> teacherCourseSchedulesWithDate = courseScheduleDao.getTeacherCourseSchedulesWithDate(classDate, userId.longValue());
 | 
	
		
			
				|  |  | +		List<CourseScheduleDto> teacherCourseSchedulesWithDate = courseScheduleDao.getTeacherCourseSchedulesWithDate(classDate, userId.longValue(),type);
 | 
	
		
			
				|  |  |  		teacherCourseSchedulesWithDate.forEach(courseScheduleDto -> {
 | 
	
		
			
				|  |  |  			if(Objects.nonNull(courseScheduleDto.getClassGroupId())){
 | 
	
		
			
				|  |  |  				String[] studentNums = classGroupStudentMapperDao.findStudentNumByClassGroupId(courseScheduleDto.getClassGroupId().longValue());
 | 
	
	
		
			
				|  | @@ -331,6 +332,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 | 
	
		
			
				|  |  |  			throw new BizException("课程信息错误");
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +		Date now=new Date();
 | 
	
		
			
				|  |  | +		//明天日期
 | 
	
		
			
				|  |  | +		Date tomorrow = DateUtil.addDays1(now, 1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  		//需要生成课程课酬的课程计划
 | 
	
		
			
				|  |  |  		List<CourseSchedule> needCreateCourseScheduleTeacherSalaryCourse=new ArrayList<>();
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -340,8 +345,17 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  		Map<Long, CourseSchedule> oldCourseSchedules = oldCourseScheduleList.stream().collect(Collectors.toMap(CourseSchedule::getId,courseSchedule -> courseSchedule));
 | 
	
		
			
				|  |  |  		newCourseSchedules.forEach(newCourseSchedule -> {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +			if(newCourseSchedule.getStartClassTime().before(tomorrow)){
 | 
	
		
			
				|  |  | +			    throw new BizException("调整时间必须为明天以后");
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  			CourseSchedule oldCourseSchedule = oldCourseSchedules.get(newCourseSchedule.getId());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +            if(oldCourseSchedule.getStartClassTime().before(tomorrow)){
 | 
	
		
			
				|  |  | +                throw new BizException("不能调整今天及以前的课程");
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  			ArrayList<Date> dates = new ArrayList<>();
 | 
	
		
			
				|  |  |  			dates.add(newCourseSchedule.getClassDate());
 | 
	
		
			
				|  |  |  			List<CourseSchedule> coursesByDates = courseScheduleDao.findOverLapCoursesInDay(dates,newCourseSchedule.getStartClassTime(),newCourseSchedule.getEndClassTime());
 | 
	
	
		
			
				|  | @@ -350,7 +364,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 | 
	
		
			
				|  |  |  				courseScheduleDao.update(newCourseSchedule);
 | 
	
		
			
				|  |  |  			}else{
 | 
	
		
			
				|  |  |  				coursesByDates.forEach(courseSchedule -> {
 | 
	
		
			
				|  |  | -					if(courseSchedule.getTeacherId().equals(newCourseSchedule.getTeacherId())){
 | 
	
		
			
				|  |  | +					if(courseSchedule.getActualTeacherId().equals(newCourseSchedule.getActualTeacherId())){
 | 
	
		
			
				|  |  |  						//存在时间重叠,需要前端重新调整
 | 
	
		
			
				|  |  |  						throw new BizException("所选教师在当天课程安排上存在重叠!");
 | 
	
		
			
				|  |  |  					}
 | 
	
	
		
			
				|  | @@ -367,7 +381,9 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 | 
	
		
			
				|  |  |  			List<Integer> beReplaceTeacherIds=new ArrayList<>();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  			if(oldCourseSchedule.getType()== CourseSchedule.CourseScheduleType.VIP){
 | 
	
		
			
				|  |  | -				if(Objects.isNull(oldCourseSchedule.getActualTeacherId())||!oldCourseSchedule.getActualTeacherId().equals(newCourseSchedule.getActualTeacherId())){
 | 
	
		
			
				|  |  | +				if(Objects.isNull(oldCourseSchedule.getActualTeacherId())
 | 
	
		
			
				|  |  | +						||(!oldCourseSchedule.getActualTeacherId().equals(newCourseSchedule.getActualTeacherId())
 | 
	
		
			
				|  |  | +						&&Objects.nonNull(newCourseSchedule.getActualTeacherId()))){
 | 
	
		
			
				|  |  |  					VipGroup byCourseSchedule = vipGroupDao.findByCourseSchedule(newCourseSchedule.getId().intValue());
 | 
	
		
			
				|  |  |  					TeacherDefaultVipGroupSalary byTeacherAndCategory = teacherDefaultVipGroupSalaryDao.findByTeacherAndCategory(newCourseSchedule.getActualTeacherId(), byCourseSchedule.getVipGroupCategoryId());
 | 
	
		
			
				|  |  |  					List<CourseSchedule> courseSchedules=new ArrayList<>();
 | 
	
	
		
			
				|  | @@ -381,7 +397,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 | 
	
		
			
				|  |  |  					}
 | 
	
		
			
				|  |  |  				}
 | 
	
		
			
				|  |  |  			}else{
 | 
	
		
			
				|  |  | -				if(Objects.isNull(oldCourseSchedule.getActualTeacherId())||!oldCourseSchedule.getActualTeacherId().equals(newCourseSchedule.getActualTeacherId())){
 | 
	
		
			
				|  |  | +				if(Objects.isNull(oldCourseSchedule.getActualTeacherId())
 | 
	
		
			
				|  |  | +						||!oldCourseSchedule.getActualTeacherId().equals(newCourseSchedule.getActualTeacherId())){
 | 
	
		
			
				|  |  |  					if(Objects.nonNull(oldCourseSchedule.getActualTeacherId())){
 | 
	
		
			
				|  |  |  						beReplaceTeacherIds.add(oldCourseSchedule.getActualTeacherId().intValue());
 | 
	
		
			
				|  |  |  					}
 | 
	
	
		
			
				|  | @@ -426,7 +443,9 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 | 
	
		
			
				|  |  |  			}
 | 
	
		
			
				|  |  |  		});
 | 
	
		
			
				|  |  |  		//生成修改后的教师课酬
 | 
	
		
			
				|  |  | -		classGroupTeacherMapperService.createCourseScheduleTeacherSalary(needCreateCourseScheduleTeacherSalaryCourse);
 | 
	
		
			
				|  |  | +		if(!CollectionUtils.isEmpty(needCreateCourseScheduleTeacherSalaryCourse)){
 | 
	
		
			
				|  |  | +			classGroupTeacherMapperService.createCourseScheduleTeacherSalary(needCreateCourseScheduleTeacherSalaryCourse);
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	@Transactional(rollbackFor = Exception.class)
 |