zouxuan 4 年之前
父节点
当前提交
e8d09d50ad

+ 52 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -3354,6 +3354,58 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         //计算新增班级的可排课时长,总课次*默认时长  (用学员剩余的课程时长加上购买的时长,可能导致同一班级学员时长不一致)
         musicGroupStudentClassAdjust.setClassCourseMinute(JSON.toJSONString(findClassCourseMinuteMap(classGroupIds)));
         musicGroupStudentClassAdjustDao.insert(musicGroupStudentClassAdjust);
+
+        //如果缴费项目不需要审核,那么生成班级以及课表
+        if(status != null && status != AUDITING){
+//            classGroupService.classGroupAdjust(classGroup4MixDtos);
+        }
+        //如果需要审核,校验参数配置
+        checkMergeClassSplitClassAffirmParam(classGroup4MixDtos);
+    }
+
+    private void checkMergeClassSplitClassAffirmParam(List<ClassGroup4MixDto> classGroup4MixDtos){
+        if (classGroup4MixDtos.get(0).getCourseTimes().compareTo(0) <= 0) {
+            throw new BizException("排课次数必须大于0");
+        }
+        List<ClassGroupTeacherMapper> classGroupTeacherMapperList = classGroup4MixDtos.get(0).getClassGroupTeacherMapperList();
+        if(classGroupTeacherMapperList == null || classGroupTeacherMapperList.size() == 0){
+            throw new BizException("请设置上课老师");
+        }
+        Set<Integer> noRepeatTeacherIds = classGroupTeacherMapperList.stream().map(ClassGroupTeacherMapper::getUserId).collect(Collectors.toSet());
+        if(noRepeatTeacherIds.size()!=classGroupTeacherMapperList.size()){
+            throw new BizException("主教与助教存在冲突");
+        }
+        List<Integer> allTeacherIds = classGroupTeacherMapperList.stream()
+                .map(ClassGroupTeacherMapper::getUserId)
+                .collect(Collectors.toList());
+
+        //所有教师列表
+        List<Teacher> teachers = teacherDao.findByTeacherIds(allTeacherIds);
+        Map<Integer, Teacher> teacherMap = teachers.stream()
+                .collect(Collectors.toMap(Teacher::getId, teacher -> teacher));
+        for (ClassGroup4MixDto classGroup4MixDto : classGroup4MixDtos) {
+            for (ClassGroupTeacherMapper classGroupTeacherMapper : classGroupTeacherMapperList) {
+                List<TeacherDefaultMusicGroupSalary> teacherSalaryList = teacherDefaultMusicGroupSalaryService.getTeacherSalaryByUserIdAndType(classGroupTeacherMapper.getUserId(), null, null);
+
+                Map<CourseSchedule.CourseScheduleType, TeacherDefaultMusicGroupSalary> collect = teacherSalaryList.stream().collect(Collectors.toMap(TeacherDefaultMusicGroupSalary::getCourseScheduleType, teacherDefaultMusicGroupSalary -> teacherDefaultMusicGroupSalary));
+
+                TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary = collect.get(classGroup4MixDto.getCourseType());
+                Teacher teacher = teacherMap.get(classGroupTeacherMapper.getUserId());
+                if (teacherDefaultMusicGroupSalary == null) {
+                    throw new BizException("请设置" + teacher.getRealName() + "老师的" + classGroup4MixDto.getCourseType().getMsg() + "课酬");
+                }
+                if ((classGroup4MixDto.getCourseType().equals(CourseSchedule.CourseScheduleType.HIGH_ONLINE) ||
+                        classGroup4MixDto.getCourseType().equals(CourseSchedule.CourseScheduleType.MUSIC_NETWORK)) &&
+                        StringUtils.isBlank(teacherDefaultMusicGroupSalary.getSalaryRuleJson())) {
+                    throw new BizException("请设置" + teacher.getRealName() + "老师的" + classGroup4MixDto.getCourseType().getMsg() + "课酬");
+                } else if (teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary() == null
+                        || teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary() == null
+                        || teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() == null
+                        || teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() == null) {
+                    throw new BizException("请设置" + teacher.getRealName() + "老师的" + classGroup4MixDto.getCourseType().getMsg() + "课酬");
+                }
+            }
+        }
     }
 
     @Override

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/MusicGroupStudentClassAdjustMapper.xml

@@ -40,7 +40,7 @@
 		course_flag_,calender_status_,operator_id_,create_time_,update_time_)
 		VALUES(#{id},#{musicGroupId},#{batchNo},#{newClassGroupJson},#{classGroupIds},#{studentIds},
 		#{classCourseMinute},#{allLockCourseIds},#{subLockCourseIds},#{courseFlag},
-		#{calenderStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{operatorId},#{createTime},#{updateTime})
+		#{calenderStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{operatorId},NOW(),NOW())
 	</insert>
 	
 	<!-- 根据主键查询一条记录 -->

+ 1 - 0
mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

@@ -273,6 +273,7 @@ public class RoomServiceImpl implements RoomService {
             redisTemplate.delete(joinSuccessKey);
             return;
         }
+
         String leaveSuccessKey = "leaveRoomSuccess"+ roomId + userId;
         if(redisTemplate.hasKey(leaveSuccessKey)){
             redisTemplate.delete(leaveSuccessKey);