|
@@ -7,6 +7,7 @@ import com.ym.mec.biz.dal.dto.*;
|
|
|
import com.ym.mec.biz.dal.entity.*;
|
|
|
import com.ym.mec.biz.dal.enums.*;
|
|
|
import com.ym.mec.biz.dal.page.GroupCourseScheduleQueryInfo;
|
|
|
+import com.ym.mec.biz.dal.page.GroupQueryInfo;
|
|
|
import com.ym.mec.biz.service.*;
|
|
|
import com.ym.mec.common.constant.CommonConstants;
|
|
|
import com.ym.mec.common.controller.BaseController;
|
|
@@ -86,6 +87,8 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
|
|
|
private StudentDao studentDao;
|
|
|
@Autowired
|
|
|
private SysMessageService sysMessageService;
|
|
|
+ @Autowired
|
|
|
+ private GroupDao groupDao;
|
|
|
|
|
|
private static final Logger LOGGER = LoggerFactory
|
|
|
.getLogger(PracticeGroupService.class);
|
|
@@ -315,6 +318,105 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ public PageInfo findTeacherCourseGroupsWithWeb(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.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<GroupBaseCourseInfoDto> groupStudentNums = groupDao.countGroupStudentNum(groupIds, GroupType.COMM);
|
|
|
+ Map<String, Integer> groupStudentNumMap = groupStudentNums.stream().collect(Collectors.toMap(GroupBaseCourseInfoDto::getId, GroupBaseCourseInfoDto::getStudentNum));
|
|
|
+
|
|
|
+ List<GroupBaseCourseInfoDto> groupTotalClassesTimes = groupDao.countGroupTotalClassesTimes(groupIds, GroupType.COMM);
|
|
|
+ Map<String, GroupBaseCourseInfoDto> groupBaseCourseInfoMap = groupTotalClassesTimes.stream().collect(Collectors.toMap(GroupBaseCourseInfoDto::getId, e->e));
|
|
|
+
|
|
|
+ List<GroupBaseCourseInfoDto> groupFinishedClassesTimes = groupDao.countGroupFinishedClassesTimes(groupIds, GroupType.COMM);
|
|
|
+ Map<String, Integer> groupFinishedClassesTimesMap = groupFinishedClassesTimes.stream().collect(Collectors.toMap(GroupBaseCourseInfoDto::getId, e->e.getCurrentClassTimes()));
|
|
|
+
|
|
|
+ for (CourseGroupExtendDto teacherCourseGroup : teacherCourseGroups) {
|
|
|
+ if(Objects.nonNull(groupStudentNumMap.get(teacherCourseGroup.getId().toString()))) {
|
|
|
+ teacherCourseGroup.setStudentNum(groupStudentNumMap.get(teacherCourseGroup.getId().toString()).intValue());
|
|
|
+ }
|
|
|
+ GroupBaseCourseInfoDto groupBaseCourseInfo = groupBaseCourseInfoMap.get(teacherCourseGroup.getId().toString());
|
|
|
+ if(Objects.nonNull(groupBaseCourseInfo)){
|
|
|
+ teacherCourseGroup.setTotalClassTimes(groupBaseCourseInfo.getTotalClassTimes());
|
|
|
+ teacherCourseGroup.setFirstClassesStartTime(groupBaseCourseInfo.getFirstClassesStartTime());
|
|
|
+ teacherCourseGroup.setLastClassesEndTime(groupBaseCourseInfo.getLastClassesEndTime());
|
|
|
+ }
|
|
|
+ if(Objects.nonNull(groupFinishedClassesTimesMap.get(teacherCourseGroup.getId().toString()))) {
|
|
|
+ teacherCourseGroup.setCurrentClassTimes(groupFinishedClassesTimesMap.get(teacherCourseGroup.getId().toString()).intValue());
|
|
|
+ }
|
|
|
+ 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) {
|
|
|
+ pageInfo.setTotal(count);
|
|
|
+ params.put("offset", pageInfo.getOffset());
|
|
|
+ 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<GroupBaseCourseInfoDto> groupStudentNums = groupDao.countGroupStudentNum(groupIds, GroupType.COMM);
|
|
|
+ Map<String, Integer> groupStudentNumMap = groupStudentNums.stream().collect(Collectors.toMap(GroupBaseCourseInfoDto::getId, GroupBaseCourseInfoDto::getStudentNum));
|
|
|
+
|
|
|
+ List<GroupBaseCourseInfoDto> groupTotalClassesTimes = groupDao.countGroupTotalClassesTimes(groupIds, GroupType.COMM);
|
|
|
+ Map<String, GroupBaseCourseInfoDto> groupBaseCourseInfoMap = groupTotalClassesTimes.stream().collect(Collectors.toMap(GroupBaseCourseInfoDto::getId, e->e));
|
|
|
+
|
|
|
+ List<GroupBaseCourseInfoDto> groupFinishedClassesTimes = groupDao.countGroupFinishedClassesTimes(groupIds, GroupType.COMM);
|
|
|
+ Map<String, Integer> groupFinishedClassesTimesMap = groupFinishedClassesTimes.stream().collect(Collectors.toMap(GroupBaseCourseInfoDto::getId, e->e.getCurrentClassTimes()));
|
|
|
+
|
|
|
+ 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());
|
|
|
+ }
|
|
|
+ GroupBaseCourseInfoDto groupBaseCourseInfo = groupBaseCourseInfoMap.get(teacherCourseGroup.getId().toString());
|
|
|
+ if(Objects.nonNull(groupBaseCourseInfo)){
|
|
|
+ teacherCourseGroup.setTotalClassTimes(groupBaseCourseInfo.getTotalClassTimes());
|
|
|
+ teacherCourseGroup.setFirstClassesStartTime(groupBaseCourseInfo.getFirstClassesStartTime());
|
|
|
+ teacherCourseGroup.setLastClassesEndTime(groupBaseCourseInfo.getLastClassesEndTime());
|
|
|
+ }
|
|
|
+ if(Objects.nonNull(groupFinishedClassesTimesMap.get(teacherCourseGroup.getId().toString()))) {
|
|
|
+ teacherCourseGroup.setCurrentClassTimes(groupFinishedClassesTimesMap.get(teacherCourseGroup.getId().toString()).intValue());
|
|
|
+ }
|
|
|
+ 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;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
public GroupHeadInfoDto getGroupHeadInfo(Long courseScheduleId) {
|
|
|
if(Objects.isNull(courseScheduleId)){
|
|
|
throw new BizException("请选择课程");
|