浏览代码

Revert "1、vip课线上转线下"

This reverts commit 9228c209
Joburgess 5 年之前
父节点
当前提交
aa21ca969d
共有 1 个文件被更改,包括 67 次插入50 次删除
  1. 67 50
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

+ 67 - 50
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -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("请设置老师默认课酬");