|
@@ -11,6 +11,7 @@ import com.ym.mec.biz.dal.enums.*;
|
|
import com.ym.mec.biz.dal.page.CourseScheduleQueryInfo;
|
|
import com.ym.mec.biz.dal.page.CourseScheduleQueryInfo;
|
|
import com.ym.mec.biz.dal.page.StudentCourseScheduleRecordQueryInfo;
|
|
import com.ym.mec.biz.dal.page.StudentCourseScheduleRecordQueryInfo;
|
|
import com.ym.mec.biz.service.CourseScheduleService;
|
|
import com.ym.mec.biz.service.CourseScheduleService;
|
|
|
|
+import com.ym.mec.biz.service.CourseScheduleTeacherSalaryService;
|
|
import com.ym.mec.biz.service.SysConfigService;
|
|
import com.ym.mec.biz.service.SysConfigService;
|
|
import com.ym.mec.biz.service.SysMessageService;
|
|
import com.ym.mec.biz.service.SysMessageService;
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
@@ -52,6 +53,12 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
@Autowired
|
|
@Autowired
|
|
private SysMessageService sysMessageService;
|
|
private SysMessageService sysMessageService;
|
|
@Autowired
|
|
@Autowired
|
|
|
|
+ private CourseScheduleTeacherSalaryService courseScheduleTeacherSalaryService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private VipGroupDao vipGroupDao;
|
|
|
|
+ @Autowired
|
|
|
|
+ private TeacherDefaultVipGroupSalaryDao teacherDefaultVipGroupSalaryDao;
|
|
|
|
+ @Autowired
|
|
private CourseScheduleTeacherSalaryDao courseScheduleTeacherSalaryDao;
|
|
private CourseScheduleTeacherSalaryDao courseScheduleTeacherSalaryDao;
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -341,11 +348,28 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
checkStudentIsRepeat(repeatClassGroupIds);
|
|
checkStudentIsRepeat(repeatClassGroupIds);
|
|
courseScheduleDao.update(newCourseSchedule);
|
|
courseScheduleDao.update(newCourseSchedule);
|
|
}
|
|
}
|
|
- if(oldCourseSchedule.getType()== CourseSchedule.CourseScheduleType.VIP){
|
|
|
|
- if(!oldCourseSchedule.getActualTeacherId().equals(newCourseSchedule.getActualTeacherId())){
|
|
|
|
|
|
|
|
|
|
+ //被修改的教师编号列表,需要将预计薪水置零
|
|
|
|
+ List<Integer> beReplaceTeacherIds=new ArrayList<>();
|
|
|
|
+
|
|
|
|
+ if(oldCourseSchedule.getType()== CourseSchedule.CourseScheduleType.VIP){
|
|
|
|
+ if(Objects.isNull(oldCourseSchedule.getActualTeacherId())||!oldCourseSchedule.getActualTeacherId().equals(newCourseSchedule.getActualTeacherId())){
|
|
|
|
+ VipGroup byCourseSchedule = vipGroupDao.findByCourseSchedule(newCourseSchedule.getId().intValue());
|
|
|
|
+ TeacherDefaultVipGroupSalary byTeacherAndCategory = teacherDefaultVipGroupSalaryDao.findByTeacherAndCategory(newCourseSchedule.getActualTeacherId(), byCourseSchedule.getVipGroupCategoryId());
|
|
|
|
+ List<CourseSchedule> courseSchedules=new ArrayList<>();
|
|
|
|
+ coursesByDates.add(newCourseSchedule);
|
|
|
|
+ courseScheduleTeacherSalaryService.createCourseScheduleTeacherVipSalary(byCourseSchedule,
|
|
|
|
+ courseSchedules,
|
|
|
|
+ byTeacherAndCategory.getOnlineClassesSalary(),
|
|
|
|
+ byTeacherAndCategory.getOfflineClassesSalary());
|
|
|
|
+ beReplaceTeacherIds.add(oldCourseSchedule.getActualTeacherId().intValue());
|
|
}
|
|
}
|
|
}else{
|
|
}else{
|
|
|
|
+ if(Objects.isNull(oldCourseSchedule.getActualTeacherId())||!oldCourseSchedule.getActualTeacherId().equals(newCourseSchedule.getActualTeacherId())){
|
|
|
|
+ //如果主教被修改则调整课酬记录
|
|
|
|
+
|
|
|
|
+ beReplaceTeacherIds.add(oldCourseSchedule.getActualTeacherId().intValue());
|
|
|
|
+ }
|
|
List<CourseScheduleTeacherSalary> courseTeachingTeacherList=courseTeachingTeacherMaps.get(newCourseSchedule.getId());
|
|
List<CourseScheduleTeacherSalary> courseTeachingTeacherList=courseTeachingTeacherMaps.get(newCourseSchedule.getId());
|
|
//当前设置的课程助教编号列表
|
|
//当前设置的课程助教编号列表
|
|
List<Integer> currentCourseTeachingTeacherIds=new ArrayList<>();
|
|
List<Integer> currentCourseTeachingTeacherIds=new ArrayList<>();
|
|
@@ -356,7 +380,19 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
List<Integer> newTeachingTeacherIdList = newCourseSchedule.getTeachingTeacherIdList();
|
|
List<Integer> newTeachingTeacherIdList = newCourseSchedule.getTeachingTeacherIdList();
|
|
//找出重复的助教编号
|
|
//找出重复的助教编号
|
|
List<Integer> foundInCurrentCourseTeachingTeacherIds = newTeachingTeacherIdList.stream().filter(currentCourseTeachingTeacherIds::contains).collect(Collectors.toList());
|
|
List<Integer> foundInCurrentCourseTeachingTeacherIds = newTeachingTeacherIdList.stream().filter(currentCourseTeachingTeacherIds::contains).collect(Collectors.toList());
|
|
|
|
+
|
|
|
|
+ newTeachingTeacherIdList.forEach(newTeacherId->{
|
|
|
|
+ //如果不在重复列表中,则需要生成对应的课酬记录
|
|
|
|
+ if(!foundInCurrentCourseTeachingTeacherIds.contains(newTeacherId)){
|
|
|
|
+ //计算修改后的助教的课酬
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ beReplaceTeacherIds.add(oldCourseSchedule.getActualTeacherId().intValue());
|
|
|
|
+ }
|
|
|
|
+ });
|
|
}
|
|
}
|
|
|
|
+ //将被修改的教师预计薪水置零
|
|
|
|
+ courseScheduleTeacherSalaryDao.batchUpdateTeacherExpectSalary(newCourseSchedule.getId().intValue(),beReplaceTeacherIds);
|
|
});
|
|
});
|
|
}
|
|
}
|
|
|
|
|