|
@@ -3908,6 +3908,81 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ public void batchUpdateTeacherSalary(List<Integer> classGroupIds) {
|
|
|
+ if(classGroupIds.size() > 0){
|
|
|
+ //获取班级学员人数
|
|
|
+ List<Map<Integer, Integer>> classGroupStudentNumMaps = classGroupStudentMapperDao.countClassGroupsStudentNum(classGroupIds, ClassGroupStudentStatusEnum.NORMAL);
|
|
|
+ Map<Integer, Long> classGroupStudentNumMap = MapUtil.convertIntegerMap(classGroupStudentNumMaps);
|
|
|
+ List<ClassGroup> byClassGroupIds = classGroupDao.findByClassGroupIds(classGroupIds, null);
|
|
|
+ for (ClassGroup classGroup : byClassGroupIds) {
|
|
|
+ Long aLong = classGroupStudentNumMap.get(classGroup.getId());
|
|
|
+ classGroup.setStudentNum(aLong==null?0:aLong.intValue());
|
|
|
+ if(classGroup.getType() == HIGH_ONLINE || classGroup.getType() == HIGH){
|
|
|
+ if(aLong != null && aLong > 0){
|
|
|
+ List<CourseSchedule> courseScheduleList = courseScheduleService.findNoStartCoursesByClassGroupId(classGroup.getId());
|
|
|
+ if(courseScheduleList.size() > 0){
|
|
|
+ //调整未上课课酬
|
|
|
+ List<ClassGroupTeacherMapper> classGroupTeachers = classGroupTeacherMapperService.getClassGroupTeachers(classGroup.getId());
|
|
|
+ Date nowDate = new Date();
|
|
|
+ List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();
|
|
|
+ List<Long> courseScheduleIds = courseScheduleList.stream().map(CourseSchedule::getId).collect(Collectors.toList());
|
|
|
+ courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
|
|
|
+ for (CourseSchedule courseSchedule : courseScheduleList) {
|
|
|
+ for (ClassGroupTeacherMapper classGroupTeacher : classGroupTeachers) {
|
|
|
+ List<TeacherDefaultMusicGroupSalary> teacherSalaryList = teacherDefaultMusicGroupSalaryService.getTeacherSalaryByUserIdAndType(classGroupTeacher.getUserId(), null, null);
|
|
|
+ if (teacherSalaryList == null || teacherSalaryList.size() == 0) {
|
|
|
+ throw new BizException("请设置老师线上网管课课酬");
|
|
|
+ }
|
|
|
+ Map<CourseSchedule.CourseScheduleType, TeacherDefaultMusicGroupSalary> collect = teacherSalaryList.stream().collect(Collectors.toMap(TeacherDefaultMusicGroupSalary::getCourseScheduleType, teacherDefaultMusicGroupSalary -> teacherDefaultMusicGroupSalary));
|
|
|
+ TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary = collect.get(CourseSchedule.CourseScheduleType.HIGH_ONLINE);
|
|
|
+
|
|
|
+ if (classGroup.getType().equals(HIGH_ONLINE) && aLong > 5l) {
|
|
|
+ aLong = 5l;
|
|
|
+ }
|
|
|
+ BigDecimal salary = null;
|
|
|
+ if(classGroup.getType().equals(HIGH_ONLINE)){
|
|
|
+ salary = JSON.parseObject(teacherDefaultMusicGroupSalary.getSalaryRuleJson()).getBigDecimal(aLong + "");
|
|
|
+ }else if(classGroup.getType().equals(HIGH)){
|
|
|
+ MusicGroup musicGroup = musicGroupDao.get(classGroup.getMusicGroupId());
|
|
|
+ TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalaryHigh = collect.get(CourseSchedule.CourseScheduleType.HIGH);
|
|
|
+ if(Objects.isNull(teacherDefaultMusicGroupSalaryHigh)){
|
|
|
+ throw new BizException("请设置老师课酬");
|
|
|
+ }
|
|
|
+ salary = TeachTypeEnum.BISHOP.equals(classGroupTeacher.getTeacherRole()) ? teacherDefaultMusicGroupSalaryHigh.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalaryHigh.getAssistantTeacher30MinSalary();
|
|
|
+ if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.GRADIENT_SALARY)) {
|
|
|
+ salary = TeachTypeEnum.BISHOP.equals(classGroupTeacher.getTeacherRole()) ? teacherDefaultMusicGroupSalaryHigh.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalaryHigh.getAssistantTeacher90MinSalary();
|
|
|
+ }
|
|
|
+ if(Objects.isNull(salary)){
|
|
|
+ throw new BizException("请设置老师课酬");
|
|
|
+ }
|
|
|
+ salary = salary.multiply(new BigDecimal(aLong));
|
|
|
+ }
|
|
|
+ if(Objects.isNull(salary)){
|
|
|
+ throw new BizException("请设置老师课酬");
|
|
|
+ }
|
|
|
+ CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
|
|
|
+ courseScheduleTeacherSalary.setCourseScheduleId(courseSchedule.getId());
|
|
|
+ courseScheduleTeacherSalary.setGroupType(courseSchedule.getGroupType());
|
|
|
+ courseScheduleTeacherSalary.setMusicGroupId(courseSchedule.getMusicGroupId());
|
|
|
+ courseScheduleTeacherSalary.setTeacherRole(classGroupTeacher.getTeacherRole());
|
|
|
+ courseScheduleTeacherSalary.setUserId(classGroupTeacher.getUserId());
|
|
|
+ courseScheduleTeacherSalary.setExpectSalary(salary);
|
|
|
+ courseScheduleTeacherSalary.setClassGroupId(classGroup.getId());
|
|
|
+ courseScheduleTeacherSalary.setCreateTime(nowDate);
|
|
|
+ courseScheduleTeacherSalary.setUpdateTime(nowDate);
|
|
|
+ courseScheduleTeacherSalaryList.add(courseScheduleTeacherSalary);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ courseScheduleTeacherSalaryService.batchInsert(courseScheduleTeacherSalaryList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ classGroupDao.batchUpdate(byClassGroupIds);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public HttpResponseResult spanGroupMergeClassSplitClassAffirm(MergeClassSplitClassAffirmDto mergeClassSplitClassAffirmDto) {
|
|
|
SysUser sysUser = sysUserFeignService.queryUserInfo();
|
|
@@ -4065,76 +4140,6 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
}
|
|
|
}
|
|
|
//如果是基础技能班,重新计算老师课酬
|
|
|
- if(classGroupIds.size() > 0){
|
|
|
- //获取班级学员人数
|
|
|
- List<Map<Integer, Integer>> classGroupStudentNumMaps = classGroupStudentMapperDao.countClassGroupsStudentNum(classGroupIds, ClassGroupStudentStatusEnum.NORMAL);
|
|
|
- Map<Integer, Long> classGroupStudentNumMap = MapUtil.convertIntegerMap(classGroupStudentNumMaps);
|
|
|
- List<ClassGroup> byClassGroupIds = classGroupDao.findByClassGroupIds(classGroupIds, null);
|
|
|
- for (ClassGroup classGroup : byClassGroupIds) {
|
|
|
- Long aLong = classGroupStudentNumMap.get(classGroup.getId());
|
|
|
- classGroup.setStudentNum(aLong==null?0:aLong.intValue());
|
|
|
- if(classGroup.getType() == HIGH_ONLINE || classGroup.getType() == HIGH){
|
|
|
- if(aLong != null && aLong > 0){
|
|
|
- List<CourseSchedule> courseScheduleList = courseScheduleService.findNoStartCoursesByClassGroupId(classGroup.getId());
|
|
|
- if(courseScheduleList.size() > 0){
|
|
|
- //调整未上课课酬
|
|
|
- List<ClassGroupTeacherMapper> classGroupTeachers = classGroupTeacherMapperService.getClassGroupTeachers(classGroup.getId());
|
|
|
- Date nowDate = new Date();
|
|
|
- List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();
|
|
|
- List<Long> courseScheduleIds = courseScheduleList.stream().map(CourseSchedule::getId).collect(Collectors.toList());
|
|
|
- courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
|
|
|
- for (CourseSchedule courseSchedule : courseScheduleList) {
|
|
|
- for (ClassGroupTeacherMapper classGroupTeacher : classGroupTeachers) {
|
|
|
- List<TeacherDefaultMusicGroupSalary> teacherSalaryList = teacherDefaultMusicGroupSalaryService.getTeacherSalaryByUserIdAndType(classGroupTeacher.getUserId(), null, null);
|
|
|
- if (teacherSalaryList == null || teacherSalaryList.size() == 0) {
|
|
|
- throw new BizException("请设置老师线上网管课课酬");
|
|
|
- }
|
|
|
- Map<CourseSchedule.CourseScheduleType, TeacherDefaultMusicGroupSalary> collect = teacherSalaryList.stream().collect(Collectors.toMap(TeacherDefaultMusicGroupSalary::getCourseScheduleType, teacherDefaultMusicGroupSalary -> teacherDefaultMusicGroupSalary));
|
|
|
- TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary = collect.get(CourseSchedule.CourseScheduleType.HIGH_ONLINE);
|
|
|
-
|
|
|
- if (classGroup.getType().equals(HIGH_ONLINE) && aLong > 5l) {
|
|
|
- aLong = 5l;
|
|
|
- }
|
|
|
- BigDecimal salary = null;
|
|
|
- if(classGroup.getType().equals(HIGH_ONLINE)){
|
|
|
- salary = JSON.parseObject(teacherDefaultMusicGroupSalary.getSalaryRuleJson()).getBigDecimal(aLong + "");
|
|
|
- }else if(classGroup.getType().equals(HIGH)){
|
|
|
- MusicGroup musicGroup = musicGroupDao.get(classGroup.getMusicGroupId());
|
|
|
- TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalaryHigh = collect.get(CourseSchedule.CourseScheduleType.HIGH);
|
|
|
- if(Objects.isNull(teacherDefaultMusicGroupSalaryHigh)){
|
|
|
- throw new BizException("请设置老师课酬");
|
|
|
- }
|
|
|
- salary = TeachTypeEnum.BISHOP.equals(classGroupTeacher.getTeacherRole()) ? teacherDefaultMusicGroupSalaryHigh.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalaryHigh.getAssistantTeacher30MinSalary();
|
|
|
- if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.GRADIENT_SALARY)) {
|
|
|
- salary = TeachTypeEnum.BISHOP.equals(classGroupTeacher.getTeacherRole()) ? teacherDefaultMusicGroupSalaryHigh.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalaryHigh.getAssistantTeacher90MinSalary();
|
|
|
- }
|
|
|
- if(Objects.isNull(salary)){
|
|
|
- throw new BizException("请设置老师课酬");
|
|
|
- }
|
|
|
- salary = salary.multiply(new BigDecimal(aLong));
|
|
|
- }
|
|
|
- if(Objects.isNull(salary)){
|
|
|
- throw new BizException("请设置老师课酬");
|
|
|
- }
|
|
|
- CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
|
|
|
- courseScheduleTeacherSalary.setCourseScheduleId(courseSchedule.getId());
|
|
|
- courseScheduleTeacherSalary.setGroupType(courseSchedule.getGroupType());
|
|
|
- courseScheduleTeacherSalary.setMusicGroupId(courseSchedule.getMusicGroupId());
|
|
|
- courseScheduleTeacherSalary.setTeacherRole(classGroupTeacher.getTeacherRole());
|
|
|
- courseScheduleTeacherSalary.setUserId(classGroupTeacher.getUserId());
|
|
|
- courseScheduleTeacherSalary.setExpectSalary(salary);
|
|
|
- courseScheduleTeacherSalary.setClassGroupId(classGroup.getId());
|
|
|
- courseScheduleTeacherSalary.setCreateTime(nowDate);
|
|
|
- courseScheduleTeacherSalary.setUpdateTime(nowDate);
|
|
|
- courseScheduleTeacherSalaryList.add(courseScheduleTeacherSalary);
|
|
|
- }
|
|
|
- }
|
|
|
- courseScheduleTeacherSalaryService.batchInsert(courseScheduleTeacherSalaryList);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- classGroupDao.batchUpdate(byClassGroupIds);
|
|
|
- }
|
|
|
+ batchUpdateTeacherSalary(classGroupIds);
|
|
|
}
|
|
|
}
|