zouxuan 4 yıl önce
ebeveyn
işleme
82599e9e88

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

@@ -1241,7 +1241,17 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @param courseSchedule
      * @return
      */
-    CourseSchedule queryContinueCourse(@Param("courseSchedule") CourseSchedule courseSchedule,
+    CourseSchedule queryStudentContinueCourse(@Param("courseSchedule") CourseSchedule courseSchedule,
+                                       @Param("continueCourseTime") String continueCourseTime, @Param("endDateTime") String endDateTime);
+
+    /**
+     * 获取当前课程,下一次连堂课
+     *
+     * @param continueCourseTime
+     * @param courseSchedule
+     * @return
+     */
+    CourseSchedule queryTeacherContinueCourse(@Param("courseSchedule") CourseSchedule courseSchedule,
                                        @Param("continueCourseTime") String continueCourseTime, @Param("endDateTime") String endDateTime);
 
     /**

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

@@ -521,7 +521,7 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
             //获取当前课程的所有连堂课列表
             String courseClassDate = DateUtil.format(cs.getClassDate(), DateUtil.DEFAULT_PATTERN);
             String courseEndDateTime = DateUtil.format(cs.getEndClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
-            cs = courseScheduleDao.queryContinueCourse(cs, continueCourseTime, courseClassDate + " " + courseEndDateTime);
+            cs = courseScheduleDao.queryStudentContinueCourse(cs, continueCourseTime, courseClassDate + " " + courseEndDateTime);
             //存在连堂课
             if (cs != null) {
                 courseSchedules.add(cs);
@@ -629,7 +629,7 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
                 //获取当前课程的所有连堂课列表
                 String courseClassDate = DateUtil.format(cs.getClassDate(), DateUtil.DEFAULT_PATTERN);
                 String courseEndDateTime = DateUtil.format(cs.getEndClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
-                cs = courseScheduleDao.queryContinueCourse(cs, continueCourseTime, courseClassDate + " " + courseEndDateTime);
+                cs = courseScheduleDao.queryStudentContinueCourse(cs, continueCourseTime, courseClassDate + " " + courseEndDateTime);
                 //存在连堂课
                 if (cs != null) {
                     courseSchedules.add(cs);

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java

@@ -261,7 +261,7 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 			//获取当前课程的所有连堂课列表
 			String courseClassDate = DateUtil.format(cs.getClassDate(), DateUtil.DEFAULT_PATTERN);
 			String courseEndDateTime = DateUtil.format(cs.getEndClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
-			cs = courseScheduleDao.queryContinueCourse(cs,continueCourseTime,courseClassDate + " " + courseEndDateTime);
+			cs = courseScheduleDao.queryTeacherContinueCourse(cs,continueCourseTime,courseClassDate + " " + courseEndDateTime);
 			//存在连堂课
 			if(cs != null){
 				courseSchedules.add(cs);

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

@@ -2619,13 +2619,26 @@
           AND #{startTime} &lt; CONCAT(cs.class_date_, ' ', cs.end_class_time_)
           AND #{endTime} &gt; CONCAT(cs.class_date_, ' ', cs.start_class_time_);
     </select>
-    <select id="queryContinueCourse" resultMap="CourseSchedule">
+    <select id="queryStudentContinueCourse" resultMap="CourseSchedule">
         SELECT cs.*
         FROM course_schedule cs
+        LEFT JOIN student_attendance sa ON cs.id_ = sa.course_schedule_id_
         WHERE TIMESTAMPDIFF(MINUTE, #{endDateTime}, CONCAT(cs.class_date_, ' ', cs.start_class_time_)) >= 0
           AND TIMESTAMPDIFF(MINUTE, #{endDateTime}, CONCAT(cs.class_date_, ' ', cs.start_class_time_)) &lt;= #{continueCourseTime}
           AND cs.teacher_id_ = #{courseSchedule.teacherId}
-          AND cs.class_group_id_ = #{courseSchedule.classGroupId} AND NOW() > CONCAT(cs.class_date_,' ', cs.start_class_time_)
+          AND cs.class_group_id_ = #{courseSchedule.classGroupId}
+          AND (NOW() > CONCAT(cs.class_date_,' ', cs.start_class_time_) OR sa.sign_in_time_ IS NOT NULL)
+        LIMIT 1
+    </select>
+    <select id="queryTeacherContinueCourse" resultMap="CourseSchedule">
+        SELECT cs.*
+        FROM course_schedule cs
+        LEFT JOIN teacher_attendance ta ON cs.id_ = ta.course_schedule_id_
+        WHERE TIMESTAMPDIFF(MINUTE, #{endDateTime}, CONCAT(cs.class_date_, ' ', cs.start_class_time_)) >= 0
+          AND TIMESTAMPDIFF(MINUTE, #{endDateTime}, CONCAT(cs.class_date_, ' ', cs.start_class_time_)) &lt;= #{continueCourseTime}
+          AND cs.teacher_id_ = #{courseSchedule.teacherId}
+          AND cs.class_group_id_ = #{courseSchedule.classGroupId}
+          AND (NOW() > CONCAT(cs.class_date_,' ', cs.start_class_time_) OR ta.sign_in_time_ IS NOT NULL)
         LIMIT 1
     </select>
     <select id="getSingleClassMinutes" resultType="java.lang.Integer">