|  | @@ -121,55 +121,55 @@ public class StudentManageServiceImpl implements StudentManageService {
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      public PageInfo<StudentManageListDto> findStudentsByOrganId(StudentManageQueryInfo queryInfo) {
 | 
	
		
			
				|  |  |          PageInfo<StudentManageListDto> pageInfo = new PageInfo<StudentManageListDto>(queryInfo.getPage(), queryInfo.getRows());
 | 
	
		
			
				|  |  | -		Map<String, Object> params = new HashMap<String, Object>();
 | 
	
		
			
				|  |  | -		MapUtil.populateMap(params, queryInfo);
 | 
	
		
			
				|  |  | -		
 | 
	
		
			
				|  |  | -		List<StudentManageListDto> dataList = null;
 | 
	
		
			
				|  |  | -		int count = studentManageDao.countStudentByOrganId(params);
 | 
	
		
			
				|  |  | -		if (count > 0) {
 | 
	
		
			
				|  |  | -			pageInfo.setTotal(count);
 | 
	
		
			
				|  |  | -			params.put("offset", pageInfo.getOffset());
 | 
	
		
			
				|  |  | -			dataList = studentManageDao.findStudentsByOrganId(params);
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -		if (dataList == null) {
 | 
	
		
			
				|  |  | -			dataList = new ArrayList<StudentManageListDto>();
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -		pageInfo.setRows(dataList);
 | 
	
		
			
				|  |  | -		
 | 
	
		
			
				|  |  | -		if(dataList.size() == 0){
 | 
	
		
			
				|  |  | -			return pageInfo;
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -		
 | 
	
		
			
				|  |  | +        Map<String, Object> params = new HashMap<String, Object>();
 | 
	
		
			
				|  |  | +        MapUtil.populateMap(params, queryInfo);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        List<StudentManageListDto> dataList = null;
 | 
	
		
			
				|  |  | +        int count = studentManageDao.countStudentByOrganId(params);
 | 
	
		
			
				|  |  | +        if (count > 0) {
 | 
	
		
			
				|  |  | +            pageInfo.setTotal(count);
 | 
	
		
			
				|  |  | +            params.put("offset", pageInfo.getOffset());
 | 
	
		
			
				|  |  | +            dataList = studentManageDao.findStudentsByOrganId(params);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (dataList == null) {
 | 
	
		
			
				|  |  | +            dataList = new ArrayList<StudentManageListDto>();
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        pageInfo.setRows(dataList);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        if (dataList.size() == 0) {
 | 
	
		
			
				|  |  | +            return pageInfo;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          Set<Integer> userIds = dataList.stream().map(StudentManageListDto::getUserId).collect(Collectors.toSet());
 | 
	
		
			
				|  |  | -		
 | 
	
		
			
				|  |  | -		List<StudentListCourseDto> studentListCourseDtoList = studentManageDao.queryStudentRemianCourse(userIds);
 | 
	
		
			
				|  |  | -		Map<Integer,StudentListCourseDto> StudentListCourseDtoMap = studentListCourseDtoList.stream().collect(Collectors.toMap(StudentListCourseDto::getUserId, studentListCourseDto -> studentListCourseDto));
 | 
	
		
			
				|  |  | -		
 | 
	
		
			
				|  |  | -		StudentListCourseDto studentListCourseDto = null;
 | 
	
		
			
				|  |  | -		for (StudentManageListDto dto : dataList) {
 | 
	
		
			
				|  |  | -			studentListCourseDto = StudentListCourseDtoMap.get(dto.getUserId());
 | 
	
		
			
				|  |  | -			if (studentListCourseDto != null) {
 | 
	
		
			
				|  |  | -				if (studentListCourseDto.getRemainCourseNum() > 0) {
 | 
	
		
			
				|  |  | -					dto.setHasCourse(YesOrNoEnum.YES);
 | 
	
		
			
				|  |  | -				} else {
 | 
	
		
			
				|  |  | -					dto.setHasCourse(YesOrNoEnum.NO);
 | 
	
		
			
				|  |  | -				}
 | 
	
		
			
				|  |  | -				if (studentListCourseDto.getRemainPracticeNum() > 0) {
 | 
	
		
			
				|  |  | -					dto.setHasPracticeCourse(YesOrNoEnum.YES);
 | 
	
		
			
				|  |  | -				} else {
 | 
	
		
			
				|  |  | -					dto.setHasPracticeCourse(YesOrNoEnum.NO);
 | 
	
		
			
				|  |  | -				}
 | 
	
		
			
				|  |  | -			} else {
 | 
	
		
			
				|  |  | -				dto.setHasCourse(YesOrNoEnum.NO);
 | 
	
		
			
				|  |  | -				dto.setHasPracticeCourse(YesOrNoEnum.NO);
 | 
	
		
			
				|  |  | -			}
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -		
 | 
	
		
			
				|  |  | -		if (queryInfo.getIsExport()) {
 | 
	
		
			
				|  |  | -			if (count > 50000) {
 | 
	
		
			
				|  |  | -				throw new BizException("数据集太大,不能导出.最大数据集不能超过50000");
 | 
	
		
			
				|  |  | -			}
 | 
	
		
			
				|  |  | -			//获取所在乐团
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        List<StudentListCourseDto> studentListCourseDtoList = studentManageDao.queryStudentRemianCourse(userIds);
 | 
	
		
			
				|  |  | +        Map<Integer, StudentListCourseDto> StudentListCourseDtoMap = studentListCourseDtoList.stream().collect(Collectors.toMap(StudentListCourseDto::getUserId, studentListCourseDto -> studentListCourseDto));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        StudentListCourseDto studentListCourseDto = null;
 | 
	
		
			
				|  |  | +        for (StudentManageListDto dto : dataList) {
 | 
	
		
			
				|  |  | +            studentListCourseDto = StudentListCourseDtoMap.get(dto.getUserId());
 | 
	
		
			
				|  |  | +            if (studentListCourseDto != null) {
 | 
	
		
			
				|  |  | +                if (studentListCourseDto.getRemainCourseNum() > 0) {
 | 
	
		
			
				|  |  | +                    dto.setHasCourse(YesOrNoEnum.YES);
 | 
	
		
			
				|  |  | +                } else {
 | 
	
		
			
				|  |  | +                    dto.setHasCourse(YesOrNoEnum.NO);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                if (studentListCourseDto.getRemainPracticeNum() > 0) {
 | 
	
		
			
				|  |  | +                    dto.setHasPracticeCourse(YesOrNoEnum.YES);
 | 
	
		
			
				|  |  | +                } else {
 | 
	
		
			
				|  |  | +                    dto.setHasPracticeCourse(YesOrNoEnum.NO);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +                dto.setHasCourse(YesOrNoEnum.NO);
 | 
	
		
			
				|  |  | +                dto.setHasPracticeCourse(YesOrNoEnum.NO);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        if (queryInfo.getIsExport()) {
 | 
	
		
			
				|  |  | +            if (count > 50000) {
 | 
	
		
			
				|  |  | +                throw new BizException("数据集太大,不能导出.最大数据集不能超过50000");
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            //获取所在乐团
 | 
	
		
			
				|  |  |              Map<Integer, String> musicGroupNames = MapUtil.convertMybatisMap(musicGroupDao.queryUserMusicNames(userIds));
 | 
	
		
			
				|  |  |              //获取所在vip
 | 
	
		
			
				|  |  |              Map<Integer, String> vipGroupNames = MapUtil.convertMybatisMap(vipGroupDao.queryUserVipNames(userIds));
 | 
	
	
		
			
				|  | @@ -177,15 +177,15 @@ public class StudentManageServiceImpl implements StudentManageService {
 | 
	
		
			
				|  |  |              Map<Integer, String> musicGroupStatus = MapUtil.convertMybatisMap(musicGroupDao.queryUserMusicStatus(userIds));
 | 
	
		
			
				|  |  |              //获取所在vip状态
 | 
	
		
			
				|  |  |              Map<Integer, String> vipGroupStatus = MapUtil.convertMybatisMap(vipGroupDao.queryUserVipStatus(userIds));
 | 
	
		
			
				|  |  | -            
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |              dataList.forEach(e -> {
 | 
	
		
			
				|  |  |                  e.setMusicGroupName(musicGroupNames.get(e.getUserId().longValue()));
 | 
	
		
			
				|  |  |                  e.setVipGroupName(vipGroupNames.get(e.getUserId()));
 | 
	
		
			
				|  |  |                  e.setMusicGroupStatus(musicGroupStatus.get(e.getUserId().longValue()));
 | 
	
		
			
				|  |  |                  e.setVipGroupStatus(vipGroupStatus.get(e.getUserId()));
 | 
	
		
			
				|  |  |              });
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -		pageInfo.setRows(dataList);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        pageInfo.setRows(dataList);
 | 
	
		
			
				|  |  |          return pageInfo;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -385,6 +385,21 @@ public class StudentManageServiceImpl implements StudentManageService {
 | 
	
		
			
				|  |  |              pageInfo.setTotal(count);
 | 
	
		
			
				|  |  |              params.put("offset", pageInfo.getOffset());
 | 
	
		
			
				|  |  |              dataList = studentManageDao.queryMusicGroupStudent(params);
 | 
	
		
			
				|  |  | +            //退团的学生
 | 
	
		
			
				|  |  | +            List<Integer> quitUserIds = dataList.stream().filter(e -> e.getStudentStatus().equals("QUIT")).map(MusicGroupStudentsDto::getUserId).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            if (quitUserIds.size() > 0) {
 | 
	
		
			
				|  |  | +                List<MusicGroupQuit> quits = musicGroupQuitDao.getQuits(queryInfo.getMusicGroupId(), quitUserIds);
 | 
	
		
			
				|  |  | +                for (MusicGroupStudentsDto musicGroupStudentsDto : dataList) {
 | 
	
		
			
				|  |  | +                    for (MusicGroupQuit quit : quits) {
 | 
	
		
			
				|  |  | +                        if (!quit.getUserId().equals(musicGroupStudentsDto.getUserId())) continue;
 | 
	
		
			
				|  |  | +                        musicGroupStudentsDto.setQuitReason(quit.getReason());
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +//            Map<Integer,String> maps = MapUtil.convertIntegerMap(musicGroupStudentFeeDao.findPaymentStatusMap(queryInfo.getMusicGroupId()));
 | 
	
		
			
				|  |  | +//            dataList.forEach(e->{
 | 
	
		
			
				|  |  | +//                e.setPaymentStatus(maps.get(e.getUserId()));
 | 
	
		
			
				|  |  |  //            Set<Integer> collect = dataList.stream().map(e -> e.getUserId()).collect(Collectors.toSet());
 | 
	
		
			
				|  |  |  //            Map<Integer,String> paymentStatusMap = MapUtil.convertIntegerMap(
 | 
	
		
			
				|  |  |  //                    musicGroupPaymentCalenderDao.queryUserCoursePaymentStatus(collect,queryInfo.getMusicGroupId()));
 | 
	
	
		
			
				|  | @@ -477,39 +492,39 @@ public class StudentManageServiceImpl implements StudentManageService {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      @Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  | -	public int studentRegister(Student student) {
 | 
	
		
			
				|  |  | -		if (student == null || StringUtils.isEmpty(student.getPhone())) {
 | 
	
		
			
				|  |  | -			throw new BizException("参数校验失败");
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -		Date date = new Date();
 | 
	
		
			
				|  |  | -		SysUser sysUser = sysUserFeignService.queryUserByMobile(student.getPhone());
 | 
	
		
			
				|  |  | -		if (sysUser != null) {
 | 
	
		
			
				|  |  | -			if (sysUser.getUserType().contains("STUDENT")) {
 | 
	
		
			
				|  |  | -				throw new BizException("手机号已被占用");
 | 
	
		
			
				|  |  | -			} else {
 | 
	
		
			
				|  |  | -				student.setId(sysUser.getId());
 | 
	
		
			
				|  |  | -				student.setUserType(sysUser.getUserType() + ",STUDENT");
 | 
	
		
			
				|  |  | -				student.setUpdateTime(date);
 | 
	
		
			
				|  |  | -				sysUserFeignService.updateSysUser(student);
 | 
	
		
			
				|  |  | -			}
 | 
	
		
			
				|  |  | -		} else {
 | 
	
		
			
				|  |  | -			student.setUpdateTime(date);
 | 
	
		
			
				|  |  | -			student.setCreateTime(date);
 | 
	
		
			
				|  |  | -			student.setUserType("STUDENT");
 | 
	
		
			
				|  |  | -			HttpResponseResult<Integer> result = sysUserFeignService.addUser(student);
 | 
	
		
			
				|  |  | -			student.setId(result.getData());
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -			ImResult register = imFeignService.register(new ImUserModel(student.getId().toString(), student.getPhone(), null));
 | 
	
		
			
				|  |  | -			student.setImToken(register.getToken());
 | 
	
		
			
				|  |  | -			sysUserFeignService.updateSysUser(student);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -			sysUserCashAccountDao.insert(new SysUserCashAccount(student.getId(), "CNY"));
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -		student.setUserId(student.getId());
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -		studentService.upSet(student);
 | 
	
		
			
				|  |  | -		return student.getId();
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | +    public int studentRegister(Student student) {
 | 
	
		
			
				|  |  | +        if (student == null || StringUtils.isEmpty(student.getPhone())) {
 | 
	
		
			
				|  |  | +            throw new BizException("参数校验失败");
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        Date date = new Date();
 | 
	
		
			
				|  |  | +        SysUser sysUser = sysUserFeignService.queryUserByMobile(student.getPhone());
 | 
	
		
			
				|  |  | +        if (sysUser != null) {
 | 
	
		
			
				|  |  | +            if (sysUser.getUserType().contains("STUDENT")) {
 | 
	
		
			
				|  |  | +                throw new BizException("手机号已被占用");
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +                student.setId(sysUser.getId());
 | 
	
		
			
				|  |  | +                student.setUserType(sysUser.getUserType() + ",STUDENT");
 | 
	
		
			
				|  |  | +                student.setUpdateTime(date);
 | 
	
		
			
				|  |  | +                sysUserFeignService.updateSysUser(student);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +            student.setUpdateTime(date);
 | 
	
		
			
				|  |  | +            student.setCreateTime(date);
 | 
	
		
			
				|  |  | +            student.setUserType("STUDENT");
 | 
	
		
			
				|  |  | +            HttpResponseResult<Integer> result = sysUserFeignService.addUser(student);
 | 
	
		
			
				|  |  | +            student.setId(result.getData());
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            ImResult register = imFeignService.register(new ImUserModel(student.getId().toString(), student.getPhone(), null));
 | 
	
		
			
				|  |  | +            student.setImToken(register.getToken());
 | 
	
		
			
				|  |  | +            sysUserFeignService.updateSysUser(student);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            sysUserCashAccountDao.insert(new SysUserCashAccount(student.getId(), "CNY"));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        student.setUserId(student.getId());
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        studentService.upSet(student);
 | 
	
		
			
				|  |  | +        return student.getId();
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      @Transactional(rollbackFor = Exception.class)
 |