|
@@ -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());
|
|
|
}
|