|  | @@ -8,14 +8,13 @@ import com.google.common.collect.Lists;
 | 
	
		
			
				|  |  |  import com.ym.mec.education.base.BaseResponse;
 | 
	
		
			
				|  |  |  import com.ym.mec.education.base.PageResponse;
 | 
	
		
			
				|  |  |  import com.ym.mec.education.entity.*;
 | 
	
		
			
				|  |  | -import com.ym.mec.education.enums.ClassGroupStudentStatusEnum;
 | 
	
		
			
				|  |  | -import com.ym.mec.education.enums.ClassGroupTypeEnum;
 | 
	
		
			
				|  |  | -import com.ym.mec.education.enums.ReturnCodeEnum;
 | 
	
		
			
				|  |  | -import com.ym.mec.education.enums.TeachTypeEnum;
 | 
	
		
			
				|  |  | +import com.ym.mec.education.enums.*;
 | 
	
		
			
				|  |  |  import com.ym.mec.education.mapper.MusicGroupMapper;
 | 
	
		
			
				|  |  |  import com.ym.mec.education.req.ClassGroupReq;
 | 
	
		
			
				|  |  |  import com.ym.mec.education.req.MusicGroupReq;
 | 
	
		
			
				|  |  |  import com.ym.mec.education.resp.ClassGroupResp;
 | 
	
		
			
				|  |  | +import com.ym.mec.education.resp.ClassStudentResp;
 | 
	
		
			
				|  |  | +import com.ym.mec.education.resp.ClassTeacherResp;
 | 
	
		
			
				|  |  |  import com.ym.mec.education.resp.MusicGroupResp;
 | 
	
		
			
				|  |  |  import com.ym.mec.education.service.*;
 | 
	
		
			
				|  |  |  import org.springframework.beans.BeanUtils;
 | 
	
	
		
			
				|  | @@ -24,9 +23,7 @@ import org.springframework.stereotype.Service;
 | 
	
		
			
				|  |  |  import org.springframework.util.CollectionUtils;
 | 
	
		
			
				|  |  |  import org.springframework.util.StringUtils;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -import java.util.ArrayList;
 | 
	
		
			
				|  |  | -import java.util.List;
 | 
	
		
			
				|  |  | -import java.util.Optional;
 | 
	
		
			
				|  |  | +import java.util.*;
 | 
	
		
			
				|  |  |  import java.util.stream.Collectors;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /**
 | 
	
	
		
			
				|  | @@ -58,6 +55,9 @@ public class MusicGroupServiceImpl extends ServiceImpl<MusicGroupMapper, MusicGr
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
		
			
				|  |  |      private IClassGroupStudentMapperService classGroupStudentMapperService;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    @Autowired
 | 
	
		
			
				|  |  | +    private IStudentAttendanceService studentAttendanceService;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      public PageResponse groupList(MusicGroupReq req) {
 | 
	
	
		
			
				|  | @@ -105,10 +105,10 @@ public class MusicGroupServiceImpl extends ServiceImpl<MusicGroupMapper, MusicGr
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              SysUser  sysUser2 = sysUserService.getById(g.getTeamTeacherId());
 | 
	
		
			
				|  |  |              if(sysUser1 != null){
 | 
	
		
			
				|  |  | -                musicGroupResp.setTeamTeacherName(sysUser1.getUsername());
 | 
	
		
			
				|  |  | +                musicGroupResp.setTeamTeacherName(sysUser1.getRealName());
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              if(sysUser2 != null){
 | 
	
		
			
				|  |  | -                musicGroupResp.setEduTeacherName(sysUser2.getUsername());
 | 
	
		
			
				|  |  | +                musicGroupResp.setEduTeacherName(sysUser2.getRealName());
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              musicGroupResps.add(musicGroupResp);
 | 
	
		
			
				|  |  |          });
 | 
	
	
		
			
				|  | @@ -167,10 +167,10 @@ public class MusicGroupServiceImpl extends ServiceImpl<MusicGroupMapper, MusicGr
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          SysUser  sysUser2 = sysUserService.getById(musicGroup.getTeamTeacherId());
 | 
	
		
			
				|  |  |          if(sysUser1 != null){
 | 
	
		
			
				|  |  | -            musicGroupResp.setTeamTeacherName(sysUser1.getUsername());
 | 
	
		
			
				|  |  | +            musicGroupResp.setTeamTeacherName(sysUser1.getRealName());
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          if(sysUser2 != null){
 | 
	
		
			
				|  |  | -            musicGroupResp.setEduTeacherName(sysUser2.getUsername());
 | 
	
		
			
				|  |  | +            musicGroupResp.setEduTeacherName(sysUser2.getRealName());
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          baseResponse.setDataInfo(musicGroupResp);
 | 
	
		
			
				|  |  |          baseResponse.setReturnCode(ReturnCodeEnum.CODE_200.getCode());
 | 
	
	
		
			
				|  | @@ -202,47 +202,157 @@ public class MusicGroupServiceImpl extends ServiceImpl<MusicGroupMapper, MusicGr
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          List<ClassGroup> classGroups = classGroupPage.getRecords();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        List<ClassGroupResp> groupRespList = new ArrayList<>();
 | 
	
		
			
				|  |  | -        if(!CollectionUtils.isEmpty(classGroups)){
 | 
	
		
			
				|  |  | -            classGroups.forEach(e ->{
 | 
	
		
			
				|  |  | +        //班级
 | 
	
		
			
				|  |  | +        if(req.getType() == 0){
 | 
	
		
			
				|  |  | +            List<ClassGroupResp> groupRespList = new ArrayList<>();
 | 
	
		
			
				|  |  | +            if(!CollectionUtils.isEmpty(classGroups)){
 | 
	
		
			
				|  |  | +                classGroups.forEach(e ->{
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    ClassGroupResp classGroupResp = new ClassGroupResp();
 | 
	
		
			
				|  |  | +                    //查询班级老师
 | 
	
		
			
				|  |  | +                    BeanUtils.copyProperties(e,classGroupResp);
 | 
	
		
			
				|  |  | +                    QueryWrapper<ClassGroupTeacherMapper> queryWrapper2 = new QueryWrapper<>();
 | 
	
		
			
				|  |  | +                    queryWrapper2.eq("music_group_id_",e.getId()).eq("teacher_role_", TeachTypeEnum.BISHOP.getCode());
 | 
	
		
			
				|  |  | +                    List<ClassGroupTeacherMapper> list = classGroupTeacherMapperService.list(queryWrapper2);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    if(!CollectionUtils.isEmpty(list)){
 | 
	
		
			
				|  |  | +                        List<Integer> firstId = list.stream().map(ClassGroupTeacherMapper::getUserId).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +                        QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
 | 
	
		
			
				|  |  | +                        queryWrapper.in("id_",firstId);
 | 
	
		
			
				|  |  | +                        List<SysUser> sysUserList = sysUserService.list(queryWrapper);
 | 
	
		
			
				|  |  | +                        if(!CollectionUtils.isEmpty(sysUserList)){
 | 
	
		
			
				|  |  | +                            classGroupResp.setFirstTehNameList(sysUserList.stream().map(SysUser::getRealName).collect(Collectors.toList()));
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                ClassGroupResp classGroupResp = new ClassGroupResp();
 | 
	
		
			
				|  |  | -                //查询班级老师
 | 
	
		
			
				|  |  | -                BeanUtils.copyProperties(e,classGroupResp);
 | 
	
		
			
				|  |  | -                QueryWrapper<ClassGroupTeacherMapper> queryWrapper2 = new QueryWrapper<>();
 | 
	
		
			
				|  |  | -                queryWrapper2.eq("music_group_id_",e.getId()).eq("teacher_role_", TeachTypeEnum.BISHOP.getCode());
 | 
	
		
			
				|  |  | -                List<ClassGroupTeacherMapper> list = classGroupTeacherMapperService.list();
 | 
	
		
			
				|  |  | +                    queryWrapper2.eq("music_group_id_",e.getId()).eq("teacher_role_", TeachTypeEnum.TEACHING.getCode());
 | 
	
		
			
				|  |  | +                    List<ClassGroupTeacherMapper> list2 = classGroupTeacherMapperService.list();
 | 
	
		
			
				|  |  | +                    if(!CollectionUtils.isEmpty(list2)){
 | 
	
		
			
				|  |  | +                        List<Integer> secdId = list2.stream().map(ClassGroupTeacherMapper::getUserId).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +                        QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
 | 
	
		
			
				|  |  | +                        queryWrapper.in("id_",secdId);
 | 
	
		
			
				|  |  | +                        List<SysUser> sysUserList = sysUserService.list(queryWrapper);
 | 
	
		
			
				|  |  | +                        if(!CollectionUtils.isEmpty(sysUserList)){
 | 
	
		
			
				|  |  | +                            classGroupResp.setSecdTehNameList(sysUserList.stream().map(SysUser::getRealName).collect(Collectors.toList()));
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                    groupRespList.add(classGroupResp);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                if(!CollectionUtils.isEmpty(list)){
 | 
	
		
			
				|  |  | -                   List<Integer> firstId = list.stream().map(ClassGroupTeacherMapper::getUserId).collect(Collectors.toList());
 | 
	
		
			
				|  |  | -                   QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
 | 
	
		
			
				|  |  | -                   queryWrapper.in("id_",firstId);
 | 
	
		
			
				|  |  | -                   List<SysUser> sysUserList = sysUserService.list(queryWrapper);
 | 
	
		
			
				|  |  | -                   if(!CollectionUtils.isEmpty(sysUserList)){
 | 
	
		
			
				|  |  | -                       classGroupResp.setFirstTehNameList(sysUserList.stream().map(SysUser::getUsername).collect(Collectors.toList()));
 | 
	
		
			
				|  |  | -                   }
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | +                });
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            response.setRecords(groupRespList);
 | 
	
		
			
				|  |  | +            response.setReturnCode(ReturnCodeEnum.CODE_200.getCode());
 | 
	
		
			
				|  |  | +            response.setMessage(ReturnCodeEnum.CODE_200.getValue());
 | 
	
		
			
				|  |  | +            response.setTotal(count);
 | 
	
		
			
				|  |  | +            return response;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        //学生
 | 
	
		
			
				|  |  | +        if(req.getType() == 1){
 | 
	
		
			
				|  |  | +            List<ClassStudentResp> classStudentResps = new ArrayList<>();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            classGroups.forEach(e ->{
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                QueryWrapper<ClassGroupStudentMapper> queryWrapper = new QueryWrapper<>();
 | 
	
		
			
				|  |  | +                queryWrapper.eq("class_group_id_",e.getId());
 | 
	
		
			
				|  |  | +                List<ClassGroupStudentMapper> studentMappers = classGroupStudentMapperService.list(queryWrapper);
 | 
	
		
			
				|  |  | +                if(!CollectionUtils.isEmpty(studentMappers)){
 | 
	
		
			
				|  |  | +                    studentMappers.forEach(stud ->{
 | 
	
		
			
				|  |  | +                        ClassStudentResp classStudentResp = new ClassStudentResp();
 | 
	
		
			
				|  |  | +                        Set<String> set = new HashSet<>();
 | 
	
		
			
				|  |  | +                        List<ClassStudentResp> removeList = classStudentResps.stream().filter(c ->c.getUserId().equals(stud.getUserId()) && c.getClassGroupId().equals(stud.getClassGroupId())).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +                        if(!CollectionUtils.isEmpty(removeList)){
 | 
	
		
			
				|  |  | +                            classStudentResp = removeList.get(0);
 | 
	
		
			
				|  |  | +                            set.addAll(classStudentResp.getClassType());
 | 
	
		
			
				|  |  | +                            set.add(e.getType());
 | 
	
		
			
				|  |  | +                            classStudentResp.setClassType(new ArrayList<>(set));
 | 
	
		
			
				|  |  | +                        }else{
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                            SysUser sysUser = sysUserService.getById(stud.getUserId());
 | 
	
		
			
				|  |  | +                            if(sysUser != null){
 | 
	
		
			
				|  |  | +                                classStudentResp.setName(sysUser.getRealName());
 | 
	
		
			
				|  |  | +                                classStudentResp.setAvatar(sysUser.getAvatar());
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                            classStudentResp.setUserId(stud.getUserId());
 | 
	
		
			
				|  |  | +                            classStudentResp.setClassGroupId(stud.getClassGroupId());
 | 
	
		
			
				|  |  | +                            QueryWrapper<StudentAttendance> truntWrapper = new QueryWrapper<>();
 | 
	
		
			
				|  |  | +                            //旷课
 | 
	
		
			
				|  |  | +                            truntWrapper.lambda().eq(true, StudentAttendance::getMusicGroupId, req.getGroupId())
 | 
	
		
			
				|  |  | +                                    .eq(true, StudentAttendance::getClassGroupId, e.getId())
 | 
	
		
			
				|  |  | +                                    .eq(true, StudentAttendance::getStatus, StudentAttendanceStatusEnum.TRUANT.getCode())
 | 
	
		
			
				|  |  | +                                    .eq(true,StudentAttendance::getUserId,stud.getUserId());
 | 
	
		
			
				|  |  | +                            Integer leaveCount = studentAttendanceService.count(truntWrapper);
 | 
	
		
			
				|  |  | +                            classStudentResp.setTruantNum(leaveCount);
 | 
	
		
			
				|  |  | +                            set.add(e.getType());
 | 
	
		
			
				|  |  | +                            if(ClassGroupTypeEnum.VIP.equals(e.getType())){
 | 
	
		
			
				|  |  | +                                classStudentResp.setIsVip(1);
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                            classStudentResp.setClassType(new ArrayList<>(set));
 | 
	
		
			
				|  |  | +                            classStudentResps.add(classStudentResp);
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    });
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                queryWrapper2.eq("music_group_id_",e.getId()).eq("teacher_role_", TeachTypeEnum.TEACHING.getCode());
 | 
	
		
			
				|  |  | -                List<ClassGroupTeacherMapper> list2 = classGroupTeacherMapperService.list();
 | 
	
		
			
				|  |  | -                if(!CollectionUtils.isEmpty(list2)){
 | 
	
		
			
				|  |  | -                    List<Integer> secdId = list2.stream().map(ClassGroupTeacherMapper::getUserId).collect(Collectors.toList());
 | 
	
		
			
				|  |  | -                    QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
 | 
	
		
			
				|  |  | -                    queryWrapper.in("id_",secdId);
 | 
	
		
			
				|  |  | -                    List<SysUser> sysUserList = sysUserService.list(queryWrapper);
 | 
	
		
			
				|  |  | -                    if(!CollectionUtils.isEmpty(sysUserList)){
 | 
	
		
			
				|  |  | -                        classGroupResp.setSecdTehNameList(sysUserList.stream().map(SysUser::getUsername).collect(Collectors.toList()));
 | 
	
		
			
				|  |  | -                    }
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  | -                groupRespList.add(classGroupResp);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              });
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            response.setRecords(classStudentResps);
 | 
	
		
			
				|  |  | +            response.setReturnCode(ReturnCodeEnum.CODE_200.getCode());
 | 
	
		
			
				|  |  | +            response.setMessage(ReturnCodeEnum.CODE_200.getValue());
 | 
	
		
			
				|  |  | +            response.setTotal(count);
 | 
	
		
			
				|  |  | +            return response;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +        //老师
 | 
	
		
			
				|  |  | +        if(req.getType() == 2){
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        response.setRecords(groupRespList);
 | 
	
		
			
				|  |  | -        response.setReturnCode(ReturnCodeEnum.CODE_200.getCode());
 | 
	
		
			
				|  |  | -        response.setMessage(ReturnCodeEnum.CODE_200.getValue());
 | 
	
		
			
				|  |  | -        response.setTotal(count);
 | 
	
		
			
				|  |  | -        return null;
 | 
	
		
			
				|  |  | +            List<ClassTeacherResp> classTeacherResps = new ArrayList<>();
 | 
	
		
			
				|  |  | +            classGroups.forEach(e -> {
 | 
	
		
			
				|  |  | +                QueryWrapper<ClassGroupTeacherMapper> queryWrapper2 = new QueryWrapper<>();
 | 
	
		
			
				|  |  | +                queryWrapper2.eq("music_group_id_", e.getId());
 | 
	
		
			
				|  |  | +                List<ClassGroupTeacherMapper> list = classGroupTeacherMapperService.list(queryWrapper2);
 | 
	
		
			
				|  |  | +                if(!CollectionUtils.isEmpty(list)){
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    list.forEach(stud ->{
 | 
	
		
			
				|  |  | +                        ClassTeacherResp classTeacherResp = new ClassTeacherResp();
 | 
	
		
			
				|  |  | +                        List<ClassTeacherResp> removeList = classTeacherResps.stream().filter(c ->c.getUserId().equals(stud.getUserId()) && c.getClassGroupId().equals(stud.getClassGroupId())).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +                        HashSet set = new HashSet<>();
 | 
	
		
			
				|  |  | +                        if(!CollectionUtils.isEmpty(removeList)){
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                            classTeacherResp = removeList.get(0);
 | 
	
		
			
				|  |  | +                            set.addAll(classTeacherResp.getClassName());
 | 
	
		
			
				|  |  | +                            set.add(e.getName());
 | 
	
		
			
				|  |  | +                            classTeacherResp.setClassName(new ArrayList<>(set));
 | 
	
		
			
				|  |  | +                        }else{
 | 
	
		
			
				|  |  | +                            SysUser sysUser = sysUserService.getById(stud.getUserId());
 | 
	
		
			
				|  |  | +                            if(sysUser != null){
 | 
	
		
			
				|  |  | +                                classTeacherResp.setName(sysUser.getRealName());
 | 
	
		
			
				|  |  | +                                classTeacherResp.setAvatar(sysUser.getAvatar());
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                            classTeacherResp.setUserId(stud.getUserId());
 | 
	
		
			
				|  |  | +                            classTeacherResp.setClassGroupId(stud.getClassGroupId());
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                            set.add(e.getName());
 | 
	
		
			
				|  |  | +                            classTeacherResp.setClassName(new ArrayList<>(set));
 | 
	
		
			
				|  |  | +                            classTeacherResps.add(classTeacherResp);
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    });
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            response.setRecords(classTeacherResps);
 | 
	
		
			
				|  |  | +            response.setReturnCode(ReturnCodeEnum.CODE_200.getCode());
 | 
	
		
			
				|  |  | +            response.setMessage(ReturnCodeEnum.CODE_200.getValue());
 | 
	
		
			
				|  |  | +            response.setTotal(count);
 | 
	
		
			
				|  |  | +            return response;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        return response;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  }
 |