Browse Source

1、添加教务老师字段
2、布置作业

Joburgess 5 years ago
parent
commit
032389aaf8

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java

@@ -1332,6 +1332,17 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
                                                         @Param("groupType") GroupType groupType);
 
     /**
+     * @describe 获取课程组有效期
+     * @author Joburgess
+     * @date 2020/3/18
+     * @param groupIds:
+     * @param groupType:
+     * @return java.util.List<com.ym.mec.biz.dal.dto.GroupValidDateDto>
+     */
+    List<GroupValidDateDto> findGroupsValidate(@Param("groupIds") List<String> groupIds,
+                                               @Param("groupType") GroupType groupType);
+
+    /**
      * 获取当前课程声部
      * @param courseScheduleId
      * @return

+ 40 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/GroupValidDateDto.java

@@ -0,0 +1,40 @@
+package com.ym.mec.biz.dal.dto;
+
+import java.util.Date;
+
+/**
+ * @Author Joburgess
+ * @Date 2020/3/18
+ */
+public class GroupValidDateDto {
+
+    private String groupId;
+
+    private Date startDate;
+
+    private Date endDate;
+
+    public String getGroupId() {
+        return groupId;
+    }
+
+    public void setGroupId(String groupId) {
+        this.groupId = groupId;
+    }
+
+    public Date getStartDate() {
+        return startDate;
+    }
+
+    public void setStartDate(Date startDate) {
+        this.startDate = startDate;
+    }
+
+    public Date getEndDate() {
+        return endDate;
+    }
+
+    public void setEndDate(Date endDate) {
+        this.endDate = endDate;
+    }
+}

+ 9 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CoursesGroupServiceImpl.java

@@ -140,6 +140,9 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
         courseScheduleService.checkNewCourseSchedules(newCourses,false);
 
         CourseSchedule firstCourseSchedule = newCourses.stream().min(Comparator.comparing(CourseSchedule::getStartClassTime)).get();
+        if(firstCourseSchedule.getStartClassTime().before(now)){
+            throw new BizException("开课时间不可小于当前时间");
+        }
         CourseSchedule latestCourseSchedule = newCourses.stream().max(Comparator.comparing(CourseSchedule::getEndClassTime)).get();
         courseGroup.setCoursesStartDate(firstCourseSchedule.getStartClassTime());
         courseGroup.setCoursesEndDate(latestCourseSchedule.getEndClassTime());
@@ -247,6 +250,9 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
             List<GroupCourseTimesDto> groupsCourseTimesInfo = courseScheduleDao.findGroupsCourseTimesInfo(groupIds, GroupType.COMM);
             Map<String, GroupCourseTimesDto> groupCourseTimesInfoMap = groupsCourseTimesInfo.stream().collect(Collectors.toMap(GroupCourseTimesDto::getGroupId, e -> e));
 
+            List<GroupValidDateDto> groupsValidate = courseScheduleDao.findGroupsValidate(groupIds, GroupType.COMM);
+            Map<String, GroupValidDateDto> groupValidateMap = groupsValidate.stream().collect(Collectors.toMap(GroupValidDateDto::getGroupId, e -> e));
+
             groupCards=new ArrayList<>();
             for (CoursesGroup teacherCourseGroup : teacherCourseGroups) {
                 CourseGroupTeacherCardDto groupCard=new CourseGroupTeacherCardDto();
@@ -257,8 +263,9 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
                 groupCard.setSubjectId(teacherCourseGroup.getSubjectId());
                 groupCard.setSubjectName(idSubjectMap.get(teacherCourseGroup.getSubjectId()).getName());
                 GroupCourseTimesDto groupCourseTimesInfo = groupCourseTimesInfoMap.get(String.valueOf(teacherCourseGroup.getId()));
-                groupCard.setCoursesStartDate(groupCourseTimesInfo.getStartDate());
-                groupCard.setCoursesEndDate(groupCourseTimesInfo.getEndDate());
+                GroupValidDateDto groupValidDate = groupValidateMap.get(String.valueOf(teacherCourseGroup.getId()));
+                groupCard.setCoursesStartDate(groupValidDate.getStartDate());
+                groupCard.setCoursesEndDate(groupValidDate.getEndDate());
                 groupCard.setClassGroupId(groupCourseTimesInfo.getClassGroupId());
                 groupCard.setTotalCourseTimes(groupCourseTimesInfo.getTotalCourseTimes());
                 groupCard.setSurplusClassTimes(groupCourseTimesInfo.getSurplusClassTimes());

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

@@ -2788,18 +2788,34 @@
             MIN( CONCAT( class_date_, ' ', start_class_time_ ) ) start_date_,
             MAX( CONCAT( class_date_, ' ', end_class_time_ ) ) end_date_
         FROM
-            course_schedule cs
-            LEFT JOIN class_group cg ON cs.class_group_id_ = cg.id_
+            class_group cg
+            LEFT JOIN course_schedule cs ON cs.class_group_id_ = cg.id_ AND CONCAT( cs.class_date_, ' ', cs.start_class_time_ ) > NOW( )
         WHERE
-            cs.group_type_ = #{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
-            AND CONCAT( cs.class_date_, ' ', cs.start_class_time_ ) > NOW( )
-            AND cs.music_group_id_ IN
+            cg.group_type_ = #{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+            AND cg.music_group_id_ IN
             <foreach collection="groupIds" item="groupId" separator="," open="(" close=")">
                 #{groupId}
             </foreach>
         GROUP BY
             cg.id_
     </select>
+
+    <select id="findGroupsValidate" resultType="com.ym.mec.biz.dal.dto.GroupValidDateDto">
+        SELECT
+            cs.music_group_id_ groupId,
+            MIN( CONCAT( class_date_, ' ', start_class_time_ ) ) startDate,
+            MAX( CONCAT( class_date_, ' ', end_class_time_ ) ) endDate
+        FROM
+            course_schedule cs
+        WHERE
+          cs.group_type_ = #{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+          AND cs.music_group_id_ IN
+        <foreach collection="groupIds" item="groupId" separator="," open="(" close=")">
+            #{groupId}
+        </foreach>
+        GROUP BY
+        cs.music_group_id_
+    </select>
     <select id="findCourseByGroupId" resultMap="CourseSchedule">
         SELECT * FROM course_schedule cs
         WHERE cs.music_group_id_ = #{groupId} AND cs.group_type_ = #{groupType} AND cs.del_flag_ = 0