|
@@ -41,6 +41,9 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
|
|
|
@Autowired
|
|
|
private PracticeGroupDao practiceGroupDao;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private SysMusicCompareRecordDao sysMusicCompareRecordDao;
|
|
|
+
|
|
|
@Override
|
|
|
public BaseDAO<Integer, Student> getDAO() {
|
|
|
return studentDao;
|
|
@@ -365,26 +368,49 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
|
|
|
|
|
|
@Override
|
|
|
public StatDto organStudentData(StudentQueryInfo queryInfo) {
|
|
|
- EduOrganStudentDataDto organStudentVipData = studentDao.getOrganStudentVipData(queryInfo.getOrganId());
|
|
|
- organStudentVipData.setCloudStudyUseStudentNum(studentDao.getCloudStudyStudentNum(queryInfo.getOrganId()));
|
|
|
- organStudentVipData.setCloudStudyLivelyStudentNum(studentDao.getCloudStudyLivelyStudentNum(queryInfo.getOrganId()));
|
|
|
-
|
|
|
PageInfo<EduOrganStudentListDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
|
|
|
Map<String, Object> params = new HashMap<String, Object>();
|
|
|
MapUtil.populateMap(params, queryInfo);
|
|
|
|
|
|
List<EduOrganStudentListDto> dataList = new ArrayList<>();
|
|
|
- int count = 1;
|
|
|
+ int count = studentDao.countCloudStudyStudentData(params);
|
|
|
if (count > 0) {
|
|
|
pageInfo.setTotal(count);
|
|
|
params.put("offset", pageInfo.getOffset());
|
|
|
-// dataList = this.getDAO().queryPage(params);
|
|
|
+ dataList = studentDao.queryCloudStudyStudentData(params);
|
|
|
+ List<Integer> studentIds = dataList.stream().map(EduOrganStudentListDto::getStudentId).collect(Collectors.toList());
|
|
|
+ List<Map<Integer, String>> studentGroupNamesMapList = studentRegistrationDao.queryStudentMusicGroupNamesMap(studentIds);
|
|
|
+ Map<Integer, String> studentGroupNamesMap = MapUtil.convertIntegerMap(studentGroupNamesMapList);
|
|
|
+ Set<Integer> hasVipCourseStudentIds = courseScheduleStudentPaymentDao.getHasVipCourseStudentIds(studentIds);
|
|
|
+ List<EduOrganStudentListDto> eduOrganStudentListDtos = sysMusicCompareRecordDao.queryStudentTrainData(studentIds);
|
|
|
+ Map<Integer, EduOrganStudentListDto> studentTrainDataMap = new HashMap<>();
|
|
|
+ if(!CollectionUtils.isEmpty(eduOrganStudentListDtos)){
|
|
|
+ studentTrainDataMap = eduOrganStudentListDtos.stream().collect(Collectors.toMap(EduOrganStudentListDto::getStudentId, e -> e, (e1, e2) -> e1));
|
|
|
+ }
|
|
|
+
|
|
|
+ for (EduOrganStudentListDto eduOrganStudentListDto : dataList) {
|
|
|
+ if(studentGroupNamesMap.containsKey(eduOrganStudentListDto.getStudentId())){
|
|
|
+ eduOrganStudentListDto.setMusicGroupNames(studentGroupNamesMap.get(eduOrganStudentListDto.getStudentId()));
|
|
|
+ }
|
|
|
+ if(hasVipCourseStudentIds.contains(eduOrganStudentListDto.getSubjectId())){
|
|
|
+ eduOrganStudentListDto.setHasVipGroup(1);
|
|
|
+ }
|
|
|
+ if(studentTrainDataMap.containsKey(eduOrganStudentListDto.getStudentId())){
|
|
|
+ eduOrganStudentListDto.setCloudStudyUseNum(studentTrainDataMap.get(eduOrganStudentListDto.getSubjectId()).getCloudStudyUseNum());
|
|
|
+ eduOrganStudentListDto.setCloudStudyUseTime(studentTrainDataMap.get(eduOrganStudentListDto.getSubjectId()).getCloudStudyUseTime());
|
|
|
+ eduOrganStudentListDto.setCloudStudyUseAvgTime(eduOrganStudentListDto.getCloudStudyUseTime()/eduOrganStudentListDto.getCloudStudyUseNum());
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- dataList.add(new EduOrganStudentListDto());
|
|
|
pageInfo.setRows(dataList);
|
|
|
|
|
|
StatDto result = new StatDto();
|
|
|
- result.setHead(organStudentVipData);
|
|
|
+ if(queryInfo.getPage()==1){
|
|
|
+ EduOrganStudentDataDto organStudentVipData = studentDao.getOrganStudentVipData(queryInfo.getOrganId());
|
|
|
+ organStudentVipData.setCloudStudyUseStudentNum(studentDao.getCloudStudyStudentNum(queryInfo.getOrganId()));
|
|
|
+ organStudentVipData.setCloudStudyLivelyStudentNum(studentDao.getCloudStudyLivelyStudentNum(queryInfo.getOrganId()));
|
|
|
+ result.setHead(organStudentVipData);
|
|
|
+ }
|
|
|
result.setDetail(pageInfo);
|
|
|
|
|
|
return result;
|