|
@@ -2919,8 +2919,50 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public List<ClassGroupTeachersDto> queryClassGroupPage(ClassGroupQueryInfo queryInfo) {
|
|
|
- return null;
|
|
|
+ public PageInfo<ClassGroupTeachersDto> queryClassGroupPage(ClassGroupQueryInfo queryInfo) {
|
|
|
+ PageInfo<ClassGroupTeachersDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
|
|
|
+ Map<String, Object> params = new HashMap<String, Object>();
|
|
|
+ MapUtil.populateMap(params, queryInfo);
|
|
|
+
|
|
|
+ List<ClassGroupTeachersDto> dataList = null;
|
|
|
+ int count = classGroupDao.countClassGroup(params);
|
|
|
+ if (count > 0) {
|
|
|
+ pageInfo.setTotal(count);
|
|
|
+ params.put("offset", pageInfo.getOffset());
|
|
|
+ dataList = classGroupDao.queryClassGroupPage(params);
|
|
|
+ String classGroupIds = dataList.stream().map(classGroup -> classGroup.getId().toString()).collect(Collectors.joining(","));
|
|
|
+ List<Integer> classGroupSet = dataList.stream().map(classGroup -> classGroup.getId()).collect(Collectors.toList());
|
|
|
+
|
|
|
+ List<ClassGroupTeacherMapper> classGroupTeachers = classGroupTeacherMapperDao.findClassGroupTeachers(classGroupIds);
|
|
|
+ Map<Integer, Integer> studyNums = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertIntegerMap(classGroupDao.countStudyNum(classGroupIds))), HashMap.class);
|
|
|
+
|
|
|
+ Map<Integer, Long> totalNumMap = MapUtil.convertIntegerMap(courseScheduleDao.countTotalNumByClassGroupId(classGroupSet, null));
|
|
|
+ Map<Integer, Long> currentNumMap = MapUtil.convertIntegerMap(courseScheduleDao.countExpendNumByClassGroupId(classGroupSet));
|
|
|
+ for (ClassGroupTeachersDto classGroup : dataList) {
|
|
|
+ List<ClassGroupTeacherMapper> classGroupTeacherMappers = new ArrayList<>();
|
|
|
+ for (ClassGroupTeacherMapper classGroupTeacher : classGroupTeachers) {
|
|
|
+ if (!classGroup.getId().equals(classGroupTeacher.getClassGroupId())) continue;
|
|
|
+ classGroupTeacherMappers.add(classGroupTeacher);
|
|
|
+ }
|
|
|
+ classGroup.setClassGroupTeacherMapperList(classGroupTeacherMappers);
|
|
|
+ classGroup.setStudentNum(studyNums.get(classGroup.getId()));
|
|
|
+ int totalClassTimes = 0;
|
|
|
+ int currentClassTimes = 0;
|
|
|
+ if (totalNumMap.containsKey(classGroup.getId())) {
|
|
|
+ totalClassTimes = totalNumMap.get(classGroup.getId()).intValue();
|
|
|
+ }
|
|
|
+ if (currentNumMap.containsKey(classGroup.getId())) {
|
|
|
+ currentClassTimes = currentNumMap.get(classGroup.getId()).intValue();
|
|
|
+ }
|
|
|
+ classGroup.setTotalClassTimes(totalClassTimes);
|
|
|
+ classGroup.setCurrentClassTimes(currentClassTimes);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (count == 0) {
|
|
|
+ dataList = new ArrayList<>();
|
|
|
+ }
|
|
|
+ pageInfo.setRows(dataList);
|
|
|
+ return pageInfo;
|
|
|
}
|
|
|
|
|
|
@Override
|