|
@@ -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
|
|
@@ -1905,7 +1904,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
throw new BizException("排课起始时间不能小于当前时间");
|
|
|
}
|
|
|
|
|
|
- boolean needSchoolId = Objects.nonNull(vipGroupCourseAdjustInfo.getTeachMode()) && vipGroupCourseAdjustInfo.getTeachMode().equals(TeachModeEnum.OFFLINE) && Objects.isNull(vipGroupCourseAdjustInfo.getTeachMode());
|
|
|
+ boolean needSchoolId = Objects.nonNull(vipGroupCourseAdjustInfo.getTeachMode()) && vipGroupCourseAdjustInfo.getTeachMode().equals(TeachModeEnum.OFFLINE) && Objects.isNull(vipGroupCourseAdjustInfo.getSchoolId());
|
|
|
if (needSchoolId) {
|
|
|
throw new BizException("请设置教学点");
|
|
|
}
|
|
@@ -2032,8 +2031,9 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
courseSchedules.get(courseStartDates.size() - 1).setEndClassTime(courseEndTime);
|
|
|
if (Objects.nonNull(vipGroupCourseAdjustInfo.getTeachMode())) {
|
|
|
if(courseSchedules.get(courseStartDates.size() - 1).getTeachMode().equals(TeachModeEnum.ONLINE)
|
|
|
- &&vipGroupCourseAdjustInfo.getTeachMode().equals(TeachModeEnum.OFFLINE)){
|
|
|
- throw new BizException("暂不支持线上课程转为线下课");
|
|
|
+ &&vipGroupCourseAdjustInfo.getTeachMode().equals(TeachModeEnum.OFFLINE)
|
|
|
+ &&Objects.isNull(vipGroupCourseAdjustInfo.getSchoolId())){
|
|
|
+ throw new BizException("请选择教学点");
|
|
|
}
|
|
|
courseSchedules.get(courseStartDates.size() - 1).setTeachMode(vipGroupCourseAdjustInfo.getTeachMode());
|
|
|
if (vipGroupCourseAdjustInfo.getTeachMode().equals(TeachModeEnum.OFFLINE)) {
|
|
@@ -2075,6 +2075,28 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ if(groupType == VIP){
|
|
|
+ VipGroup vipGroup = vipGroupDao.get(vipGroupCourseAdjustInfo.getVipGroupId().longValue());
|
|
|
+
|
|
|
+ BigDecimal teacherSalary=BigDecimal.ZERO;
|
|
|
+
|
|
|
+ ClassGroupTeacherSalary classGroupTeacherSalary = classGroupTeacherSalaryDao.findByVipGoupAndTeacher(vipGroupCourseAdjustInfo.getVipGroupId().intValue(), courseSchedules.get(0).getActualTeacherId());
|
|
|
+
|
|
|
+ if(Objects.nonNull(classGroupTeacherSalary)){
|
|
|
+ teacherSalary=vipGroupCourseAdjustInfo.getTeachMode().equals(TeachModeEnum.OFFLINE)?classGroupTeacherSalary.getSalary():classGroupTeacherSalary.getOnlineClassesSalary();
|
|
|
+ }
|
|
|
+ if(teacherSalary.compareTo(BigDecimal.ZERO)<=0){
|
|
|
+ TeacherDefaultVipGroupSalary tdvs = teacherDefaultVipGroupSalaryDao.findByTeacherAndCategory(courseSchedules.get(0).getActualTeacherId(),vipGroup.getVipGroupCategoryId());
|
|
|
+ if (tdvs == null||Objects.isNull(tdvs.getOfflineClassesSalary())) {
|
|
|
+ throw new BizException("老师[]没有设置默认课酬,请先设置", courseSchedules.get(0).getActualTeacherId());
|
|
|
+ }
|
|
|
+ teacherSalary=tdvs.getOfflineClassesSalary();
|
|
|
+ }
|
|
|
+
|
|
|
+ courseScheduleTeacherSalaryDao.batchUpdateCourseSalarys(courseScheduleIds, teacherSalary);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
courseScheduleDao.batchUpdate(courseSchedules);
|
|
|
classGroupService.updateClassGroupInfo(classGroup.getId());
|
|
|
if(vipGroupCourseAdjustInfo.getCourseCreateStartTime().after(now)){
|
|
@@ -2361,10 +2383,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
newCourseSchedule.setTeachMode(oldCourseSchedule.getTeachMode());
|
|
|
}
|
|
|
|
|
|
- if (newCourseSchedule.getGroupType() == GroupType.VIP) {
|
|
|
- if (newCourseSchedule.getTeachMode() != oldCourseSchedule.getTeachMode() && newCourseSchedule.getTeachMode() == TeachModeEnum.OFFLINE) {
|
|
|
- throw new BizException("不允许将线上课调整为线下课");
|
|
|
- }
|
|
|
+ if (newCourseSchedule.getTeachMode() != oldCourseSchedule.getTeachMode()
|
|
|
+ && newCourseSchedule.getTeachMode() == TeachModeEnum.OFFLINE
|
|
|
+ && Objects.isNull(newCourseSchedule.getSchoolId())) {
|
|
|
+ throw new BizException("请设置教学点");
|
|
|
}
|
|
|
|
|
|
if (Objects.isNull(newCourseSchedule.getSchoolId())) {
|
|
@@ -2554,18 +2576,18 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
}
|
|
|
|
|
|
// 所有老师默认vip课酬
|
|
|
-// 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());
|
|
|
-// if (map == null) {
|
|
|
-// map = new HashMap<Integer, TeacherDefaultVipGroupSalary>();
|
|
|
-// }
|
|
|
-// map.put(tdvs.getVipGroupCategoryId(), tdvs);
|
|
|
-// vipGroupSalaryMap.put(tdvs.getUserId(), map);
|
|
|
-// }
|
|
|
-//
|
|
|
-// VipGroup vipGroup = vipGroupDao.findByCourseSchedule(courseScheduleId);
|
|
|
+ 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());
|
|
|
+ if (map == null) {
|
|
|
+ map = new HashMap<Integer, TeacherDefaultVipGroupSalary>();
|
|
|
+ }
|
|
|
+ map.put(tdvs.getVipGroupCategoryId(), tdvs);
|
|
|
+ vipGroupSalaryMap.put(tdvs.getUserId(), map);
|
|
|
+ }
|
|
|
+
|
|
|
+ VipGroup vipGroup = vipGroupDao.findByCourseSchedule(courseScheduleId);
|
|
|
|
|
|
// 删除课酬
|
|
|
List<Long> courseScheduleIdList = new ArrayList<Long>();
|
|
@@ -2670,36 +2692,31 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
}
|
|
|
|
|
|
} else if (newCourseSchedule.getGroupType() == GroupType.VIP) {
|
|
|
-// Map<Integer, TeacherDefaultVipGroupSalary> map = vipGroupSalaryMap.get(teacherId);
|
|
|
-// if (map == null) {
|
|
|
-// throw new BizException("老师[]没有设置默认课酬,请先设置", teacherId);
|
|
|
-// }
|
|
|
-// 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"));
|
|
|
-// }
|
|
|
-
|
|
|
- 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());
|
|
|
+ Map<Integer, TeacherDefaultVipGroupSalary> map = vipGroupSalaryMap.get(teacherId);
|
|
|
+ if (map == null) {
|
|
|
+ throw new BizException("老师[]没有设置默认课酬,请先设置", teacherId);
|
|
|
+ }
|
|
|
+ if (vipGroup == null) {
|
|
|
+ throw new BizException("课程[{}]记录存在异常,请联系管理员", courseScheduleId);
|
|
|
+ }
|
|
|
+
|
|
|
+ BigDecimal teacherSalary=BigDecimal.ZERO;
|
|
|
+
|
|
|
+ ClassGroupTeacherSalary classGroupTeacherSalary = classGroupTeacherSalaryDao.findByVipGoupAndTeacher(vipGroup.getId().intValue(), teacherId);
|
|
|
+
|
|
|
+ if(Objects.nonNull(classGroupTeacherSalary)){
|
|
|
+ teacherSalary=newCourseSchedule.getTeachMode() == TeachModeEnum.OFFLINE?classGroupTeacherSalary.getSalary():classGroupTeacherSalary.getOnlineClassesSalary();
|
|
|
+ }
|
|
|
+ if(Objects.isNull(teacherSalary)||teacherSalary.compareTo(BigDecimal.ZERO)<=0){
|
|
|
+ TeacherDefaultVipGroupSalary tdvs = teacherDefaultVipGroupSalaryDao.findByTeacherAndCategory(teacherId,vipGroup.getVipGroupCategoryId());
|
|
|
+ if (tdvs == null||Objects.isNull(tdvs.getOfflineClassesSalary())) {
|
|
|
+ throw new BizException("老师[]没有设置默认课酬,请先设置", teacherId);
|
|
|
}
|
|
|
+ teacherSalary=tdvs.getOfflineClassesSalary();
|
|
|
}
|
|
|
+
|
|
|
+ ts.setExpectSalary(teacherSalary);
|
|
|
+
|
|
|
} else if (newCourseSchedule.getGroupType() == PRACTICE) {
|
|
|
List<TeacherDefaultPracticeGroupSalary> teacherDefaultPracticeGroupSalaryList = teacherDefaultPracticeGroupSalaryDao
|
|
|
.queryByUserId(teacherId);
|
|
@@ -3879,7 +3896,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
|
|
|
PracticeGroup practiceGroup = practiceGroupDao.get(Long.valueOf(oldCourseSchedule.getMusicGroupId()));
|
|
|
if(practiceGroup.getType() != TRIAL){
|
|
|
- if(practiceGroup.getType() == FREE){
|
|
|
+ if(practiceGroup.getType() != FREE){
|
|
|
List<TeacherDefaultPracticeGroupSalary> teacherDefaultPracticeGroupSalaries = teacherDefaultPracticeGroupSalaryDao.queryByUserId(teacherId);
|
|
|
if(teacherDefaultPracticeGroupSalaries == null || teacherDefaultPracticeGroupSalaries.size() == 0){
|
|
|
throw new BizException("请设置老师默认课酬");
|