|
@@ -566,88 +566,52 @@ public class ClassGroupStudentMapperServiceImpl extends BaseServiceImpl<Long, Cl
|
|
|
|
|
|
List<Long> courseIds = classGroupNotStartCourse.stream().map(CourseSchedule::getId).collect(Collectors.toList());
|
|
List<Long> courseIds = classGroupNotStartCourse.stream().map(CourseSchedule::getId).collect(Collectors.toList());
|
|
|
|
|
|
|
|
+ if (!CollectionUtils.isEmpty(removeStudentIds)) {
|
|
|
|
+ courseScheduleDao.deleteMusicGroupCourseSchedulesWithStudents(courseIds, new ArrayList<>(removeStudentIds));
|
|
|
|
+ if(musicGroup.getStatus() == MusicGroupStatusEnum.PROGRESS){
|
|
|
|
+ //5、学生退出班级群组
|
|
|
|
+ imGroupMemberService.quit(classGroup.getId().longValue(), new ArrayList<Integer>(addStudentIds));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (!CollectionUtils.isEmpty(addStudentIds)) {
|
|
|
|
+ courseScheduleStudentPaymentService.createForMusicGroup(classGroup.getMusicGroupId(), classGroupNotStartCourse, new ArrayList<>(addStudentIds));
|
|
|
|
+ studentDao.updateStudentServiceTag(null, new ArrayList<>(addStudentIds), YesOrNoEnum.YES.getCode());
|
|
|
|
+ if(musicGroup.getStatus() == MusicGroupStatusEnum.PROGRESS){
|
|
|
|
+ Map<Integer,String> userRoleMap = new HashMap<>();
|
|
|
|
+ for (Integer addStudentId : addStudentIds) {
|
|
|
|
+ userRoleMap.put(addStudentId, "");
|
|
|
|
+ }
|
|
|
|
+ //5、添加进IM群组
|
|
|
|
+ imGroupMemberService.join(classGroup.getId().longValue(), userRoleMap);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
//4、调整未上课课酬
|
|
//4、调整未上课课酬
|
|
- List<ClassGroupTeacherMapper> classGroupTeachers = classGroupTeacherMapperService.getClassGroupTeachers(classGroupId.intValue());
|
|
|
|
- if ((classGroup.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE) || classGroup.getType().equals(ClassGroupTypeEnum.HIGH)) && classGroupNotStartCourse.size() > 0) {
|
|
|
|
|
|
+ if(!CollectionUtils.isEmpty(classGroupNotStartCourse)){
|
|
|
|
+ List<ClassGroupTeacherMapper> classGroupTeachers = classGroupTeacherMapperService.getClassGroupTeachers(classGroupId.intValue());
|
|
Date nowDate = new Date();
|
|
Date nowDate = new Date();
|
|
List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();
|
|
List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();
|
|
List<Long> courseScheduleIds = classGroupNotStartCourse.stream().map(CourseSchedule::getId).collect(Collectors.toList());
|
|
List<Long> courseScheduleIds = classGroupNotStartCourse.stream().map(CourseSchedule::getId).collect(Collectors.toList());
|
|
courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
|
|
courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
|
|
for (CourseSchedule courseSchedule : classGroupNotStartCourse) {
|
|
for (CourseSchedule courseSchedule : classGroupNotStartCourse) {
|
|
for (ClassGroupTeacherMapper classGroupTeacher : classGroupTeachers) {
|
|
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);
|
|
|
|
-
|
|
|
|
- int studentNum = studentIds.size();
|
|
|
|
- if (classGroup.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE) && studentNum > 5) {
|
|
|
|
- studentNum = 5;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- BigDecimal salary = null;
|
|
|
|
- if(classGroup.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE)){
|
|
|
|
- if(studentNum>0){
|
|
|
|
- salary = JSON.parseObject(teacherDefaultMusicGroupSalary.getSalaryRuleJson()).getBigDecimal(studentNum + "");
|
|
|
|
- }else{
|
|
|
|
- salary = new BigDecimal("0");
|
|
|
|
- }
|
|
|
|
- }else if(classGroup.getType().equals(ClassGroupTypeEnum.HIGH)){
|
|
|
|
- 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(studentNum));
|
|
|
|
- }
|
|
|
|
- if(Objects.isNull(salary)){
|
|
|
|
- throw new BizException("请设置老师课酬");
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
|
|
CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
|
|
courseScheduleTeacherSalary.setCourseScheduleId(courseSchedule.getId());
|
|
courseScheduleTeacherSalary.setCourseScheduleId(courseSchedule.getId());
|
|
courseScheduleTeacherSalary.setGroupType(courseSchedule.getGroupType());
|
|
courseScheduleTeacherSalary.setGroupType(courseSchedule.getGroupType());
|
|
courseScheduleTeacherSalary.setMusicGroupId(courseSchedule.getMusicGroupId());
|
|
courseScheduleTeacherSalary.setMusicGroupId(courseSchedule.getMusicGroupId());
|
|
courseScheduleTeacherSalary.setTeacherRole(classGroupTeacher.getTeacherRole());
|
|
courseScheduleTeacherSalary.setTeacherRole(classGroupTeacher.getTeacherRole());
|
|
courseScheduleTeacherSalary.setUserId(classGroupTeacher.getUserId());
|
|
courseScheduleTeacherSalary.setUserId(classGroupTeacher.getUserId());
|
|
- courseScheduleTeacherSalary.setExpectSalary(salary);
|
|
|
|
courseScheduleTeacherSalary.setClassGroupId(classGroup.getId());
|
|
courseScheduleTeacherSalary.setClassGroupId(classGroup.getId());
|
|
courseScheduleTeacherSalary.setCreateTime(nowDate);
|
|
courseScheduleTeacherSalary.setCreateTime(nowDate);
|
|
courseScheduleTeacherSalary.setUpdateTime(nowDate);
|
|
courseScheduleTeacherSalary.setUpdateTime(nowDate);
|
|
|
|
+ courseScheduleTeacherSalaryService.createMusicGroupCourseTeacherSalary(musicGroup, courseSchedule, courseScheduleTeacherSalary);
|
|
courseScheduleTeacherSalaryList.add(courseScheduleTeacherSalary);
|
|
courseScheduleTeacherSalaryList.add(courseScheduleTeacherSalary);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
courseScheduleTeacherSalaryService.batchInsert(courseScheduleTeacherSalaryList);
|
|
courseScheduleTeacherSalaryService.batchInsert(courseScheduleTeacherSalaryList);
|
|
}
|
|
}
|
|
|
|
|
|
- if (!CollectionUtils.isEmpty(removeStudentIds)) {
|
|
|
|
- courseScheduleDao.deleteMusicGroupCourseSchedulesWithStudents(courseIds, new ArrayList<>(removeStudentIds));
|
|
|
|
- if(musicGroup.getStatus() == MusicGroupStatusEnum.PROGRESS){
|
|
|
|
- //5、学生退出班级群组
|
|
|
|
- imGroupMemberService.quit(classGroup.getId().longValue(), new ArrayList<Integer>(addStudentIds));
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if (!CollectionUtils.isEmpty(addStudentIds)) {
|
|
|
|
- courseScheduleStudentPaymentService.createForMusicGroup(classGroup.getMusicGroupId(), classGroupNotStartCourse, new ArrayList<>(addStudentIds));
|
|
|
|
- studentDao.updateStudentServiceTag(null, new ArrayList<>(addStudentIds), YesOrNoEnum.YES.getCode());
|
|
|
|
- if(musicGroup.getStatus() == MusicGroupStatusEnum.PROGRESS){
|
|
|
|
- Map<Integer,String> userRoleMap = new HashMap<>();
|
|
|
|
- for (Integer addStudentId : addStudentIds) {
|
|
|
|
- userRoleMap.put(addStudentId, "");
|
|
|
|
- }
|
|
|
|
- //5、添加进IM群组
|
|
|
|
- imGroupMemberService.join(classGroup.getId().longValue(), userRoleMap);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
if(musicGroup.getStatus() == MusicGroupStatusEnum.PROGRESS){
|
|
if(musicGroup.getStatus() == MusicGroupStatusEnum.PROGRESS){
|
|
imUserFriendService.refreshClassImUserFriend(classGroup.getId());
|
|
imUserFriendService.refreshClassImUserFriend(classGroup.getId());
|
|
}
|
|
}
|