|
@@ -87,6 +87,8 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
|
|
private StudentDao studentDao;
|
|
private StudentDao studentDao;
|
|
@Autowired
|
|
@Autowired
|
|
private SysMessageService sysMessageService;
|
|
private SysMessageService sysMessageService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private GroupDao groupDao;
|
|
|
|
|
|
private static final Logger LOGGER = LoggerFactory
|
|
private static final Logger LOGGER = LoggerFactory
|
|
.getLogger(PracticeGroupService.class);
|
|
.getLogger(PracticeGroupService.class);
|
|
@@ -321,13 +323,105 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
|
|
Map<String, Object> params = new HashMap<>();
|
|
Map<String, Object> params = new HashMap<>();
|
|
MapUtil.populateMap(params, queryInfo);
|
|
MapUtil.populateMap(params, queryInfo);
|
|
|
|
|
|
- List<CoursesGroup> teacherCourseGroups=new ArrayList<>();
|
|
|
|
- int count = coursesGroupDao.countTeacherGroups(params);
|
|
|
|
|
|
+ List<CourseGroupExtendDto> teacherCourseGroups=new ArrayList<>();
|
|
|
|
+ int count = coursesGroupDao.countTeacherGroupsWithWeb(params);
|
|
|
|
+ if (count > 0) {
|
|
|
|
+ pageInfo.setTotal(count);
|
|
|
|
+ params.put("offset", pageInfo.getOffset());
|
|
|
|
+ teacherCourseGroups = coursesGroupDao.findTeacherCourseGroupsWithWeb(params);
|
|
|
|
+ List<String> groupIds = teacherCourseGroups.stream().map(e -> String.valueOf(e.getId())).collect(Collectors.toList());
|
|
|
|
+ List<BaseMapDto<String, Long>> groupStudentNums = groupDao.countGroupStudentNum(groupIds, GroupType.COMM);
|
|
|
|
+ Map<String, Long> groupStudentNumMap = groupStudentNums.stream().collect(Collectors.toMap(BaseMapDto::getKey, BaseMapDto::getValue));
|
|
|
|
+ List<BaseMapDto<String, Long>> groupTotalClassesTimes = groupDao.countGroupTotalClassesTimes(groupIds, GroupType.COMM);
|
|
|
|
+ Map<String, Long> groupTotalClassesTimesMap = groupTotalClassesTimes.stream().collect(Collectors.toMap(BaseMapDto::getKey, e->e.getValue()));
|
|
|
|
+ List<BaseMapDto<String, Long>> groupFinishedClassesTimes = groupDao.countGroupFinishedClassesTimes(groupIds, GroupType.COMM);
|
|
|
|
+ Map<String, Long> groupFinishedClassesTimesMap = groupFinishedClassesTimes.stream().collect(Collectors.toMap(BaseMapDto::getKey, e->e.getValue()));
|
|
|
|
+ List<BaseMapDto<String, String>> groupsFirstClassesTimes = groupDao.findGroupsFirstClassesTime(groupIds, GroupType.COMM);
|
|
|
|
+ Map<String, String> groupsFirstClassesTimeMap = groupsFirstClassesTimes.stream().collect(Collectors.toMap(BaseMapDto::getKey, BaseMapDto::getValue));
|
|
|
|
+ List<BaseMapDto<String, String>> groupsLastClassesTimes = groupDao.findGroupsLastClassesTime(groupIds, GroupType.COMM);
|
|
|
|
+ Map<String, String> groupsLastClassesTimeMap = groupsLastClassesTimes.stream().collect(Collectors.toMap(BaseMapDto::getKey, BaseMapDto::getValue));
|
|
|
|
+ for (CourseGroupExtendDto teacherCourseGroup : teacherCourseGroups) {
|
|
|
|
+ if(Objects.nonNull(groupStudentNumMap.get(teacherCourseGroup.getId().toString()))) {
|
|
|
|
+ teacherCourseGroup.setStudentNum(groupStudentNumMap.get(teacherCourseGroup.getId().toString()).intValue());
|
|
|
|
+ }
|
|
|
|
+ if(Objects.nonNull(groupTotalClassesTimesMap.get(teacherCourseGroup.getId().toString()))) {
|
|
|
|
+ teacherCourseGroup.setTotalClassTimes(groupTotalClassesTimesMap.get(teacherCourseGroup.getId().toString()).intValue());
|
|
|
|
+ }
|
|
|
|
+ if(Objects.nonNull(groupFinishedClassesTimesMap.get(teacherCourseGroup.getId().toString()))) {
|
|
|
|
+ teacherCourseGroup.setCurrentClassTimes(groupFinishedClassesTimesMap.get(teacherCourseGroup.getId().toString()).intValue());
|
|
|
|
+ }
|
|
|
|
+ if(Objects.nonNull(groupsFirstClassesTimeMap.get(teacherCourseGroup.getId().toString()))){
|
|
|
|
+ teacherCourseGroup.setFirstClassesStartTime(DateUtil.stringToDate(groupsFirstClassesTimeMap.get(teacherCourseGroup.getId().toString()), "yyyy-MM-dd HH:mm:ss"));
|
|
|
|
+ }
|
|
|
|
+ if(Objects.nonNull(groupsLastClassesTimeMap.get(teacherCourseGroup.getId().toString()))){
|
|
|
|
+ teacherCourseGroup.setLastClassesEndTime(DateUtil.stringToDate(groupsLastClassesTimeMap.get(teacherCourseGroup.getId().toString()), "yyyy-MM-dd HH:mm:ss"));
|
|
|
|
+ }
|
|
|
|
+ if(Objects.nonNull(teacherCourseGroup.getTotalClassTimes())){
|
|
|
|
+ teacherCourseGroup.setGroupClassesTotalDuration(teacherCourseGroup.getSingleClassMinutes()*teacherCourseGroup.getTotalClassTimes());
|
|
|
|
+ }
|
|
|
|
+ if(Objects.nonNull(teacherCourseGroup.getCurrentClassTimes())){
|
|
|
|
+ teacherCourseGroup.setGroupClassesConsumeDuration(teacherCourseGroup.getSingleClassMinutes()*teacherCourseGroup.getCurrentClassTimes());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ pageInfo.setRows(teacherCourseGroups);
|
|
|
|
+ return pageInfo;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public PageInfo findStudentCourseGroupsWithWeb(GroupQueryInfo queryInfo) {
|
|
|
|
+ PageInfo pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
|
|
|
|
+ Map<String, Object> params = new HashMap<>();
|
|
|
|
+ MapUtil.populateMap(params, queryInfo);
|
|
|
|
+
|
|
|
|
+ List<CourseGroupExtendDto> teacherCourseGroups=new ArrayList<>();
|
|
|
|
+ int count = coursesGroupDao.countStudentGroupsWithWeb(params);
|
|
if (count > 0) {
|
|
if (count > 0) {
|
|
pageInfo.setTotal(count);
|
|
pageInfo.setTotal(count);
|
|
params.put("offset", pageInfo.getOffset());
|
|
params.put("offset", pageInfo.getOffset());
|
|
- teacherCourseGroups = coursesGroupDao.findTeacherCourseGroups(params);
|
|
|
|
|
|
+ teacherCourseGroups = coursesGroupDao.findStudentCourseGroupsWithWeb(params);
|
|
|
|
+ List<Integer> teacherIds = teacherCourseGroups.stream().map(CourseGroupExtendDto::getTeacherId).collect(Collectors.toList());
|
|
|
|
+ List<String> groupIds = teacherCourseGroups.stream().map(e -> String.valueOf(e.getId())).collect(Collectors.toList());
|
|
|
|
+ List<BaseMapDto<String, Long>> groupStudentNums = groupDao.countGroupStudentNum(groupIds, GroupType.COMM);
|
|
|
|
+ Map<String, Long> groupStudentNumMap = groupStudentNums.stream().collect(Collectors.toMap(BaseMapDto::getKey, BaseMapDto::getValue));
|
|
|
|
+ List<BaseMapDto<String, Long>> groupTotalClassesTimes = groupDao.countGroupTotalClassesTimes(groupIds, GroupType.COMM);
|
|
|
|
+ Map<String, Long> groupTotalClassesTimesMap = groupTotalClassesTimes.stream().collect(Collectors.toMap(BaseMapDto::getKey, e->e.getValue()));
|
|
|
|
+ List<BaseMapDto<String, Long>> groupFinishedClassesTimes = groupDao.countGroupFinishedClassesTimes(groupIds, GroupType.COMM);
|
|
|
|
+ Map<String, Long> groupFinishedClassesTimesMap = groupFinishedClassesTimes.stream().collect(Collectors.toMap(BaseMapDto::getKey, e->e.getValue()));
|
|
|
|
+ List<BaseMapDto<String, String>> groupsFirstClassesTimes = groupDao.findGroupsFirstClassesTime(groupIds, GroupType.COMM);
|
|
|
|
+ Map<String, String> groupsFirstClassesTimeMap = groupsFirstClassesTimes.stream().collect(Collectors.toMap(BaseMapDto::getKey, BaseMapDto::getValue));
|
|
|
|
+ List<BaseMapDto<String, String>> groupsLastClassesTimes = groupDao.findGroupsLastClassesTime(groupIds, GroupType.COMM);
|
|
|
|
+ Map<String, String> groupsLastClassesTimeMap = groupsLastClassesTimes.stream().collect(Collectors.toMap(BaseMapDto::getKey, BaseMapDto::getValue));
|
|
|
|
+
|
|
|
|
+ List<SimpleUserDto> teachers = teacherDao.findSimpleTeachers(teacherIds);
|
|
|
|
+ Map<Integer, String> idNameMap = teachers.stream().collect(Collectors.toMap(SimpleUserDto::getUserId, SimpleUserDto::getUserName));
|
|
|
|
+
|
|
|
|
+ for (CourseGroupExtendDto teacherCourseGroup : teacherCourseGroups) {
|
|
|
|
+ if(Objects.nonNull(groupStudentNumMap.get(teacherCourseGroup.getId().toString()))) {
|
|
|
|
+ teacherCourseGroup.setStudentNum(groupStudentNumMap.get(teacherCourseGroup.getId().toString()).intValue());
|
|
|
|
+ }
|
|
|
|
+ if(Objects.nonNull(groupTotalClassesTimesMap.get(teacherCourseGroup.getId().toString()))) {
|
|
|
|
+ teacherCourseGroup.setTotalClassTimes(groupTotalClassesTimesMap.get(teacherCourseGroup.getId().toString()).intValue());
|
|
|
|
+ }
|
|
|
|
+ if(Objects.nonNull(groupFinishedClassesTimesMap.get(teacherCourseGroup.getId().toString()))) {
|
|
|
|
+ teacherCourseGroup.setCurrentClassTimes(groupFinishedClassesTimesMap.get(teacherCourseGroup.getId().toString()).intValue());
|
|
|
|
+ }
|
|
|
|
+ if(Objects.nonNull(groupsFirstClassesTimeMap.get(teacherCourseGroup.getId().toString()))){
|
|
|
|
+ teacherCourseGroup.setFirstClassesStartTime(DateUtil.stringToDate(groupsFirstClassesTimeMap.get(teacherCourseGroup.getId().toString()), "yyyy-MM-dd HH:mm:ss"));
|
|
|
|
+ }
|
|
|
|
+ if(Objects.nonNull(groupsLastClassesTimeMap.get(teacherCourseGroup.getId().toString()))){
|
|
|
|
+ teacherCourseGroup.setLastClassesEndTime(DateUtil.stringToDate(groupsLastClassesTimeMap.get(teacherCourseGroup.getId().toString()), "yyyy-MM-dd HH:mm:ss"));
|
|
|
|
+ }
|
|
|
|
+ if(Objects.nonNull(teacherCourseGroup.getTotalClassTimes())){
|
|
|
|
+ teacherCourseGroup.setGroupClassesTotalDuration(teacherCourseGroup.getSingleClassMinutes()*teacherCourseGroup.getTotalClassTimes());
|
|
|
|
+ }
|
|
|
|
+ if(Objects.nonNull(teacherCourseGroup.getCurrentClassTimes())){
|
|
|
|
+ teacherCourseGroup.setGroupClassesConsumeDuration(teacherCourseGroup.getSingleClassMinutes()*teacherCourseGroup.getCurrentClassTimes());
|
|
|
|
+ }
|
|
|
|
+ teacherCourseGroup.setTeacherName(idNameMap.get(teacherCourseGroup.getTeacherId()));
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
+ pageInfo.setRows(teacherCourseGroups);
|
|
return pageInfo;
|
|
return pageInfo;
|
|
}
|
|
}
|
|
|
|
|