|  | @@ -29,6 +29,7 @@ import org.springframework.stereotype.Service;
 | 
	
		
			
				|  |  |  import org.springframework.transaction.annotation.Transactional;
 | 
	
		
			
				|  |  |  import org.springframework.util.CollectionUtils;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +import java.math.BigDecimal;
 | 
	
		
			
				|  |  |  import java.text.SimpleDateFormat;
 | 
	
		
			
				|  |  |  import java.util.*;
 | 
	
		
			
				|  |  |  import java.util.stream.Collectors;
 | 
	
	
		
			
				|  | @@ -75,6 +76,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 | 
	
		
			
				|  |  |  	private MusicGroupDao musicGroupDao;
 | 
	
		
			
				|  |  |  	@Autowired
 | 
	
		
			
				|  |  |  	private SubjectDao subjectDao;
 | 
	
		
			
				|  |  | +	@Autowired
 | 
	
		
			
				|  |  | +	private ClassGroupTeacherSalaryDao classGroupTeacherSalaryDao;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	@Override
 | 
	
		
			
				|  |  |  	public BaseDAO<Long, CourseSchedule> getDAO() {
 | 
	
	
		
			
				|  | @@ -633,6 +636,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 | 
	
		
			
				|  |  |  			if(oldCourseSchedule.getType()== CourseSchedule.CourseScheduleType.VIP){
 | 
	
		
			
				|  |  |  				boolean oldTeacherIsNull=Objects.isNull(oldCourseSchedule.getActualTeacherId());
 | 
	
		
			
				|  |  |  				boolean newTeacherIsNull=Objects.isNull(newCourseSchedule.getActualTeacherId());
 | 
	
		
			
				|  |  | +				if(newTeacherIsNull&&!oldTeacherIsNull){
 | 
	
		
			
				|  |  | +					newCourseSchedule.setActualTeacherId(oldCourseSchedule.getActualTeacherId());
 | 
	
		
			
				|  |  | +					newCourseSchedule.setTeachMode(oldCourseSchedule.getTeachMode());
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  |  				boolean oldSchoolIsNull=Objects.isNull(oldCourseSchedule.getSchoolId());
 | 
	
		
			
				|  |  |  				boolean newSchoolIsNull=Objects.isNull(newCourseSchedule.getSchoolId());
 | 
	
		
			
				|  |  |  				boolean teacherIsChange=oldTeacherIsNull||(!newTeacherIsNull&&!oldCourseSchedule.getActualTeacherId().equals(newCourseSchedule.getActualTeacherId()));
 | 
	
	
		
			
				|  | @@ -640,13 +647,28 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  				if(teacherIsChange||schoolIsChange){
 | 
	
		
			
				|  |  |  					VipGroup byCourseSchedule = vipGroupDao.findByCourseSchedule(newCourseSchedule.getId().intValue());
 | 
	
		
			
				|  |  | -					TeacherDefaultVipGroupSalary byTeacherAndCategory = teacherDefaultVipGroupSalaryDao.findByTeacherAndCategory(newCourseSchedule.getActualTeacherId(), byCourseSchedule.getVipGroupCategoryId());
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +					BigDecimal onlineTeacherSalary=new BigDecimal(0),offlineTeacherSalary=new BigDecimal(0);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +					if(teacherIsChange){
 | 
	
		
			
				|  |  | +						TeacherDefaultVipGroupSalary byTeacherAndCategory = teacherDefaultVipGroupSalaryDao.findByTeacherAndCategory(newCourseSchedule.getActualTeacherId(), byCourseSchedule.getVipGroupCategoryId());
 | 
	
		
			
				|  |  | +						if(Objects.nonNull(byTeacherAndCategory)){
 | 
	
		
			
				|  |  | +							onlineTeacherSalary=byTeacherAndCategory.getOnlineClassesSalary();
 | 
	
		
			
				|  |  | +							offlineTeacherSalary=byTeacherAndCategory.getOfflineClassesSalary();
 | 
	
		
			
				|  |  | +						}
 | 
	
		
			
				|  |  | +					}else{
 | 
	
		
			
				|  |  | +						ClassGroupTeacherSalary byClassGroupAndTeacher = classGroupTeacherSalaryDao.findByClassGroupAndTeacher(oldCourseSchedule.getClassGroupId(), newCourseSchedule.getActualTeacherId());
 | 
	
		
			
				|  |  | +						if(Objects.nonNull(byClassGroupAndTeacher)){
 | 
	
		
			
				|  |  | +							onlineTeacherSalary=byClassGroupAndTeacher.getOnlineClassesSalary();
 | 
	
		
			
				|  |  | +							offlineTeacherSalary=byClassGroupAndTeacher.getSalary();
 | 
	
		
			
				|  |  | +						}
 | 
	
		
			
				|  |  | +					}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  					List<CourseSchedule> courseSchedules=new ArrayList<>();
 | 
	
		
			
				|  |  |  					courseSchedules.add(newCourseSchedule);
 | 
	
		
			
				|  |  |  					courseScheduleTeacherSalaryService.createCourseScheduleTeacherVipSalary(byCourseSchedule,
 | 
	
		
			
				|  |  |  							courseSchedules,
 | 
	
		
			
				|  |  | -							byTeacherAndCategory.getOnlineClassesSalary(),
 | 
	
		
			
				|  |  | -							byTeacherAndCategory.getOfflineClassesSalary());
 | 
	
		
			
				|  |  | +							onlineTeacherSalary,offlineTeacherSalary);
 | 
	
		
			
				|  |  |  					if(Objects.nonNull(oldCourseSchedule.getActualTeacherId())){
 | 
	
		
			
				|  |  |  						beReplaceTeacherIds.add(oldCourseSchedule.getActualTeacherId().intValue());
 | 
	
		
			
				|  |  |  					}
 |