|
@@ -32,6 +32,7 @@ import com.ym.mec.biz.dal.dao.*;
|
|
|
import com.ym.mec.biz.dal.dto.*;
|
|
|
import com.ym.mec.biz.dal.entity.*;
|
|
|
import com.ym.mec.biz.service.*;
|
|
|
+import com.ym.mec.common.entity.HttpResponseResult;
|
|
|
import com.ym.mec.util.collection.ListUtil;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -135,6 +136,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
@Autowired
|
|
|
private ImGroupService imGroupService;
|
|
|
@Autowired
|
|
|
+ private ImUserFriendService imUserFriendService;
|
|
|
+ @Autowired
|
|
|
private CourseScheduleService courseScheduleService;
|
|
|
@Autowired
|
|
|
private CourseScheduleStudentPaymentService courseScheduleStudentPaymentService;
|
|
@@ -1255,6 +1258,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
}
|
|
|
}
|
|
|
courseScheduleStudentPaymentService.batchInsert(courseScheduleStudentPayments);
|
|
|
+ studentDao.updateStudentServiceTag(studentId,null,YesOrNoEnum.YES.getCode());
|
|
|
}
|
|
|
|
|
|
return true;
|
|
@@ -3699,7 +3703,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public void spanGroupMergeClassSplitClassAffirm(MergeClassSplitClassAffirmDto mergeClassSplitClassAffirmDto) {
|
|
|
+ public String spanGroupMergeClassSplitClassAffirm(MergeClassSplitClassAffirmDto mergeClassSplitClassAffirmDto) {
|
|
|
SysUser sysUser = sysUserFeignService.queryUserInfo();
|
|
|
//缴费项目
|
|
|
MusicGroupPaymentCalenderDto paymentCalenderDto = mergeClassSplitClassAffirmDto.getMusicGroupPaymentCalenderDtos().get(0);
|
|
@@ -3707,7 +3711,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
Integer masterClassGroupId = mergeClassSplitClassAffirmDto.getMasterClassGroupId();
|
|
|
//学员列表
|
|
|
List<Integer> studentIds = mergeClassSplitClassAffirmDto.getStudentIds();
|
|
|
- //主班是否包含所选学员学员
|
|
|
+ //主班是否包含所选学员列表
|
|
|
Boolean hasStudent = classGroupStudentMapperDao.hasStudent(masterClassGroupId,studentIds);
|
|
|
if(hasStudent){
|
|
|
throw new BizException("操作失败: 主班包含部分已选学员");
|
|
@@ -3785,11 +3789,13 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
if (paymentCalenderDto.getStatus() != AUDITING) {
|
|
|
List<Map<String,String>> classGroupStudents1 = (List<Map<String,String>>)JSON.parse(musicGroupStudentClassAdjust.getClassGroupStudents());
|
|
|
spanGroupClassAdjustPass(masterClassGroupId,studentIds,courseIds,classGroupStudents1,allLockCourseIds,paymentCalenderDto.getBatchNo(),masterTotalPrice);
|
|
|
+ return "操作成功:学员班级调整完成";
|
|
|
}else {
|
|
|
// 冻结班级
|
|
|
classGroupDao.batchUpdateLockByClassGroupIds(classGroupIds, 1);
|
|
|
// 冻结所选班级的课程
|
|
|
courseScheduleDao.batchUpdateLockByCourseIds(allLockCourseIds, 1);
|
|
|
+ return "操作成功:学员班级调整申请已提交,缴费项目审核中";
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -3804,7 +3810,9 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
//将学员加进班级未开始的课程,以及班级关联、加群
|
|
|
classGroupStudentMapperService.updateClassGroupStudents1(masterClassGroupId.longValue(),studentIds,allLockCourseIds,batchNo,masterTotalPrice);
|
|
|
//删除学员课程
|
|
|
- courseScheduleDao.deleteMusicGroupCourseSchedulesWithStudents(courseIds, studentIds);
|
|
|
+ if(courseIds.size() > 0){
|
|
|
+ courseScheduleDao.deleteMusicGroupCourseSchedulesWithStudents(courseIds, studentIds);
|
|
|
+ }
|
|
|
//删除班级关联的学员
|
|
|
List<Integer> classGroupIds = new ArrayList<>();
|
|
|
if (classGroupStudents != null && classGroupStudents.size() > 0) {
|
|
@@ -3821,15 +3829,101 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
//解冻班级
|
|
|
classGroupIds.add(masterClassGroupId);
|
|
|
classGroupDao.batchUpdateLockByClassGroupIds(classGroupIds,0);
|
|
|
- //获取没有学员的课程
|
|
|
- List<Long> delCourseIds = courseScheduleDao.findNoStudentCourseIds(courseIds);
|
|
|
- if (delCourseIds != null && delCourseIds.size() > 0) {
|
|
|
- //删除课程
|
|
|
- courseScheduleDao.deleteCourseSchedulesByClassGroupIds(delCourseIds);
|
|
|
- //删除教师考勤
|
|
|
- teacherAttendanceDao.batchDeleteByCourseSchedules(delCourseIds);
|
|
|
- //删除教师课酬
|
|
|
- courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(delCourseIds);
|
|
|
+ if(courseIds.size() > 0){
|
|
|
+ //获取没有学员的课程
|
|
|
+ List<Long> delCourseIds = courseScheduleDao.findNoStudentCourseIds(courseIds);
|
|
|
+ if (delCourseIds != null && delCourseIds.size() > 0) {
|
|
|
+ //删除课程
|
|
|
+ courseScheduleDao.deleteCourseSchedulesByClassGroupIds(delCourseIds);
|
|
|
+ //删除教师考勤
|
|
|
+ teacherAttendanceDao.batchDeleteByCourseSchedules(delCourseIds);
|
|
|
+ //删除教师课酬
|
|
|
+ courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(delCourseIds);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void classGroupAddStudent(Integer classGroupId, Integer studentId,GroupType groupType) {
|
|
|
+ //获取相关课程,班级老师列表
|
|
|
+ Set<Integer> teacherIds = teacherDao.findMusicTeacherIds(studentId);
|
|
|
+ //获取学员所在乐团列表
|
|
|
+ List<String> musicGroupIds = studentRegistrationDao.queryStudentMusicGroup(studentId);
|
|
|
+ if (musicGroupIds != null && musicGroupIds.size() > 0) {
|
|
|
+ List<MusicGroup> musicGroups = musicGroupDao.queryListByIds(StringUtils.join(musicGroupIds, ","));
|
|
|
+ musicGroups.forEach(e -> {
|
|
|
+ teacherIds.add(e.getDirectorUserId());
|
|
|
+ teacherIds.add(e.getEducationalTeacherId());
|
|
|
+ teacherIds.add(e.getTeamTeacherId());
|
|
|
+ });
|
|
|
+ }
|
|
|
+ //获取相关vip课老师列表
|
|
|
+ teacherIds.addAll(teacherDao.findVipTeacherIds(studentId));
|
|
|
+ //获取陪练课老师列表
|
|
|
+ teacherIds.addAll(teacherDao.findPracticeTeacherIds(studentId));
|
|
|
+ //获取对外课程老师列表
|
|
|
+ teacherIds.addAll(teacherDao.findCloseCourseTeacherIds(studentId));
|
|
|
+ //获取陪练课课程教务老师
|
|
|
+ teacherIds.addAll(teacherDao.findPracticeEducationalTeacherId(studentId));
|
|
|
+ //获取VIP课程教务老师
|
|
|
+ teacherIds.addAll(teacherDao.findVipEducationalTeacherId(studentId));
|
|
|
+ //获取对外课程务老师
|
|
|
+ teacherIds.addAll(teacherDao.findCommEducationalTeacherId(studentId));
|
|
|
+ //获取关联的指导老师
|
|
|
+ Student student = studentDao.get(studentId);
|
|
|
+ if (student != null && student.getTeacherId() != null) {
|
|
|
+ teacherIds.add(student.getTeacherId());
|
|
|
+ }
|
|
|
+ if (teacherIds.size() > 0) {
|
|
|
+// return teacherDao.queryTeacherBaseInfo(teacherIds, search);
|
|
|
+ }
|
|
|
+ ClassGroup classGroup = classGroupDao.get(classGroupId);
|
|
|
+ List<ImUserFriend> imUserFriends = new ArrayList<>();
|
|
|
+ List<ImUserFriend> teacherUserFriends = new ArrayList<>();
|
|
|
+ //获取班级关联的老师
|
|
|
+ List<ClassGroupTeacherMapper> classGroupTeacherMappers = classGroupTeacherMapperDao.findByClassGroup(classGroupId);
|
|
|
+ //学员好友编号列表
|
|
|
+ Set<Integer> studentFriendIds = new HashSet<>();
|
|
|
+ switch (groupType){
|
|
|
+ case MUSIC:
|
|
|
+ ////学员关联乐团管理人员通讯录
|
|
|
+ MusicGroup musicGroup = musicGroupDao.get(classGroup.getMusicGroupId());
|
|
|
+ teacherIds.add(musicGroup.getDirectorUserId());
|
|
|
+ teacherIds.add(musicGroup.getEducationalTeacherId());
|
|
|
+ teacherIds.add(musicGroup.getTeamTeacherId());
|
|
|
+ //学员关联的班级上的老师
|
|
|
+ teacherIds.addAll(classGroupTeacherMappers.stream().map(e->e.getUserId()).collect(Collectors.toSet()));
|
|
|
+ //获取通讯录名称
|
|
|
+ Map<Integer, String> nameIdMap=MapUtil.convertIntegerMap(teacherDao.queryNameByIdList(new ArrayList<>(teacherIds)));
|
|
|
+ //获取老师声部
|
|
|
+ Map<Integer, String> subjectNameMap = MapUtil.convertIntegerMap(teacherDao.querySubjectNameByIdList(new ArrayList<>(teacherIds)));
|
|
|
+
|
|
|
+ for (Integer teacherId : teacherIds) {
|
|
|
+ ImUserFriend imUserFriend = new ImUserFriend();
|
|
|
+ imUserFriend.setUserId(studentId);
|
|
|
+ imUserFriend.setFriendId(teacherId);
|
|
|
+ imUserFriend.setFriendNickname(nameIdMap.get(teacherId));
|
|
|
+ imUserFriend.setMemo(musicGroup.getName());
|
|
|
+ imUserFriend.setTags(subjectNameMap.get(teacherId));
|
|
|
+ imUserFriends.add(imUserFriend);
|
|
|
+
|
|
|
+ ImUserFriend imUserFriend1 = new ImUserFriend();
|
|
|
+ imUserFriend1.setUserId(studentId);
|
|
|
+ imUserFriend1.setFriendId(teacherId);
|
|
|
+ imUserFriend1.setFriendNickname(nameIdMap.get(teacherId));
|
|
|
+ imUserFriend1.setMemo(musicGroup.getName());
|
|
|
+ imUserFriend1.setTags(subjectNameMap.get(teacherId));
|
|
|
+ imUserFriends.add(imUserFriend1);
|
|
|
+
|
|
|
+// imUserFriendService.batchInsert();
|
|
|
+ }
|
|
|
+ //乐团管理人员关联学员
|
|
|
+ break;
|
|
|
+ case VIP:
|
|
|
+ break;
|
|
|
+ case COMM:
|
|
|
+ break;
|
|
|
+ default:
|
|
|
}
|
|
|
}
|
|
|
}
|