|  | @@ -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;
 | 
	
	
		
			
				|  | @@ -3700,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);
 | 
	
	
		
			
				|  | @@ -3786,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 "操作成功:学员班级调整申请已提交,缴费项目审核中";
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -3805,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) {
 | 
	
	
		
			
				|  | @@ -3822,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:
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  }
 |