|
@@ -25,7 +25,9 @@ import com.ym.mec.util.collection.ListUtil;
|
|
|
import com.ym.mec.util.collection.MapUtil;
|
|
|
import com.ym.mec.util.date.DateUtil;
|
|
|
import com.ym.mec.util.json.JsonUtil;
|
|
|
+
|
|
|
import feign.codec.DecodeException;
|
|
|
+
|
|
|
import org.apache.commons.collections.ListUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.slf4j.Logger;
|
|
@@ -1633,19 +1635,27 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
if (Objects.isNull(newCourseSchedule.getGroupType())) {
|
|
|
newCourseSchedule.setGroupType(oldCourseSchedule.getGroupType());
|
|
|
}
|
|
|
+
|
|
|
+ if (Objects.isNull(newCourseSchedule.getTeachMode())) {
|
|
|
+ newCourseSchedule.setTeachMode(oldCourseSchedule.getTeachMode());
|
|
|
+ }
|
|
|
|
|
|
if (newCourseSchedule.getGroupType() == GroupType.VIP) {
|
|
|
if (newCourseSchedule.getTeachMode() != oldCourseSchedule.getTeachMode() && newCourseSchedule.getTeachMode() == TeachModeEnum.OFFLINE) {
|
|
|
throw new BizException("不允许将线上课调整为线下课");
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ if (Objects.isNull(newCourseSchedule.getSchoolId())) {
|
|
|
+ newCourseSchedule.setSchoolId(oldCourseSchedule.getSchoolId());
|
|
|
+ }
|
|
|
+ if (newCourseSchedule.getTeachMode() != oldCourseSchedule.getTeachMode() && newCourseSchedule.getTeachMode() == TeachModeEnum.ONLINE) {
|
|
|
+ newCourseSchedule.setSchoolId(-1);
|
|
|
+ }
|
|
|
|
|
|
if (Objects.isNull(newCourseSchedule.getActualTeacherId())) {
|
|
|
newCourseSchedule.setActualTeacherId(oldCourseSchedule.getActualTeacherId());
|
|
|
}
|
|
|
- if (Objects.isNull(newCourseSchedule.getSchoolId())) {
|
|
|
- newCourseSchedule.setSchoolId(oldCourseSchedule.getSchoolId());
|
|
|
- }
|
|
|
if (Objects.isNull(newCourseSchedule.getType())) {
|
|
|
newCourseSchedule.setType(oldCourseSchedule.getType());
|
|
|
}
|
|
@@ -1659,9 +1669,6 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
if(Objects.isNull(newCourseSchedule.getClassGroupId())){
|
|
|
newCourseSchedule.setClassGroupId(oldCourseSchedule.getClassGroupId());
|
|
|
}
|
|
|
- if (Objects.isNull(newCourseSchedule.getTeachMode())) {
|
|
|
- newCourseSchedule.setTeachMode(oldCourseSchedule.getTeachMode());
|
|
|
- }
|
|
|
if(Objects.isNull(newCourseSchedule.getClassDate())){
|
|
|
newCourseSchedule.setClassDate(oldCourseSchedule.getClassDate());
|
|
|
}
|
|
@@ -1705,6 +1712,18 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
// 课程对应乐团结算方式集合
|
|
|
List<Map<String, String>> musicGroupSettlementTypeByCourse = courseScheduleTeacherSalaryDao.findMusicGroupSettlementTypeByCourse(courseScheduleIds);
|
|
|
Map<String, String> musicGroupSettlementsMap = MapUtil.convertMybatisMap(musicGroupSettlementTypeByCourse);
|
|
|
+
|
|
|
+ Map<Long,Map<Integer,CourseScheduleTeacherSalary>> courseScheduleTeacherSalaryMap = new HashMap<Long, Map<Integer,CourseScheduleTeacherSalary>>();
|
|
|
+ List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = courseScheduleTeacherSalaryDao.findByCourseSchedules(courseScheduleIds);
|
|
|
+
|
|
|
+ for (CourseScheduleTeacherSalary ts : courseScheduleTeacherSalaryList) {
|
|
|
+ Map<Integer, CourseScheduleTeacherSalary> map = courseScheduleTeacherSalaryMap.get(ts.getCourseScheduleId());
|
|
|
+ if (map == null) {
|
|
|
+ map = new HashMap<Integer, CourseScheduleTeacherSalary>();
|
|
|
+ }
|
|
|
+ map.put(ts.getUserId(), ts);
|
|
|
+ courseScheduleTeacherSalaryMap.put(ts.getCourseScheduleId(), map);
|
|
|
+ }
|
|
|
|
|
|
Date entryDate = DateUtil.stringToDate(sysConfigDao.findByParamName(SysConfigService.TEACHER_ENTRY_DATE).getParanValue(), "yyyy-MM-dd");
|
|
|
|
|
@@ -1781,24 +1800,31 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
if (!ListUtil.isEquals(oldTeacherIdList, newTeacherIdList) || newCourseSchedule.getType() != oldCourseSchedule.getType()
|
|
|
|| newCourseSchedule.getTeachMode() != oldCourseSchedule.getTeachMode() || oldMinutes != newMinutes) {
|
|
|
|
|
|
- // 所有教师列表
|
|
|
- List<Teacher> teachers = teacherDao.findByTeacherIds(newTeacherIdList);
|
|
|
- Map<Integer, Teacher> teacherMap = teachers.stream().collect(Collectors.toMap(Teacher::getId, teacher -> teacher));
|
|
|
-
|
|
|
+ Map<Integer, Teacher> teacherMap = null;
|
|
|
Map<Integer, Map<CourseScheduleType, TeacherDefaultMusicGroupSalary>> musicGroupSalaryMap = new HashMap<Integer, Map<CourseScheduleType, TeacherDefaultMusicGroupSalary>>();
|
|
|
- // 所有老师默认乐团课酬
|
|
|
- List<TeacherDefaultMusicGroupSalary> teacherDefaultMusicGroupSalaries = teacherDefaultMusicGroupSalaryDao.findByTeacher(newTeacherIdList);
|
|
|
- for (TeacherDefaultMusicGroupSalary tdms : teacherDefaultMusicGroupSalaries) {
|
|
|
- Map<CourseScheduleType, TeacherDefaultMusicGroupSalary> map = musicGroupSalaryMap.get(tdms.getUserId());
|
|
|
- if (map == null) {
|
|
|
- map = new HashMap<CourseSchedule.CourseScheduleType, TeacherDefaultMusicGroupSalary>();
|
|
|
+
|
|
|
+ if (newCourseSchedule.getGroupType() == GroupType.MUSIC) {
|
|
|
+ // 所有教师列表
|
|
|
+ List<Teacher> teachers = teacherDao.findByTeacherIds(newTeacherIdList);
|
|
|
+ teacherMap = teachers.stream().collect(Collectors.toMap(Teacher::getId, teacher -> teacher));
|
|
|
+
|
|
|
+ // 所有老师默认乐团课酬
|
|
|
+ List<TeacherDefaultMusicGroupSalary> teacherDefaultMusicGroupSalaries = teacherDefaultMusicGroupSalaryDao.findByTeacher(newTeacherIdList);
|
|
|
+ for (TeacherDefaultMusicGroupSalary tdms : teacherDefaultMusicGroupSalaries) {
|
|
|
+ Map<CourseScheduleType, TeacherDefaultMusicGroupSalary> map = musicGroupSalaryMap.get(tdms.getUserId());
|
|
|
+ if (map == null) {
|
|
|
+ map = new HashMap<CourseSchedule.CourseScheduleType, TeacherDefaultMusicGroupSalary>();
|
|
|
+ }
|
|
|
+ map.put(tdms.getCourseScheduleType(), tdms);
|
|
|
+ musicGroupSalaryMap.put(tdms.getUserId(), map);
|
|
|
}
|
|
|
- map.put(tdms.getCourseScheduleType(), tdms);
|
|
|
- musicGroupSalaryMap.put(tdms.getUserId(), map);
|
|
|
+ } else if (newCourseSchedule.getGroupType() == GroupType.VIP) {
|
|
|
+ //查询这节课每位老师对应的课酬
|
|
|
+ courseScheduleTeacherSalaryDao.queryTeacherSalary(courseScheduleId);
|
|
|
}
|
|
|
|
|
|
// 所有老师默认vip课酬
|
|
|
- List<TeacherDefaultVipGroupSalary> teacherDefaultVipGroupSalaries = teacherDefaultVipGroupSalaryDao.queryByUserIdList(newTeacherIdList);
|
|
|
+ /*List<TeacherDefaultVipGroupSalary> teacherDefaultVipGroupSalaries = teacherDefaultVipGroupSalaryDao.queryByUserIdList(newTeacherIdList);
|
|
|
Map<Integer, Map<Integer, TeacherDefaultVipGroupSalary>> vipGroupSalaryMap = new HashMap<Integer, Map<Integer, TeacherDefaultVipGroupSalary>>();
|
|
|
for (TeacherDefaultVipGroupSalary tdvs : teacherDefaultVipGroupSalaries) {
|
|
|
Map<Integer, TeacherDefaultVipGroupSalary> map = vipGroupSalaryMap.get(tdvs.getUserId());
|
|
@@ -1809,7 +1835,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
vipGroupSalaryMap.put(tdvs.getUserId(), map);
|
|
|
}
|
|
|
|
|
|
- VipGroup vipGroup = vipGroupDao.findByCourseSchedule(courseScheduleId);
|
|
|
+ VipGroup vipGroup = vipGroupDao.findByCourseSchedule(courseScheduleId);*/
|
|
|
|
|
|
// 删除课酬
|
|
|
List<Long> courseScheduleIdList = new ArrayList<Long>();
|
|
@@ -1880,7 +1906,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
}
|
|
|
|
|
|
} else if (newCourseSchedule.getGroupType() == GroupType.VIP) {
|
|
|
- Map<Integer, TeacherDefaultVipGroupSalary> map = vipGroupSalaryMap.get(teacherId);
|
|
|
+ /*Map<Integer, TeacherDefaultVipGroupSalary> map = vipGroupSalaryMap.get(teacherId);
|
|
|
if (map == null) {
|
|
|
throw new BizException("老师[]没有设置默认课酬,请先设置", teacherId);
|
|
|
}
|
|
@@ -1895,6 +1921,15 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
ts.setExpectSalary(tdvs.getOfflineClassesSalary());
|
|
|
} else {
|
|
|
ts.setExpectSalary(tdvs.getOnlineClassesSalary());
|
|
|
+ }*/
|
|
|
+
|
|
|
+ ts.setExpectSalary(new BigDecimal(0));
|
|
|
+ Map<Integer, CourseScheduleTeacherSalary> tsMap = courseScheduleTeacherSalaryMap.get(courseScheduleId);
|
|
|
+ if(tsMap != null){
|
|
|
+ CourseScheduleTeacherSalary oldTS = tsMap.get(teacherId);
|
|
|
+ if(oldTS != null){
|
|
|
+ ts.setExpectSalary(oldTS.getExpectSalary());
|
|
|
+ }
|
|
|
}
|
|
|
} else if (newCourseSchedule.getGroupType() == GroupType.PRACTICE) {
|
|
|
List<TeacherDefaultPracticeGroupSalary> teacherDefaultPracticeGroupSalaryList = teacherDefaultPracticeGroupSalaryDao
|