Browse Source

Merge remote-tracking branch 'origin/master'

周箭河 5 years ago
parent
commit
a09856fc47

+ 3 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CoursesGroupDao.java

@@ -13,10 +13,11 @@ public interface CoursesGroupDao extends BaseDAO<Long, CoursesGroup> {
      * @describe 获取指定教师的课程组列表
      * @author Joburgess
      * @date 2020/3/8
-     * @param teacherId: 教师编号
+     * @param params: 教师编号
      * @return java.util.List<com.ym.mec.biz.dal.entity.CoursesGroup>
      */
-    List<CoursesGroup> findTeacherCourseGroups(@Param("teacherId") Integer teacherId);
+    List<CoursesGroup> findTeacherCourseGroups(Map<String, Object> params);
+    int countTeacherGroups(Map<String,Object> params);
 
     /**
      * @describe 获取指定教师的课程组列表

+ 22 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CourseGroupTeacherCardDto.java

@@ -1,5 +1,7 @@
 package com.ym.mec.biz.dal.dto;
 
+import com.ym.mec.biz.dal.enums.GroupType;
+
 import java.util.Date;
 
 /**
@@ -10,6 +12,8 @@ public class CourseGroupTeacherCardDto {
 
     private Long id;
 
+    private GroupType groupType;
+
     private String name;
 
     private Integer subjectId;
@@ -24,10 +28,28 @@ public class CourseGroupTeacherCardDto {
 
     private java.util.Date coursesEndDate;
 
+    private Integer currentClassTimes;
+
     private Integer surplusClassTimes;
 
     private String studentNames;
 
+    public GroupType getGroupType() {
+        return groupType;
+    }
+
+    public void setGroupType(GroupType groupType) {
+        this.groupType = groupType;
+    }
+
+    public Integer getCurrentClassTimes() {
+        return currentClassTimes;
+    }
+
+    public void setCurrentClassTimes(Integer currentClassTimes) {
+        this.currentClassTimes = currentClassTimes;
+    }
+
     public Long getId() {
         return id;
     }

+ 3 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/CoursesGroupService.java

@@ -6,6 +6,8 @@ import com.ym.mec.biz.dal.dto.GroupHeadInfoDto;
 import com.ym.mec.biz.dal.entity.CoursesGroup;
 import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
 import com.ym.mec.common.entity.HttpResponseResult;
+import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.BaseService;
 
 import java.util.List;
@@ -29,7 +31,7 @@ public interface CoursesGroupService extends BaseService<Long, CoursesGroup> {
      * @param teacherId: 教师编号
      * @return java.util.List<com.ym.mec.biz.dal.dto.CourseGroupTeacherCardDto>
      */
-    List<CourseGroupTeacherCardDto> findTeacherCourseGroups(Integer teacherId);
+    PageInfo findTeacherCourseGroups(Integer teacherId, QueryInfo queryInfo);
 
     /**
      * @describe 获取课程对应班级头部信息

+ 49 - 34
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CoursesGroupServiceImpl.java

@@ -14,9 +14,12 @@ import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.entity.ImGroupMember;
 import com.ym.mec.common.entity.ImGroupModel;
 import com.ym.mec.common.exception.BizException;
+import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.IdGeneratorService;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.im.ImFeignService;
+import com.ym.mec.util.collection.MapUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -211,48 +214,60 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
     }
 
     @Override
-    public List<CourseGroupTeacherCardDto> findTeacherCourseGroups(Integer teacherId) {
+    public PageInfo findTeacherCourseGroups(Integer teacherId, QueryInfo queryInfo) {
         if(Objects.isNull(teacherId)){
             throw new BizException("请指定老师");
         }
-        List<CoursesGroup> teacherCourseGroups = coursesGroupDao.findTeacherCourseGroups(teacherId);
-        if (CollectionUtils.isEmpty(teacherCourseGroups)){
-            return new ArrayList<>();
-        }
-
-        List<String> groupIds = teacherCourseGroups.stream().map(group -> String.valueOf(group.getId())).collect(Collectors.toList());
-
-        List<Integer> subjectIds = teacherCourseGroups.stream().map(CoursesGroup::getSubjectId).collect(Collectors.toList());
-        List<Subject> subjects = subjectDao.findBySubjectIds(subjectIds);
-        Map<Integer, Subject> idSubjectMap = subjects.stream().collect(Collectors.toMap(Subject::getId, subject -> subject));
 
-        List<ClassGroupStudentMapper> students = classGroupStudentMapperDao.findByGroups(groupIds, GroupType.COMM);
-        Map<String, List<ClassGroupStudentMapper>> groupStudentsMap = students.stream().collect(Collectors.groupingBy(ClassGroupStudentMapper::getMusicGroupId));
-
-        List<GroupCourseTimesDto> groupsCourseTimesInfo = courseScheduleDao.findGroupsCourseTimesInfo(groupIds, GroupType.COMM);
-        Map<String, GroupCourseTimesDto> groupCourseTimesInfoMap = groupsCourseTimesInfo.stream().collect(Collectors.toMap(GroupCourseTimesDto::getGroupId, e -> e));
+        PageInfo pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+        Map<String, Object> params = new HashMap<>();
+        MapUtil.populateMap(params, queryInfo);
+        params.put("teacherId", teacherId);
 
         List<CourseGroupTeacherCardDto> groupCards=new ArrayList<>();
-        for (CoursesGroup teacherCourseGroup : teacherCourseGroups) {
-            CourseGroupTeacherCardDto groupCard=new CourseGroupTeacherCardDto();
-            groupCard.setId(teacherCourseGroup.getId());
-            groupCard.setName(teacherCourseGroup.getName());
-            groupCard.setSingleClassMinutes(teacherCourseGroup.getSingleClassMinutes());
-            groupCard.setCoursesStartDate(teacherCourseGroup.getCoursesStartDate());
-            groupCard.setCoursesEndDate(teacherCourseGroup.getCoursesEndDate());
-            groupCard.setSubjectId(teacherCourseGroup.getSubjectId());
-            groupCard.setSubjectName(idSubjectMap.get(teacherCourseGroup.getSubjectId()).getName());
-            GroupCourseTimesDto groupCourseTimesInfo = groupCourseTimesInfoMap.get(String.valueOf(teacherCourseGroup.getId()));
-            groupCard.setTotalCourseTimes(groupCourseTimesInfo.getTotalCourseTimes());
-            groupCard.setSurplusClassTimes(groupCourseTimesInfo.getSurplusClassTimes());
-            List<ClassGroupStudentMapper> groupStudents = groupStudentsMap.get(String.valueOf(teacherCourseGroup.getId()));
-            if(!CollectionUtils.isEmpty(groupStudentsMap)){
-                List<String> userNames = groupStudents.stream().map(ClassGroupStudentMapper::getUserName).collect(Collectors.toList());
-                groupCard.setStudentNames(StringUtils.join(userNames,","));
+        int count = coursesGroupDao.countTeacherGroups(params);
+        if (count > 0) {
+            pageInfo.setTotal(count);
+            params.put("offset", pageInfo.getOffset());
+            List<CoursesGroup> teacherCourseGroups = coursesGroupDao.findTeacherCourseGroups(params);
+
+            List<String> groupIds = teacherCourseGroups.stream().map(group -> String.valueOf(group.getId())).collect(Collectors.toList());
+
+            List<Integer> subjectIds = teacherCourseGroups.stream().map(CoursesGroup::getSubjectId).collect(Collectors.toList());
+            List<Subject> subjects = subjectDao.findBySubjectIds(subjectIds);
+            Map<Integer, Subject> idSubjectMap = subjects.stream().collect(Collectors.toMap(Subject::getId, subject -> subject));
+
+            List<ClassGroupStudentMapper> students = classGroupStudentMapperDao.findByGroups(groupIds, GroupType.COMM);
+            Map<String, List<ClassGroupStudentMapper>> groupStudentsMap = students.stream().collect(Collectors.groupingBy(ClassGroupStudentMapper::getMusicGroupId));
+
+            List<GroupCourseTimesDto> groupsCourseTimesInfo = courseScheduleDao.findGroupsCourseTimesInfo(groupIds, GroupType.COMM);
+            Map<String, GroupCourseTimesDto> groupCourseTimesInfoMap = groupsCourseTimesInfo.stream().collect(Collectors.toMap(GroupCourseTimesDto::getGroupId, e -> e));
+
+            groupCards=new ArrayList<>();
+            for (CoursesGroup teacherCourseGroup : teacherCourseGroups) {
+                CourseGroupTeacherCardDto groupCard=new CourseGroupTeacherCardDto();
+                groupCard.setId(teacherCourseGroup.getId());
+                groupCard.setGroupType(GroupType.COMM);
+                groupCard.setName(teacherCourseGroup.getName());
+                groupCard.setSingleClassMinutes(teacherCourseGroup.getSingleClassMinutes());
+                groupCard.setCoursesStartDate(teacherCourseGroup.getCoursesStartDate());
+                groupCard.setCoursesEndDate(teacherCourseGroup.getCoursesEndDate());
+                groupCard.setSubjectId(teacherCourseGroup.getSubjectId());
+                groupCard.setSubjectName(idSubjectMap.get(teacherCourseGroup.getSubjectId()).getName());
+                GroupCourseTimesDto groupCourseTimesInfo = groupCourseTimesInfoMap.get(String.valueOf(teacherCourseGroup.getId()));
+                groupCard.setTotalCourseTimes(groupCourseTimesInfo.getTotalCourseTimes());
+                groupCard.setSurplusClassTimes(groupCourseTimesInfo.getSurplusClassTimes());
+                groupCard.setCurrentClassTimes(groupCard.getTotalCourseTimes()-groupCard.getSurplusClassTimes());
+                List<ClassGroupStudentMapper> groupStudents = groupStudentsMap.get(String.valueOf(teacherCourseGroup.getId()));
+                if(!CollectionUtils.isEmpty(groupStudents)){
+                    List<String> userNames = groupStudents.stream().map(ClassGroupStudentMapper::getUserName).collect(Collectors.toList());
+                    groupCard.setStudentNames(StringUtils.join(userNames,","));
+                }
+                groupCards.add(groupCard);
             }
-            groupCards.add(groupCard);
         }
-        return groupCards;
+        pageInfo.setRows(groupCards);
+        return pageInfo;
     }
 
     @Override

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -1332,7 +1332,7 @@
         <include refid="global.limit"/>
     </select>
 
-    <select id="countTeacherGroupCourses" resultMap="teacherClassCourseSchedule">
+    <select id="countTeacherGroupCourses" resultType="int">
         SELECT
             COUNT(cs.id_)
         FROM course_schedule cs

+ 5 - 0
mec-biz/src/main/resources/config/mybatis/CoursesGroupMapper.xml

@@ -132,6 +132,11 @@
 
     <select id="findTeacherCourseGroups" resultMap="CoursesGroup">
 		SELECT * FROM courses_group WHERE teacher_id_=#{teacherId} AND status_ IN ('APPLYING', 'NORMAL') ORDER BY id_ DESC
+		<include refid="global.limit"/>
+    </select>
+
+	<select id="countTeacherGroups" resultType="int">
+		SELECT COUNT(id_) FROM courses_group WHERE teacher_id_=#{teacherId} AND status_ IN ('APPLYING', 'NORMAL')
     </select>
 
     <select id="queryTeacherCourseGroups" resultMap="CoursesGroup">

+ 18 - 2
mec-teacher/src/main/java/com/ym/mec/teacher/controller/CourseGroupController.java

@@ -6,10 +6,13 @@ import com.ym.mec.biz.dal.dao.TeacherDao;
 import com.ym.mec.biz.dal.dto.CourseGroupCreateDto;
 import com.ym.mec.biz.dal.entity.Teacher;
 import com.ym.mec.biz.dal.enums.GroupType;
+import com.ym.mec.biz.dal.page.GroupCourseScheduleQueryInfo;
 import com.ym.mec.biz.service.CoursesGroupService;
 import com.ym.mec.biz.service.GroupClassService;
+import com.ym.mec.biz.service.GroupCourseScheduleService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
+import com.ym.mec.common.page.QueryInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -35,6 +38,8 @@ public class CourseGroupController extends BaseController {
     private GroupClassService groupClassService;
     @Autowired
     private TeacherDao teacherDao;
+    @Autowired
+    private GroupCourseScheduleService groupCourseScheduleService;
 
     @ApiOperation(value = "创建课程组")
     @PostMapping("/createCourseGroup")
@@ -55,12 +60,23 @@ public class CourseGroupController extends BaseController {
 
     @ApiOperation(value = "获取课程组列表")
     @GetMapping("/findTeacherCourseGroups")
-    public HttpResponseResult findTeacherCourseGroups(){
+    public HttpResponseResult findTeacherCourseGroups(QueryInfo queryInfo){
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if(Objects.isNull(sysUser)){
+            return failed(HttpStatus.FORBIDDEN,"请登录");
+        }
+        return succeed(coursesGroupService.findTeacherCourseGroups(sysUser.getId(),queryInfo));
+    }
+
+    @ApiOperation(value = "获取课程组下指定教师的课表")
+    @GetMapping("/findGroupCourses")
+    public HttpResponseResult findGroupCourses(GroupCourseScheduleQueryInfo queryInfo){
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if(Objects.isNull(sysUser)){
             return failed(HttpStatus.FORBIDDEN,"请登录");
         }
-        return succeed(coursesGroupService.findTeacherCourseGroups(sysUser.getId()));
+        queryInfo.setTeacherId(sysUser.getId());
+        return succeed(groupCourseScheduleService.findGroupCourses(queryInfo));
     }
 
     @ApiOperation(value = "关闭课程组")