|
@@ -47,8 +47,7 @@ import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
import java.util.stream.Stream;
|
|
|
|
|
|
-import static com.ym.mec.biz.dal.enums.GroupType.MUSIC;
|
|
|
-import static com.ym.mec.biz.dal.enums.GroupType.PRACTICE;
|
|
|
+import static com.ym.mec.biz.dal.enums.GroupType.*;
|
|
|
import static com.ym.mec.biz.dal.enums.PracticeGroupType.*;
|
|
|
|
|
|
@Service
|
|
@@ -2076,6 +2075,26 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ if(groupType == VIP){
|
|
|
+ VipGroup vipGroup = vipGroupDao.get(vipGroupCourseAdjustInfo.getVipGroupId().longValue());
|
|
|
+ try {
|
|
|
+ Map<String, BigDecimal> costInfo = vipGroupService.countVipGroupPredictFee(vipGroup,
|
|
|
+ courseSchedules.get(0).getActualTeacherId(),
|
|
|
+ vipGroup.getOnlineClassesUnitPrice(),
|
|
|
+ vipGroup.getOfflineClassesUnitPrice(),
|
|
|
+ false,true);
|
|
|
+ courseScheduleTeacherSalaryDao.batchUpdateCourseSalarys(courseScheduleIds,
|
|
|
+ vipGroupCourseAdjustInfo.getTeachMode().equals(TeachModeEnum.OFFLINE)?costInfo.get("offlineTeacherSalary"):costInfo.get("onlineTeacherSalary"));
|
|
|
+ } catch (Exception e) {
|
|
|
+ TeacherDefaultVipGroupSalary tdvs = teacherDefaultVipGroupSalaryDao.findByTeacherAndCategory(courseSchedules.get(0).getActualTeacherId(),vipGroup.getVipGroupCategoryId());
|
|
|
+ if (tdvs == null) {
|
|
|
+ throw new BizException("老师[]没有设置默认课酬,请先设置", courseSchedules.get(0).getActualTeacherId());
|
|
|
+ }
|
|
|
+ courseScheduleTeacherSalaryDao.batchUpdateCourseSalarys(courseScheduleIds,
|
|
|
+ vipGroupCourseAdjustInfo.getTeachMode().equals(TeachModeEnum.OFFLINE)?tdvs.getOfflineClassesSalary():tdvs.getOnlineClassesSalary());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
courseScheduleDao.batchUpdate(courseSchedules);
|
|
|
classGroupService.updateClassGroupInfo(classGroup.getId());
|
|
|
if(vipGroupCourseAdjustInfo.getCourseCreateStartTime().after(now)){
|
|
@@ -2465,10 +2484,9 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
List<TeacherAttendance> teacherAttendanceList = teacherAttendanceMap.get(courseScheduleId);
|
|
|
|
|
|
List<Integer> oldTeacherIdList = teacherAttendanceList.stream().map(TeacherAttendance::getTeacherId).distinct().collect(Collectors.toList());
|
|
|
-
|
|
|
- Set<Integer> newTeacherIdList = new HashSet(newCourseSchedule.getTeachingTeacherIdList());
|
|
|
- newTeacherIdList.add(newCourseSchedule.getActualTeacherId());
|
|
|
- List<Integer> integerArrayList = new ArrayList<>(newTeacherIdList);
|
|
|
+ List<Integer> newTeacherIdList = new ArrayList<>();
|
|
|
+ newTeacherIdList.addAll(newCourseSchedule.getTeachingTeacherIdList());
|
|
|
+ newTeacherIdList.add(newCourseSchedule.getActualTeacherId());
|
|
|
|
|
|
if (newCourseSchedule.getStatus() != CourseStatusEnum.OVER) {
|
|
|
// 清理原来考勤
|
|
@@ -2529,7 +2547,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
int newMinutes = DateUtil.minutesBetween(newCourseSchedule.getStartClassTime(), newCourseSchedule.getEndClassTime());
|
|
|
|
|
|
// 如果修改了老师、课程类型、课程时长、教学模式,需要修改课酬
|
|
|
- if (!ListUtil.isEquals(oldTeacherIdList, integerArrayList) || newCourseSchedule.getType() != oldCourseSchedule.getType()
|
|
|
+ if (!ListUtil.isEquals(oldTeacherIdList, newTeacherIdList) || newCourseSchedule.getType() != oldCourseSchedule.getType()
|
|
|
|| newCourseSchedule.getTeachMode() != oldCourseSchedule.getTeachMode() || oldMinutes != newMinutes) {
|
|
|
|
|
|
Map<Integer, Teacher> teacherMap = null;
|
|
@@ -2537,11 +2555,11 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
|
|
|
if (newCourseSchedule.getGroupType() == GroupType.MUSIC) {
|
|
|
// 所有教师列表
|
|
|
- List<Teacher> teachers = teacherDao.findByTeacherIds(integerArrayList);
|
|
|
+ List<Teacher> teachers = teacherDao.findByTeacherIds(newTeacherIdList);
|
|
|
teacherMap = teachers.stream().collect(Collectors.toMap(Teacher::getId, teacher -> teacher));
|
|
|
|
|
|
// 所有老师默认乐团课酬
|
|
|
- List<TeacherDefaultMusicGroupSalary> teacherDefaultMusicGroupSalaries = teacherDefaultMusicGroupSalaryDao.findByTeacher(integerArrayList);
|
|
|
+ List<TeacherDefaultMusicGroupSalary> teacherDefaultMusicGroupSalaries = teacherDefaultMusicGroupSalaryDao.findByTeacher(newTeacherIdList);
|
|
|
for (TeacherDefaultMusicGroupSalary tdms : teacherDefaultMusicGroupSalaries) {
|
|
|
Map<CourseScheduleType, TeacherDefaultMusicGroupSalary> map = musicGroupSalaryMap.get(tdms.getUserId());
|
|
|
if (map == null) {
|
|
@@ -2556,7 +2574,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
}
|
|
|
|
|
|
// 所有老师默认vip课酬
|
|
|
- List<TeacherDefaultVipGroupSalary> teacherDefaultVipGroupSalaries = teacherDefaultVipGroupSalaryDao.queryByUserIdList(integerArrayList);
|
|
|
+ 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());
|
|
@@ -2679,29 +2697,24 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
if (vipGroup == null) {
|
|
|
throw new BizException("课程[{}]记录存在异常,请联系管理员", courseScheduleId);
|
|
|
}
|
|
|
- TeacherDefaultVipGroupSalary tdvs = map.get(vipGroup.getVipGroupCategoryId());
|
|
|
- if (tdvs == null) {
|
|
|
- throw new BizException("老师[]没有设置默认课酬,请先设置", teacherId);
|
|
|
- }
|
|
|
- Map<String, BigDecimal> costInfo = vipGroupService.countVipGroupPredictFee(vipGroup,
|
|
|
- teacherId,
|
|
|
- vipGroup.getOnlineClassesUnitPrice(),
|
|
|
- vipGroup.getOfflineClassesUnitPrice(),
|
|
|
- false,true);
|
|
|
- if (newCourseSchedule.getTeachMode() == TeachModeEnum.OFFLINE) {
|
|
|
- ts.setExpectSalary(costInfo.get("offlineTeacherSalary"));
|
|
|
- } else {
|
|
|
- ts.setExpectSalary(costInfo.get("onlineTeacherSalary"));
|
|
|
+ try {
|
|
|
+ Map<String, BigDecimal> costInfo = vipGroupService.countVipGroupPredictFee(vipGroup,
|
|
|
+ teacherId,
|
|
|
+ vipGroup.getOnlineClassesUnitPrice(),
|
|
|
+ vipGroup.getOfflineClassesUnitPrice(),
|
|
|
+ false,true);
|
|
|
+ if (newCourseSchedule.getTeachMode() == TeachModeEnum.OFFLINE) {
|
|
|
+ ts.setExpectSalary(costInfo.get("offlineTeacherSalary"));
|
|
|
+ } else {
|
|
|
+ ts.setExpectSalary(costInfo.get("onlineTeacherSalary"));
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ TeacherDefaultVipGroupSalary tdvs = map.get(vipGroup.getVipGroupCategoryId());
|
|
|
+ if (tdvs == null) {
|
|
|
+ throw new BizException("老师[]没有设置默认课酬,请先设置", teacherId);
|
|
|
+ }
|
|
|
+ ts.setExpectSalary(newCourseSchedule.getTeachMode() == TeachModeEnum.OFFLINE?tdvs.getOfflineClassesSalary():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() == PRACTICE) {
|
|
|
List<TeacherDefaultPracticeGroupSalary> teacherDefaultPracticeGroupSalaryList = teacherDefaultPracticeGroupSalaryDao
|
|
|
.queryByUserId(teacherId);
|