|  | @@ -480,7 +480,7 @@
 | 
	
		
			
				|  |  |          WHERE cs.actual_teacher_id_ = #{teacherId}
 | 
	
		
			
				|  |  |            AND (CONCAT(cs.class_date_, ' ', cs.end_class_time_) BETWEEN #{startTime} AND #{endTime})
 | 
	
		
			
				|  |  |            AND cs.schoole_id_ = #{schoolId}
 | 
	
		
			
				|  |  | -          AND ta.sign_in_time_ IS NOT NULL
 | 
	
		
			
				|  |  | +          AND ta.sign_in_time_ IS NOT NULL AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |          ORDER BY cs.id_
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -556,7 +556,7 @@
 | 
	
		
			
				|  |  |                  LEFT JOIN music_group mg ON cs.music_group_id_=mg.id_
 | 
	
		
			
				|  |  |              </if>
 | 
	
		
			
				|  |  |          WHERE
 | 
	
		
			
				|  |  | -            (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
 | 
	
		
			
				|  |  | +            (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL) AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |              <if test="organIds!=null and organIds.size()>0">
 | 
	
		
			
				|  |  |                  AND cs.organ_id_ IN
 | 
	
		
			
				|  |  |                  <foreach collection="organIds" item="organId" separator="," open="(" close=")">
 | 
	
	
		
			
				|  | @@ -596,7 +596,7 @@
 | 
	
		
			
				|  |  |                  LEFT JOIN music_group mg ON cs.music_group_id_=mg.id_
 | 
	
		
			
				|  |  |              </if>
 | 
	
		
			
				|  |  |          WHERE
 | 
	
		
			
				|  |  | -        (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
 | 
	
		
			
				|  |  | +        (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL) AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |          AND cs.id_ IS NOT NULL
 | 
	
		
			
				|  |  |          <if test="organIds!=null and organIds.size()>0">
 | 
	
		
			
				|  |  |              AND cs.organ_id_ IN
 | 
	
	
		
			
				|  | @@ -650,7 +650,7 @@
 | 
	
		
			
				|  |  |          (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
 | 
	
		
			
				|  |  |          AND (cs.is_lock_=0 OR cs.is_lock_ IS NULL)
 | 
	
		
			
				|  |  |          AND cs.class_date_ = DATE_FORMAT(#{classDate},'%Y%m%d')
 | 
	
		
			
				|  |  | -        AND cssp.user_id_ = #{studentId}
 | 
	
		
			
				|  |  | +        AND cssp.user_id_ = #{studentId} AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |          <if test="quitClassGroupIds != null and quitClassGroupIds.size()>0">
 | 
	
		
			
				|  |  |              AND cssp.class_group_id_ NOT IN
 | 
	
		
			
				|  |  |              <foreach collection="quitClassGroupIds" item="quitClassGroupId" open="(" close=")" separator=",">
 | 
	
	
		
			
				|  | @@ -697,7 +697,7 @@
 | 
	
		
			
				|  |  |          <if test="type!=null and type!=''">
 | 
	
		
			
				|  |  |              AND cs.type_=#{type}
 | 
	
		
			
				|  |  |          </if>
 | 
	
		
			
				|  |  | -        AND csts.user_id_ = #{teacherId}
 | 
	
		
			
				|  |  | +        AND csts.user_id_ = #{teacherId} AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |          ORDER BY start_class_time_
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -784,7 +784,7 @@
 | 
	
		
			
				|  |  |              AND (cs.is_lock_=0 OR cs.is_lock_ IS NULL)
 | 
	
		
			
				|  |  |            AND cs.class_date_ = DATE_FORMAT(#{classDate}, '%Y%m%d')
 | 
	
		
			
				|  |  |            AND csts.user_id_ = #{teacherId}
 | 
	
		
			
				|  |  | -          AND CONCAT(cs.class_date_, ' ', cs.end_class_time_) < NOW()
 | 
	
		
			
				|  |  | +          AND CONCAT(cs.class_date_, ' ', cs.end_class_time_) < NOW() AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |          ORDER BY start_class_time_
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -794,7 +794,7 @@
 | 
	
		
			
				|  |  |                   LEFT JOIN class_group cg ON cs.class_group_id_ = cg.id_
 | 
	
		
			
				|  |  |          WHERE DATE_FORMAT(cs.class_date_, '%Y%m') = DATE_FORMAT(#{month}, '%Y%m')
 | 
	
		
			
				|  |  |            AND cg.music_group_id_ = #{musicGroupID}
 | 
	
		
			
				|  |  | -          AND cg.group_type_ = 'MUSIC'
 | 
	
		
			
				|  |  | +          AND cg.group_type_ = 'MUSIC' AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |          GROUP BY cs.class_date_
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -893,7 +893,7 @@
 | 
	
		
			
				|  |  |      <!-- 获取班级未开始的课程 -->
 | 
	
		
			
				|  |  |      <select id="findClassGroupNoStartCourseSchedules" resultMap="CourseSchedule">
 | 
	
		
			
				|  |  |          SELECT * FROM course_schedule
 | 
	
		
			
				|  |  | -        WHERE status_ = 'NOT_START'
 | 
	
		
			
				|  |  | +        WHERE status_ = 'NOT_START' AND pre_course_flag_ = 0
 | 
	
		
			
				|  |  |          AND class_group_id_ IN
 | 
	
		
			
				|  |  |          <foreach collection="classGroupIds" item="classGroupId" index="index" open="(" close=")" separator=",">
 | 
	
		
			
				|  |  |              #{classGroupId}
 | 
	
	
		
			
				|  | @@ -912,7 +912,7 @@
 | 
	
		
			
				|  |  |          WHERE
 | 
	
		
			
				|  |  |          (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
 | 
	
		
			
				|  |  |          AND (cs.is_lock_=0 OR cs.is_lock_ IS NULL)
 | 
	
		
			
				|  |  | -        AND cssp.user_id_ = #{studentId}
 | 
	
		
			
				|  |  | +        AND cssp.user_id_ = #{studentId} AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |          <if test="month==null">
 | 
	
		
			
				|  |  |              AND DATE_FORMAT( NOW(), '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
 | 
	
		
			
				|  |  |          </if>
 | 
	
	
		
			
				|  | @@ -936,7 +936,7 @@
 | 
	
		
			
				|  |  |          WHERE
 | 
	
		
			
				|  |  |          (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
 | 
	
		
			
				|  |  |          AND (cs.is_lock_=0 OR cs.is_lock_ IS NULL)
 | 
	
		
			
				|  |  | -        AND csts.user_id_ = #{teacherId}
 | 
	
		
			
				|  |  | +        AND csts.user_id_ = #{teacherId} AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |          <if test="month==null">
 | 
	
		
			
				|  |  |              AND DATE_FORMAT( NOW(), '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
 | 
	
		
			
				|  |  |          </if>
 | 
	
	
		
			
				|  | @@ -989,7 +989,7 @@
 | 
	
		
			
				|  |  |          AND (cs.is_lock_=0 OR cs.is_lock_ IS NULL)
 | 
	
		
			
				|  |  |          AND CONCAT(cs.class_date_,' ',cs.start_class_time_) < NOW()
 | 
	
		
			
				|  |  |          AND csts.user_id_ = #{teacherId}
 | 
	
		
			
				|  |  | -        AND cg.del_flag_ = 0
 | 
	
		
			
				|  |  | +        AND cg.del_flag_ = 0 AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |          <if test="month==null">
 | 
	
		
			
				|  |  |              AND DATE_FORMAT( NOW(), '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
 | 
	
		
			
				|  |  |          </if>
 | 
	
	
		
			
				|  | @@ -1033,7 +1033,7 @@
 | 
	
		
			
				|  |  |                  LEFT JOIN music_group mg ON cs.music_group_id_=mg.id_
 | 
	
		
			
				|  |  |              </if>
 | 
	
		
			
				|  |  |          WHERE
 | 
	
		
			
				|  |  | -            (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
 | 
	
		
			
				|  |  | +            (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL) AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |              <if test="organIds!=null and organIds.size()>0">
 | 
	
		
			
				|  |  |                  AND cs.organ_id_ IN
 | 
	
		
			
				|  |  |                  <foreach collection="organIds" item="organId" separator="," open="(" close=")">
 | 
	
	
		
			
				|  | @@ -1073,7 +1073,7 @@
 | 
	
		
			
				|  |  |              cssp.user_id_=#{userId}
 | 
	
		
			
				|  |  |              AND cs.status_ != 'NOT_START'
 | 
	
		
			
				|  |  |              AND cs.del_flag_ = 0
 | 
	
		
			
				|  |  | -            AND (cs.is_lock_=0 OR cs.is_lock_ IS NULL)
 | 
	
		
			
				|  |  | +            AND (cs.is_lock_=0 OR cs.is_lock_ IS NULL) AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |              <if test="teachMode!=null and teachMode!=''">
 | 
	
		
			
				|  |  |                  AND cs.teach_mode_=#{teachMode}
 | 
	
		
			
				|  |  |              </if>
 | 
	
	
		
			
				|  | @@ -1142,7 +1142,7 @@
 | 
	
		
			
				|  |  |              AND cs.status_ = 'NOT_START'
 | 
	
		
			
				|  |  |              AND cgsm.user_id_ = #{userId}
 | 
	
		
			
				|  |  |              AND cs.class_date_ = DATE_FORMAT(#{date}, '%Y%m%d')
 | 
	
		
			
				|  |  | -            AND cgsm.status_ != 'QUIT'
 | 
	
		
			
				|  |  | +            AND cgsm.status_ != 'QUIT' AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |          ORDER BY cs.class_date_, cs.start_class_time_
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |      <select id="findCourseScheduleByMusicGroup" resultMap="CourseSchedule">
 | 
	
	
		
			
				|  | @@ -1156,7 +1156,7 @@
 | 
	
		
			
				|  |  |          SELECT COUNT(*)
 | 
	
		
			
				|  |  |          FROM course_schedule
 | 
	
		
			
				|  |  |          WHERE class_group_id_ = #{classGroupId}
 | 
	
		
			
				|  |  | -          AND CONCAT(class_date_, ' ', end_class_time_) <= #{startClassTime}
 | 
	
		
			
				|  |  | +          AND CONCAT(class_date_, ' ', end_class_time_) <= #{startClassTime} AND pre_course_flag_ = 0
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |      <select id="getCourseSchedules" resultMap="courseScheduleDto">
 | 
	
		
			
				|  |  |          SELECT cs.type_,
 | 
	
	
		
			
				|  | @@ -1374,7 +1374,7 @@
 | 
	
		
			
				|  |  |              update_time_ = NOW()
 | 
	
		
			
				|  |  |          WHERE music_group_id_ = #{groupId}
 | 
	
		
			
				|  |  |            AND group_type_ = #{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 | 
	
		
			
				|  |  | -          AND NOW() < CONCAT(class_date_,' ', start_class_time_);
 | 
	
		
			
				|  |  | +          AND NOW() < CONCAT(class_date_,' ', start_class_time_)
 | 
	
		
			
				|  |  |      </update>
 | 
	
		
			
				|  |  |      <update id="batchUpdateLockByCourseIds">
 | 
	
		
			
				|  |  |          UPDATE course_schedule
 | 
	
	
		
			
				|  | @@ -1386,7 +1386,7 @@
 | 
	
		
			
				|  |  |          <foreach collection="courseId" open="(" close=")" item="item" separator=",">
 | 
	
		
			
				|  |  |              #{item}
 | 
	
		
			
				|  |  |          </foreach>
 | 
	
		
			
				|  |  | -    </update>
 | 
	
		
			
				|  |  | +        </update>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      <select id="queryNoSignInListByBeforeMinutes" resultMap="CourseSchedule">
 | 
	
		
			
				|  |  |          SELECT cs.*
 | 
	
	
		
			
				|  | @@ -1422,7 +1422,7 @@
 | 
	
		
			
				|  |  |          <where>
 | 
	
		
			
				|  |  |              (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
 | 
	
		
			
				|  |  |              AND (cs.is_lock_=0 OR cs.is_lock_ IS NULL)
 | 
	
		
			
				|  |  | -            AND cs.class_group_id_ = #{classGroupId}
 | 
	
		
			
				|  |  | +            AND cs.class_group_id_ = #{classGroupId} AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |              <if test="userId != null">
 | 
	
		
			
				|  |  |                  AND csts.user_id_ = #{userId}
 | 
	
		
			
				|  |  |              </if>
 | 
	
	
		
			
				|  | @@ -1474,7 +1474,7 @@
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      <sql id="teacherGroupCourseQueryCondition">
 | 
	
		
			
				|  |  |          <where>
 | 
	
		
			
				|  |  | -            cs.actual_teacher_id_=#{teacherId}
 | 
	
		
			
				|  |  | +            cs.actual_teacher_id_=#{teacherId} AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |              AND cs.music_group_id_ = #{groupId}
 | 
	
		
			
				|  |  |              AND cs.group_type_ = #{groupType}
 | 
	
		
			
				|  |  |          </where>
 | 
	
	
		
			
				|  | @@ -1537,7 +1537,7 @@
 | 
	
		
			
				|  |  |          LEFT JOIN sys_user ssu ON sa.user_id_=ssu.id_
 | 
	
		
			
				|  |  |          LEFT JOIN school s ON cs.schoole_id_ = s.id_
 | 
	
		
			
				|  |  |          WHERE
 | 
	
		
			
				|  |  | -        (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
 | 
	
		
			
				|  |  | +        (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL) AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |          AND sa.class_group_id_=#{classGroupId}
 | 
	
		
			
				|  |  |          <if test="userId != null">
 | 
	
		
			
				|  |  |              AND sa.teacher_id_=#{userId}
 | 
	
	
		
			
				|  | @@ -1571,7 +1571,7 @@
 | 
	
		
			
				|  |  |          student_attendance sa
 | 
	
		
			
				|  |  |          LEFT JOIN course_schedule cs ON sa.course_schedule_id_=cs.id_
 | 
	
		
			
				|  |  |          WHERE
 | 
	
		
			
				|  |  | -        (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
 | 
	
		
			
				|  |  | +        (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL) AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |          AND sa.class_group_id_=#{classGroupId}
 | 
	
		
			
				|  |  |          <if test="userId != null">
 | 
	
		
			
				|  |  |              AND sa.teacher_id_=#{userId}
 | 
	
	
		
			
				|  | @@ -1592,7 +1592,7 @@
 | 
	
		
			
				|  |  |          FROM class_group cg
 | 
	
		
			
				|  |  |                   LEFT JOIN course_schedule cs ON cg.id_ = cs.class_group_id_
 | 
	
		
			
				|  |  |          WHERE (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
 | 
	
		
			
				|  |  | -          AND music_group_id_ = #{musicGroupId}
 | 
	
		
			
				|  |  | +          AND cg.music_group_id_ = #{musicGroupId} AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |          GROUP BY cg.id_
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |      <select id="findCourseScheduleCurrentTimes" resultType="java.util.Map">
 | 
	
	
		
			
				|  | @@ -1643,7 +1643,7 @@
 | 
	
		
			
				|  |  |          LEFT JOIN music_group mg ON cs.music_group_id_=mg.id_
 | 
	
		
			
				|  |  |          WHERE
 | 
	
		
			
				|  |  |          (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
 | 
	
		
			
				|  |  | -        AND cs.teacher_id_=#{teacherId}
 | 
	
		
			
				|  |  | +        AND cs.teacher_id_=#{teacherId} AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |          and CONCAT( cs.class_date_, ' ', cs.start_class_time_ ) between #{startTime} and #{endTime}
 | 
	
		
			
				|  |  |          <if test="type != null">
 | 
	
		
			
				|  |  |              and cs.type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 | 
	
	
		
			
				|  | @@ -1659,7 +1659,7 @@
 | 
	
		
			
				|  |  |          </if>
 | 
	
		
			
				|  |  |          union all
 | 
	
		
			
				|  |  |          select ncs.* from course_schedule cs left join course_schedule ncs on ncs.id_ = cs.new_course_id_
 | 
	
		
			
				|  |  | -        where cs.new_course_id_ > 0 and cs.class_group_id_ = #{classGroupId}
 | 
	
		
			
				|  |  | +        where cs.new_course_id_ > 0 and cs.class_group_id_ = #{classGroupId} AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |          <if test="status != null">
 | 
	
		
			
				|  |  |              and ncs.status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 | 
	
		
			
				|  |  |          </if>
 | 
	
	
		
			
				|  | @@ -1864,7 +1864,7 @@
 | 
	
		
			
				|  |  |          select cssp.user_id_ key_, count(1) value_
 | 
	
		
			
				|  |  |          from course_schedule cs
 | 
	
		
			
				|  |  |                   right join course_schedule_student_payment cssp on cs.id_ = cssp.course_schedule_id_
 | 
	
		
			
				|  |  | -        where class_date_ = date(DATE_ADD(now(), INTERVAL 1 DAY))
 | 
	
		
			
				|  |  | +        where class_date_ = date(DATE_ADD(now(), INTERVAL 1 DAY)) AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |          group by cssp.user_id_
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1873,7 +1873,7 @@
 | 
	
		
			
				|  |  |          from course_schedule cs
 | 
	
		
			
				|  |  |                   right join course_schedule_student_payment cssp on cs.id_ = cssp.course_schedule_id_
 | 
	
		
			
				|  |  |          where CONCAT(cs.class_date_, ' ', cs.start_class_time_) < DATE_ADD(now(), INTERVAL 90 MINUTE)
 | 
	
		
			
				|  |  | -          and cs.status_ = 'NOT_START'
 | 
	
		
			
				|  |  | +          and cs.status_ = 'NOT_START' AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      <select id="queryTeacherCoursesTimesOfTomorrow" resultMap="Mapper">
 | 
	
	
		
			
				|  | @@ -1881,7 +1881,7 @@
 | 
	
		
			
				|  |  |          from course_schedule cs
 | 
	
		
			
				|  |  |                   right join course_schedule_teacher_salary cssp on cs.id_ = cssp.course_schedule_id_
 | 
	
		
			
				|  |  |                   left join sys_user u on u.id_ = cssp.user_id_
 | 
	
		
			
				|  |  | -        where (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_) AND class_date_ = date(DATE_ADD(now(), INTERVAL 1 DAY))
 | 
	
		
			
				|  |  | +        where (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_) AND class_date_ = date(DATE_ADD(now(), INTERVAL 1 DAY)) AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |          group by cssp.user_id_
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1890,7 +1890,7 @@
 | 
	
		
			
				|  |  |          from course_schedule cs
 | 
	
		
			
				|  |  |                   right join course_schedule_teacher_salary cssp on cs.id_ = cssp.course_schedule_id_
 | 
	
		
			
				|  |  |          where CONCAT(cs.class_date_, ' ', cs.start_class_time_) < DATE_ADD(now(), INTERVAL 30 MINUTE)
 | 
	
		
			
				|  |  | -          and cs.status_ = 'NOT_START'
 | 
	
		
			
				|  |  | +          and cs.status_ = 'NOT_START' AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      <resultMap id="IntegerAndIntegerListDto" type="com.ym.mec.biz.dal.dto.IntegerAndIntegerListDto">
 | 
	
	
		
			
				|  | @@ -1952,7 +1952,7 @@
 | 
	
		
			
				|  |  |              (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_)
 | 
	
		
			
				|  |  |              AND cs.class_date_ BETWEEN #{startDate} AND #{endDate}
 | 
	
		
			
				|  |  |            AND cs.group_type_ = 'MUSIC'
 | 
	
		
			
				|  |  | -          AND (cs.del_flag_ IS NULL OR cs.del_flag_ = 0)
 | 
	
		
			
				|  |  | +          AND (cs.del_flag_ IS NULL OR cs.del_flag_ = 0) AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      <select id="countIsSalaryGroupTypes" resultType="int">
 | 
	
	
		
			
				|  | @@ -2015,7 +2015,7 @@
 | 
	
		
			
				|  |  |                 cs.schoole_id_
 | 
	
		
			
				|  |  |          from course_schedule cs
 | 
	
		
			
				|  |  |                   LEFT JOIN course_schedule_teacher_salary csts ON cs.id_ = csts.course_schedule_id_
 | 
	
		
			
				|  |  | -        where cs.class_group_id_ = #{classGroupId}
 | 
	
		
			
				|  |  | +        where cs.class_group_id_ = #{classGroupId} AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |            AND cs.status_ = #{status}
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |      <select id="findByClassGroups" resultMap="CourseSchedule">
 | 
	
	
		
			
				|  | @@ -2046,6 +2046,7 @@
 | 
	
		
			
				|  |  |          <foreach collection="classGroupIds" item="classGroupId" open="(" close=")" separator=",">
 | 
	
		
			
				|  |  |              #{classGroupId}
 | 
	
		
			
				|  |  |          </foreach>
 | 
	
		
			
				|  |  | +        AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |          ORDER BY start_class_time_
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |      <select id="findStudentMap" resultType="java.util.Map">
 | 
	
	
		
			
				|  | @@ -2081,7 +2082,7 @@
 | 
	
		
			
				|  |  |      <select id="findOneCourseScheduleByClassGroupId" resultMap="CourseSchedule">
 | 
	
		
			
				|  |  |          SELECT *
 | 
	
		
			
				|  |  |          FROM course_schedule
 | 
	
		
			
				|  |  | -        WHERE class_group_id_ = #{classGroupId}
 | 
	
		
			
				|  |  | +        WHERE class_group_id_ = #{classGroupId}  AND pre_course_flag_ = 0
 | 
	
		
			
				|  |  |          LIMIT 1
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |      <select id="countClassGroupCourseTimes" resultType="map">
 | 
	
	
		
			
				|  | @@ -2096,7 +2097,7 @@
 | 
	
		
			
				|  |  |                  <foreach collection="classGroupIds" item="classGroupId" open="(" close=")" separator=",">
 | 
	
		
			
				|  |  |                      #{classGroupId}
 | 
	
		
			
				|  |  |                  </foreach>
 | 
	
		
			
				|  |  | -                AND del_flag_ = 0
 | 
	
		
			
				|  |  | +                AND del_flag_ = 0 AND pre_course_flag_ = 0
 | 
	
		
			
				|  |  |              </if>
 | 
	
		
			
				|  |  |          </where>
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -2106,7 +2107,7 @@
 | 
	
		
			
				|  |  |          SELECT COUNT(1)
 | 
	
		
			
				|  |  |          FROM course_schedule
 | 
	
		
			
				|  |  |          WHERE class_group_id_ = #{classGroupId}
 | 
	
		
			
				|  |  | -          AND (del_flag_ != 1 OR del_flag_ IS NULL)
 | 
	
		
			
				|  |  | +          AND (del_flag_ != 1 OR del_flag_ IS NULL) AND pre_course_flag_ = 0
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |      <select id="findMusicGroupCourseSchedules" resultMap="CourseSchedule">
 | 
	
		
			
				|  |  |          SELECT cs.*
 | 
	
	
		
			
				|  | @@ -2114,14 +2115,14 @@
 | 
	
		
			
				|  |  |                   LEFT JOIN class_group cg ON cs.class_group_id_ = cg.id_
 | 
	
		
			
				|  |  |          WHERE cg.music_group_id_ = #{musicGroupId}
 | 
	
		
			
				|  |  |            AND cs.group_type_ = #{groupType}
 | 
	
		
			
				|  |  | -          AND status_ = #{status}
 | 
	
		
			
				|  |  | +          AND status_ = #{status} AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |      <select id="findMusicGroupAllCourseSchedules" resultMap="CourseSchedule">
 | 
	
		
			
				|  |  |          SELECT cs.*
 | 
	
		
			
				|  |  |          FROM course_schedule cs
 | 
	
		
			
				|  |  |                   LEFT JOIN class_group cg ON cs.class_group_id_ = cg.id_
 | 
	
		
			
				|  |  |          WHERE cg.music_group_id_ = #{musicGroupId}
 | 
	
		
			
				|  |  | -          AND cs.group_type_ = #{groupType}
 | 
	
		
			
				|  |  | +          AND cs.group_type_ = #{groupType} AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |      <select id="findMusicGroupCourseSchedulesWithStudent" resultMap="CourseSchedule">
 | 
	
		
			
				|  |  |          SELECT cs.*
 | 
	
	
		
			
				|  | @@ -2131,7 +2132,7 @@
 | 
	
		
			
				|  |  |            AND cssp.music_group_id_ = #{musicGroupId}
 | 
	
		
			
				|  |  |            AND cssp.group_type_ = #{groupType}
 | 
	
		
			
				|  |  |            AND cs.status_ = #{status}
 | 
	
		
			
				|  |  | -          AND cssp.user_id_ = #{userId}
 | 
	
		
			
				|  |  | +          AND cssp.user_id_ = #{userId} AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      <delete id="deleteMusicGroupCourseSchedulesWithStudent">
 | 
	
	
		
			
				|  | @@ -2229,7 +2230,7 @@
 | 
	
		
			
				|  |  |          FROM course_schedule
 | 
	
		
			
				|  |  |          WHERE class_group_id_ = #{classGroupId}
 | 
	
		
			
				|  |  |            AND CONCAT(class_date_, ' ', end_class_time_) < #{currentCourseDate}
 | 
	
		
			
				|  |  | -          AND del_flag_ = 0
 | 
	
		
			
				|  |  | +          AND del_flag_ = 0 AND pre_course_flag_ = 0
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |      <select id="countCourseScheduleByMusicGroupId" resultType="java.lang.Integer">
 | 
	
		
			
				|  |  |          SELECT count(cs.id_)
 | 
	
	
		
			
				|  | @@ -2237,7 +2238,7 @@
 | 
	
		
			
				|  |  |          WHERE cs.music_group_id_ = #{musicGroupId}
 | 
	
		
			
				|  |  |            and cs.group_type_ = 'MUSIC'
 | 
	
		
			
				|  |  |            and cs.status_ != 'OVER'
 | 
	
		
			
				|  |  | -          AND cs.del_flag_ = 0
 | 
	
		
			
				|  |  | +          AND cs.del_flag_ = 0 AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |          LIMIT 1
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |      <select id="findClassGroupCourseSchedules" resultMap="CourseSchedule">
 | 
	
	
		
			
				|  | @@ -2262,7 +2263,7 @@
 | 
	
		
			
				|  |  |                 cs.schoole_id_
 | 
	
		
			
				|  |  |          FROM course_schedule cs
 | 
	
		
			
				|  |  |          WHERE cs.class_group_id_ = #{classGroupId}
 | 
	
		
			
				|  |  | -          AND (cs.del_flag_ = 0 OR cs.del_flag_ IS NULL)
 | 
	
		
			
				|  |  | +          AND (cs.del_flag_ = 0 OR cs.del_flag_ IS NULL) AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |      <select id="countVipGroupCourses" resultType="int">
 | 
	
		
			
				|  |  |          SELECT count(cs.id_)
 | 
	
	
		
			
				|  | @@ -2333,7 +2334,7 @@
 | 
	
		
			
				|  |  |          <if test="preCourseFlag != null">
 | 
	
		
			
				|  |  |              AND cs.pre_course_flag_ = #{preCourseFlag}
 | 
	
		
			
				|  |  |          </if>
 | 
	
		
			
				|  |  | -        AND cs.del_flag_ = 0
 | 
	
		
			
				|  |  | +        AND cs.del_flag_ = 0 AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |          GROUP BY cs.class_group_id_
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |      <select id="countPreTotalNumByClassGroupId" resultType="java.util.Map">
 | 
	
	
		
			
				|  | @@ -2354,7 +2355,7 @@
 | 
	
		
			
				|  |  |          <if test="teacherId != null">
 | 
	
		
			
				|  |  |              AND cs.actual_teacher_id_ = #{teacherId}
 | 
	
		
			
				|  |  |          </if>
 | 
	
		
			
				|  |  | -        AND cs.status_ = 'NOT_START' AND cs.del_flag_ = 0 AND (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_)
 | 
	
		
			
				|  |  | +        AND cs.status_ = 'NOT_START' AND cs.del_flag_ = 0 AND (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_) AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |          GROUP BY cs.class_group_id_
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -2381,7 +2382,7 @@
 | 
	
		
			
				|  |  |                 cssp.expect_price_
 | 
	
		
			
				|  |  |          FROM course_schedule cs
 | 
	
		
			
				|  |  |                   LEFT JOIN course_schedule_student_payment cssp ON cs.id_ = cssp.course_schedule_id_
 | 
	
		
			
				|  |  | -        WHERE (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
 | 
	
		
			
				|  |  | +        WHERE (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL) AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |            <if test="groupType != null">
 | 
	
		
			
				|  |  |            AND cs.group_type_ = #{groupType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 | 
	
		
			
				|  |  |            </if>
 | 
	
	
		
			
				|  | @@ -2424,13 +2425,13 @@
 | 
	
		
			
				|  |  |          SELECT MIN(CONCAT(class_date_, ' ', start_class_time_))
 | 
	
		
			
				|  |  |          FROM course_schedule
 | 
	
		
			
				|  |  |          WHERE group_type_ = #{groupType}
 | 
	
		
			
				|  |  | -          AND music_group_id_ = #{groupId}
 | 
	
		
			
				|  |  | +          AND music_group_id_ = #{groupId} AND pre_course_flag_ = 0
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |      <select id="getMaxCourseTime" resultType="java.util.Date">
 | 
	
		
			
				|  |  |          SELECT MAX(CONCAT(class_date_, ' ', end_class_time_))
 | 
	
		
			
				|  |  |          FROM course_schedule
 | 
	
		
			
				|  |  |          WHERE group_type_ = #{groupType}
 | 
	
		
			
				|  |  | -          AND music_group_id_ = #{groupId}
 | 
	
		
			
				|  |  | +          AND music_group_id_ = #{groupId} AND pre_course_flag_ = 0
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |      <select id="findSurplusCourseWithGroup" resultMap="CourseSchedule">
 | 
	
		
			
				|  |  |          SELECT <include refid="resultSql"/>
 | 
	
	
		
			
				|  | @@ -2452,12 +2453,12 @@
 | 
	
		
			
				|  |  |          SELECT COUNT(*)
 | 
	
		
			
				|  |  |          FROM course_schedule
 | 
	
		
			
				|  |  |          WHERE class_group_id_ = #{classGroupId}
 | 
	
		
			
				|  |  | -          AND CONCAT(class_date_, ' ', end_class_time_) < NOW()
 | 
	
		
			
				|  |  | +          AND CONCAT(class_date_, ' ', end_class_time_) < NOW() AND pre_course_flag_ = 0
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      <sql id="endFindCourseSchedulesCondition">
 | 
	
		
			
				|  |  |          <where>
 | 
	
		
			
				|  |  | -            cs.del_flag_ = 0
 | 
	
		
			
				|  |  | +            cs.del_flag_ = 0 AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |              <include refid="queryVipCourseScheduleIds"/>
 | 
	
		
			
				|  |  |          </where>
 | 
	
		
			
				|  |  |      </sql>
 | 
	
	
		
			
				|  | @@ -2546,7 +2547,7 @@
 | 
	
		
			
				|  |  |          WHERE FIND_IN_SET(cs.class_group_id_, #{classGroupIds})
 | 
	
		
			
				|  |  |            AND CONCAT(cs.class_date_, ' ', cs.start_class_time_) > NOW()
 | 
	
		
			
				|  |  |            AND cs.class_date_ >= DATE_FORMAT(#{fromDate}, "%Y-%m-%d")
 | 
	
		
			
				|  |  | -          AND (cs.del_flag_ IS NULL OR cs.del_flag_ = 0)
 | 
	
		
			
				|  |  | +          AND (cs.del_flag_ IS NULL OR cs.del_flag_ = 0) AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      <select id="findGroupCourseStartTime" resultType="java.util.Date">
 | 
	
	
		
			
				|  | @@ -2847,7 +2848,7 @@
 | 
	
		
			
				|  |  |            AND TIMESTAMPDIFF(MINUTE, #{endDateTime}, CONCAT(cs.class_date_, ' ', cs.start_class_time_)) <= #{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 sa.sign_in_time_ IS NOT NULL)
 | 
	
		
			
				|  |  | +          AND (NOW() > CONCAT(cs.class_date_,' ', cs.start_class_time_) OR sa.sign_in_time_ IS NOT NULL) AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |          LIMIT 1
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |      <select id="queryTeacherContinueCourse" resultMap="CourseSchedule">
 | 
	
	
		
			
				|  | @@ -2858,7 +2859,7 @@
 | 
	
		
			
				|  |  |            AND TIMESTAMPDIFF(MINUTE, #{endDateTime}, CONCAT(cs.class_date_, ' ', cs.start_class_time_)) <= #{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)
 | 
	
		
			
				|  |  | +          AND (NOW() > CONCAT(cs.class_date_,' ', cs.start_class_time_) OR ta.sign_in_time_ IS NOT NULL) AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |          LIMIT 1
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |      <select id="getSingleClassMinutes" resultType="java.lang.Integer">
 | 
	
	
		
			
				|  | @@ -2889,7 +2890,7 @@
 | 
	
		
			
				|  |  |              course_schedule cs
 | 
	
		
			
				|  |  |          WHERE CONCAT(cs.class_date_, ' ', cs.start_class_time_) < NOW()
 | 
	
		
			
				|  |  |              AND cs.group_type_ = #{groupType}
 | 
	
		
			
				|  |  | -            AND cs.music_group_id_ = #{groupId}
 | 
	
		
			
				|  |  | +            AND cs.music_group_id_ = #{groupId} AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |      <select id="findUserCourses" resultMap="CourseSchedule">
 | 
	
		
			
				|  |  |          SELECT
 | 
	
	
		
			
				|  | @@ -2912,7 +2913,7 @@
 | 
	
		
			
				|  |  |          <foreach collection="teacherIds" item="teacherId" open="(" close=")" separator=",">
 | 
	
		
			
				|  |  |              #{teacherId}
 | 
	
		
			
				|  |  |          </foreach>
 | 
	
		
			
				|  |  | -        AND ( cs.del_flag_ != 1 OR cs.del_flag_ IS NULL )
 | 
	
		
			
				|  |  | +        AND ( cs.del_flag_ != 1 OR cs.del_flag_ IS NULL ) AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |      <select id="findUserCourses2" resultMap="CourseSchedule">
 | 
	
		
			
				|  |  |          SELECT
 | 
	
	
		
			
				|  | @@ -2935,7 +2936,7 @@
 | 
	
		
			
				|  |  |          <foreach collection="teacherIds" item="teacherId" open="(" close=")" separator=",">
 | 
	
		
			
				|  |  |              #{teacherId}
 | 
	
		
			
				|  |  |          </foreach>
 | 
	
		
			
				|  |  | -        AND ( cs.del_flag_ != 1 OR cs.del_flag_ IS NULL )
 | 
	
		
			
				|  |  | +        AND ( cs.del_flag_ != 1 OR cs.del_flag_ IS NULL ) AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |      <select id="findUserCourses3" resultMap="CourseSchedule">
 | 
	
		
			
				|  |  |          SELECT
 | 
	
	
		
			
				|  | @@ -2957,7 +2958,7 @@
 | 
	
		
			
				|  |  |          <foreach collection="teacherIds" item="teacherId" open="(" close=")" separator=",">
 | 
	
		
			
				|  |  |              #{teacherId}
 | 
	
		
			
				|  |  |          </foreach>
 | 
	
		
			
				|  |  | -        AND ( cs.del_flag_ != 1 OR cs.del_flag_ IS NULL )
 | 
	
		
			
				|  |  | +        AND ( cs.del_flag_ != 1 OR cs.del_flag_ IS NULL ) AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |      <select id="findUserCoursesWithPay" resultMap="CourseSchedule">
 | 
	
		
			
				|  |  |          SELECT
 | 
	
	
		
			
				|  | @@ -3000,7 +3001,7 @@
 | 
	
		
			
				|  |  |                  AND del_flag_ = 0) c
 | 
	
		
			
				|  |  |          WHERE cs.class_group_id_ = c.class_group_id_
 | 
	
		
			
				|  |  |            AND CONCAT(cs.class_date_, " ", cs.start_class_time_) <= c.class_date_
 | 
	
		
			
				|  |  | -          AND cs.del_flag_ = 0
 | 
	
		
			
				|  |  | +          AND cs.del_flag_ = 0 AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |      <select id="findCourseSchedulesByClassGroups" resultMap="CourseSchedule">
 | 
	
		
			
				|  |  |          SELECT
 | 
	
	
		
			
				|  | @@ -3032,7 +3033,7 @@
 | 
	
		
			
				|  |  |          <foreach collection="classGroupIds" item="classGroupId" open="(" close=")" separator=",">
 | 
	
		
			
				|  |  |              #{classGroupId}
 | 
	
		
			
				|  |  |          </foreach>
 | 
	
		
			
				|  |  | -        AND ( cs.del_flag_ != 1 OR cs.del_flag_ IS NULL )
 | 
	
		
			
				|  |  | +        AND ( cs.del_flag_ != 1 OR cs.del_flag_ IS NULL ) AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |          ORDER BY start_class_time_
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -3182,7 +3183,7 @@
 | 
	
		
			
				|  |  |          cs.status_
 | 
	
		
			
				|  |  |          FROM course_schedule cs
 | 
	
		
			
				|  |  |          LEFT JOIN course_schedule_evaluate cse ON cs.id_ = cse.course_schedule_id_
 | 
	
		
			
				|  |  | -        WHERE cs.group_type_ = #{groupType}
 | 
	
		
			
				|  |  | +        WHERE cs.group_type_ = #{groupType} AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |          <if test="groupId != null">
 | 
	
		
			
				|  |  |              AND cs.music_group_id_ = #{groupId}
 | 
	
		
			
				|  |  |          </if>
 | 
	
	
		
			
				|  | @@ -3197,7 +3198,7 @@
 | 
	
		
			
				|  |  |          FROM course_schedule cs
 | 
	
		
			
				|  |  |          WHERE cs.music_group_id_ = #{groupId}
 | 
	
		
			
				|  |  |            AND cs.group_type_ = #{groupType}
 | 
	
		
			
				|  |  | -          AND NOW() > CONCAT(cs.class_date_, ' ', cs.end_class_time_)
 | 
	
		
			
				|  |  | +          AND NOW() > CONCAT(cs.class_date_, ' ', cs.end_class_time_) AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |          ORDER BY cs.class_date_, cs.end_class_time_ ASC
 | 
	
		
			
				|  |  |          LIMIT 1
 | 
	
		
			
				|  |  |      </select>
 | 
	
	
		
			
				|  | @@ -3256,7 +3257,7 @@
 | 
	
		
			
				|  |  |          FROM course_schedule cs
 | 
	
		
			
				|  |  |          WHERE cs.music_group_id_ = #{groupId}
 | 
	
		
			
				|  |  |            AND cs.group_type_ = #{groupType}
 | 
	
		
			
				|  |  | -          AND cs.del_flag_ = 0
 | 
	
		
			
				|  |  | +          AND cs.del_flag_ = 0 AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |      <select id="findCourseByGroupIds" resultMap="CourseSchedule">
 | 
	
		
			
				|  |  |          SELECT
 | 
	
	
		
			
				|  | @@ -3264,7 +3265,7 @@
 | 
	
		
			
				|  |  |          FROM course_schedule cs
 | 
	
		
			
				|  |  |          WHERE cs.group_type_ = #{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 | 
	
		
			
				|  |  |          AND cs.del_flag_ = 0
 | 
	
		
			
				|  |  | -        AND (new_course_id_ is null or new_course_id_ = 0)
 | 
	
		
			
				|  |  | +        AND (cs.new_course_id_ IS NULL OR cs.new_course_id_ = 0) AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |          <if test="groupIds!=null and groupIds.size()>0">
 | 
	
		
			
				|  |  |              AND cs.music_group_id_ IN
 | 
	
		
			
				|  |  |              <foreach collection="groupIds" item="groupId" open="(" close=")" separator=",">
 | 
	
	
		
			
				|  | @@ -3281,7 +3282,7 @@
 | 
	
		
			
				|  |  |            AND ta.sign_in_time_ IS NOT NULL
 | 
	
		
			
				|  |  |            AND MONTH(ta.sign_in_time_) = #{month}
 | 
	
		
			
				|  |  |            AND cs.teach_mode_ = 'ONLINE'
 | 
	
		
			
				|  |  | -          AND ta.teacher_id_ = cs.actual_teacher_id_
 | 
	
		
			
				|  |  | +          AND ta.teacher_id_ = cs.actual_teacher_id_ AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |          GROUP BY ta.course_schedule_id_
 | 
	
		
			
				|  |  |          HAVING COUNT(sa.id_) > 0
 | 
	
		
			
				|  |  |      </select>
 | 
	
	
		
			
				|  | @@ -3383,7 +3384,7 @@
 | 
	
		
			
				|  |  |          WHERE cs.class_group_id_ = #{classGroupId}
 | 
	
		
			
				|  |  |          AND TIMESTAMPDIFF(MINUTE, CONCAT(cs.class_date_," ",cs.end_class_time_),#{startTime}) <= #{continueCourseTime}
 | 
	
		
			
				|  |  |          AND TIMESTAMPDIFF(MINUTE, CONCAT(cs.class_date_," ",cs.end_class_time_),#{startTime}) >= 0
 | 
	
		
			
				|  |  | -        AND cs.actual_teacher_id_ = #{teacherId}
 | 
	
		
			
				|  |  | +        AND cs.actual_teacher_id_ = #{teacherId} AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |          ORDER BY cs.class_date_ DESC,cs.end_class_time_ DESC
 | 
	
		
			
				|  |  |          LIMIT 1
 | 
	
		
			
				|  |  |      </select>
 | 
	
	
		
			
				|  | @@ -3492,14 +3493,14 @@
 | 
	
		
			
				|  |  |                 cs.organ_id_ FROM course_schedule cs
 | 
	
		
			
				|  |  |          LEFT JOIN course_schedule_teacher_salary csts ON csts.course_schedule_id_ = cs.id_
 | 
	
		
			
				|  |  |          WHERE FIND_IN_SET(cs.class_group_id_,#{classGroupIds}) AND csts.teacher_role_ = #{teacherRole}
 | 
	
		
			
				|  |  | -        AND csts.user_id_ = #{teacherId} AND CONCAT(cs.class_date_,' ',cs.start_class_time_) > NOW() AND cs.del_flag_ = 0
 | 
	
		
			
				|  |  | +        AND csts.user_id_ = #{teacherId} AND CONCAT(cs.class_date_,' ',cs.start_class_time_) > NOW() AND cs.del_flag_ = 0 AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |      <select id="queryHasReatClass" resultType="java.util.Map">
 | 
	
		
			
				|  |  |          SELECT cgtm.class_group_id_ 'key',CASE WHEN COUNT(cs.id_) > 0 THEN 1 ELSE 0 END 'value'
 | 
	
		
			
				|  |  |          FROM class_group_teacher_mapper cgtm
 | 
	
		
			
				|  |  |          LEFT JOIN course_schedule cs ON cs.class_group_id_ = cgtm.class_group_id_
 | 
	
		
			
				|  |  |          AND CONCAT(cs.class_date_,' ',cs.start_class_time_) > NOW() AND cs.del_flag_ = 0
 | 
	
		
			
				|  |  | -        WHERE cgtm.user_id_ = #{teacherId} AND cgtm.group_type_ = 'MUSIC' AND cgtm.class_group_id_ IN
 | 
	
		
			
				|  |  | +        WHERE cgtm.user_id_ = #{teacherId} AND cgtm.group_type_ = 'MUSIC' AND cs.pre_course_flag_ = 0 AND cgtm.class_group_id_ IN
 | 
	
		
			
				|  |  |          <foreach collection="classGroupIds" item="classGroupId" separator="," open="(" close=")">
 | 
	
		
			
				|  |  |              #{classGroupId}
 | 
	
		
			
				|  |  |          </foreach>
 | 
	
	
		
			
				|  | @@ -3564,7 +3565,7 @@
 | 
	
		
			
				|  |  |              LEFT JOIN teacher_attendance ta ON cs.id_=ta.course_schedule_id_ AND ta.teacher_id_=#{teacherId}
 | 
	
		
			
				|  |  |          WHERE csts.user_id_=#{teacherId}
 | 
	
		
			
				|  |  |          AND cs.class_date_ = DATE_FORMAT(#{startClassTime},'%Y-%m-%d')
 | 
	
		
			
				|  |  | -        AND cs.start_class_time_ < DATE_FORMAT(#{startClassTime},'%H:%i:%S')
 | 
	
		
			
				|  |  | +        AND cs.start_class_time_ < DATE_FORMAT(#{startClassTime},'%H:%i:%S') AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |          AND ta.sign_in_status_ IS NOT NULL
 | 
	
		
			
				|  |  |          ORDER BY start_class_time_ DESC LIMIT 1;
 | 
	
		
			
				|  |  |      </select>
 | 
	
	
		
			
				|  | @@ -3574,12 +3575,12 @@
 | 
	
		
			
				|  |  |  		(SELECT cs.type_ course_type_,SUM(TIMESTAMPDIFF(MINUTE,STR_TO_DATE(concat(cs.class_date_,' ',cs.start_class_time_),'%Y-%m-%d %H:%i:%s'),
 | 
	
		
			
				|  |  |          STR_TO_DATE(concat(cs.class_date_,' ',cs.end_class_time_),'%Y-%m-%d %H:%i:%s'))) remain_minutes_,COUNT(cs.id_) temp_merged_course_num_
 | 
	
		
			
				|  |  |  		FROM course_schedule cs WHERE FIND_IN_SET(cs.class_group_id_,#{classGroupIdList}) AND cs.status_ = 'NOT_START'
 | 
	
		
			
				|  |  | -		AND (cs.new_course_id_ IS NULL OR cs.new_course_id_ = 0) AND cs.member_flag_ = #{memberFlag} GROUP BY cs.type_
 | 
	
		
			
				|  |  | +		AND (cs.new_course_id_ IS NULL OR cs.new_course_id_ = 0) AND cs.member_flag_ = #{memberFlag} AND cs.pre_course_flag_ = 0 GROUP BY cs.type_
 | 
	
		
			
				|  |  |  		UNION ALL
 | 
	
		
			
				|  |  |  		SELECT ncs.type_ course_type_,SUM(TIMESTAMPDIFF(MINUTE,STR_TO_DATE(concat(ncs.class_date_,' ',ncs.start_class_time_),'%Y-%m-%d %H:%i:%s'),
 | 
	
		
			
				|  |  |          STR_TO_DATE(concat(ncs.class_date_,' ',ncs.end_class_time_),'%Y-%m-%d %H:%i:%s'))) remain_minutes_,COUNT(cs.id_) temp_merged_course_num_
 | 
	
		
			
				|  |  |  		FROM course_schedule cs LEFT JOIN course_schedule ncs ON ncs.id_ = cs.new_course_id_
 | 
	
		
			
				|  |  | -		WHERE FIND_IN_SET(cs.class_group_id_,#{classGroupIdList}) AND cs.new_course_id_ > 0 AND ncs.status_ = 'NOT_START' AND cs.member_flag_ = #{memberFlag} GROUP BY ncs.type_) a
 | 
	
		
			
				|  |  | +		WHERE FIND_IN_SET(cs.class_group_id_,#{classGroupIdList}) AND cs.new_course_id_ > 0 AND ncs.status_ = 'NOT_START' AND cs.pre_course_flag_ = 0 AND cs.member_flag_ = #{memberFlag} GROUP BY ncs.type_) a
 | 
	
		
			
				|  |  |  		group BY a.course_type_
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -3623,14 +3624,15 @@
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      <select id="querySubCourseNumMap" resultType="java.util.Map">
 | 
	
		
			
				|  |  | -        SELECT cs.type_ 'key',COUNT(CASE WHEN (CONCAT(cs.class_date_,' ',cs.start_class_time_) > NOW()) THEN 1 ELSE NULL END) 'value' FROM course_schedule cs
 | 
	
		
			
				|  |  | -        WHERE cs.class_group_id_ = #{classGroupId}
 | 
	
		
			
				|  |  | +        SELECT cs.type_ 'key',COUNT(CASE WHEN (CONCAT(cs.class_date_,' ',cs.start_class_time_) > NOW()) THEN 1 ELSE NULL END) 'value'
 | 
	
		
			
				|  |  | +        FROM course_schedule cs
 | 
	
		
			
				|  |  | +        WHERE cs.class_group_id_ = #{classGroupId} AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |          GROUP BY cs.type_
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |      <select id="querySubCourseTimeMap" resultType="java.util.Map">
 | 
	
		
			
				|  |  |          SELECT cs.type_ 'key',SUM(ROUND((UNIX_TIMESTAMP(CONCAT(cs.class_date_,' ',cs.end_class_time_)) - UNIX_TIMESTAMP(CONCAT(cs.class_date_,' ',cs.start_class_time_)))/60)) 'value'
 | 
	
		
			
				|  |  |          FROM course_schedule cs
 | 
	
		
			
				|  |  | -        WHERE cs.class_group_id_ = #{classGroupId} AND CONCAT(cs.class_date_,' ',cs.start_class_time_) > NOW()
 | 
	
		
			
				|  |  | +        WHERE cs.class_group_id_ = #{classGroupId} AND CONCAT(cs.class_date_,' ',cs.start_class_time_) > NOW() AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |          GROUP BY cs.type_
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |      <select id="findClassMaxCourseNumMap" resultType="java.util.Map">
 | 
	
	
		
			
				|  | @@ -3639,7 +3641,7 @@
 | 
	
		
			
				|  |  |          <foreach collection="classGroupIds" open="(" close=")" separator="," item="item">
 | 
	
		
			
				|  |  |              #{item}
 | 
	
		
			
				|  |  |          </foreach>
 | 
	
		
			
				|  |  | -        AND CONCAT(cs.class_date_," ",cs.start_class_time_) > NOW()
 | 
	
		
			
				|  |  | +        AND CONCAT(cs.class_date_," ",cs.start_class_time_) > NOW() AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |          GROUP BY cs.class_group_id_,cs.type_)c
 | 
	
		
			
				|  |  |          GROUP BY c.type_
 | 
	
		
			
				|  |  |      </select>
 | 
	
	
		
			
				|  | @@ -3656,7 +3658,7 @@
 | 
	
		
			
				|  |  |                  #{item}
 | 
	
		
			
				|  |  |              </foreach>
 | 
	
		
			
				|  |  |          </if>
 | 
	
		
			
				|  |  | -        AND CONCAT(cs.class_date_," ",cs.start_class_time_) > NOW()
 | 
	
		
			
				|  |  | +        AND CONCAT(cs.class_date_," ",cs.start_class_time_) > NOW() AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |          GROUP BY cssp.course_schedule_id_
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |      <select id="findNoStudentCourseIds" resultType="Long">
 | 
	
	
		
			
				|  | @@ -3674,7 +3676,7 @@
 | 
	
		
			
				|  |  |          <foreach collection="classGroupIds" open="(" close=")" separator="," item="item">
 | 
	
		
			
				|  |  |              #{item}
 | 
	
		
			
				|  |  |          </foreach>
 | 
	
		
			
				|  |  | -        AND new_course_id_ IS NOT NULL
 | 
	
		
			
				|  |  | +        AND new_course_id_ IS NOT NULL AND pre_course_flag_ = 0
 | 
	
		
			
				|  |  |          AND status_ = 'NOT_START'
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |      <select id="getLock" resultMap="CourseSchedule">
 | 
	
	
		
			
				|  | @@ -3692,6 +3694,7 @@
 | 
	
		
			
				|  |  |              <foreach collection="courseIds" item="courseId" open="(" close=")" separator=",">
 | 
	
		
			
				|  |  |                  #{courseId}
 | 
	
		
			
				|  |  |              </foreach>
 | 
	
		
			
				|  |  | +        AND pre_course_flag_ = 0
 | 
	
		
			
				|  |  |          GROUP BY
 | 
	
		
			
				|  |  |              new_course_id_
 | 
	
		
			
				|  |  |      </select>
 | 
	
	
		
			
				|  | @@ -3714,7 +3717,7 @@
 | 
	
		
			
				|  |  |              LEFT JOIN practice_group vg ON vg.id_ = cs.music_group_id_
 | 
	
		
			
				|  |  |          </if>
 | 
	
		
			
				|  |  |          WHERE cssp.user_id_ = #{studentId} AND CONCAT(cs.class_date_,' ',cs.start_class_time_) > NOW()
 | 
	
		
			
				|  |  | -        AND vg.educational_teacher_id_ = #{teacherId}
 | 
	
		
			
				|  |  | +        AND vg.educational_teacher_id_ = #{teacherId} AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |          <include refid="global.limit"/>
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |      <select id="countStudentNoStartCourse" resultType="int">
 | 
	
	
		
			
				|  | @@ -3727,7 +3730,7 @@
 | 
	
		
			
				|  |  |              LEFT JOIN practice_group vg ON vg.id_ = cs.music_group_id_
 | 
	
		
			
				|  |  |          </if>
 | 
	
		
			
				|  |  |          WHERE cssp.user_id_ = #{studentId} AND CONCAT(cs.class_date_,' ',cs.start_class_time_) > NOW()
 | 
	
		
			
				|  |  | -        AND vg.educational_teacher_id_ = #{teacherId}
 | 
	
		
			
				|  |  | +        AND vg.educational_teacher_id_ = #{teacherId} AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |      <select id="findCoursesByClassGroupIdAndCourseIds" resultMap="CourseSchedule">
 | 
	
		
			
				|  |  |          SELECT * FROM course_schedule WHERE class_group_id_ = #{classGroupId}
 | 
	
	
		
			
				|  | @@ -3743,7 +3746,7 @@
 | 
	
		
			
				|  |  |          WHERE cs.class_group_id_ = #{classGroupId} AND CONCAT(cs.class_date_,' ',cs.start_class_time_) > NOW()
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |      <select id="getUnderwayCourseNum" resultType="int">
 | 
	
		
			
				|  |  | -        SELECT COUNT(*) FROM course_schedule WHERE music_group_id_ = #{musicGroupId} AND group_type_ = #{groupType} AND status_=#{status}
 | 
	
		
			
				|  |  | +        SELECT COUNT(*) FROM course_schedule WHERE music_group_id_ = #{musicGroupId} AND group_type_ = #{groupType} AND status_=#{status} AND pre_course_flag_ = 0
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      <select id="getMusicGroupCourseInfo" resultMap="CourseSchedule"><![CDATA[
 | 
	
	
		
			
				|  | @@ -3755,7 +3758,7 @@
 | 
	
		
			
				|  |  |              AND cs.start_class_time_ >= DATE_FORMAT(#{startTime},'%H:%i:%S')
 | 
	
		
			
				|  |  |              AND cs.end_class_time_ <= DATE_FORMAT(#{endTime},'%H:%i:%S')
 | 
	
		
			
				|  |  |              AND cs.group_type_ = 'MUSIC'
 | 
	
		
			
				|  |  | -            AND cs.teach_mode_ = 'OFFLINE'
 | 
	
		
			
				|  |  | +            AND cs.teach_mode_ = 'OFFLINE' AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |          ORDER BY cs.id_ ASC
 | 
	
		
			
				|  |  |      ]]></select>
 | 
	
		
			
				|  |  |      <select id="findHasCourseStudent" resultType="java.lang.Integer">
 | 
	
	
		
			
				|  | @@ -3795,7 +3798,7 @@
 | 
	
		
			
				|  |  |          SELECT COUNT(*) FROM course_schedule
 | 
	
		
			
				|  |  |          WHERE music_group_id_ = #{musicGroupId}
 | 
	
		
			
				|  |  |          AND group_type_='MUSIC'
 | 
	
		
			
				|  |  | -        AND status_ IN ('UNDERWAY','OVER')
 | 
	
		
			
				|  |  | +        AND status_ IN ('UNDERWAY','OVER') AND pre_course_flag_ = 0
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      <select id="getMusicGroupsHasStartCourseNum" resultMap="CourseSchedule">
 | 
	
	
		
			
				|  | @@ -3819,7 +3822,7 @@
 | 
	
		
			
				|  |  |              ( cs.del_flag_ IS NULL OR cs.del_flag_ = 0 )
 | 
	
		
			
				|  |  |              AND (cs.is_lock_=0 OR cs.is_lock_ IS NULL)
 | 
	
		
			
				|  |  |              AND (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_)
 | 
	
		
			
				|  |  | -            AND csts.user_id_ = #{teacherId}
 | 
	
		
			
				|  |  | +            AND csts.user_id_ = #{teacherId} AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |              <if test="startDay!=null and startDay!=''">
 | 
	
		
			
				|  |  |                  AND cs.class_date_ >= #{startDay}
 | 
	
		
			
				|  |  |              </if>
 | 
	
	
		
			
				|  | @@ -3839,7 +3842,7 @@
 | 
	
		
			
				|  |  |              ( cs.del_flag_ IS NULL OR cs.del_flag_ = 0 )
 | 
	
		
			
				|  |  |              AND (cs.is_lock_=0 OR cs.is_lock_ IS NULL)
 | 
	
		
			
				|  |  |              AND (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_)
 | 
	
		
			
				|  |  | -            AND cs.class_date_ >= "2021-03-01"
 | 
	
		
			
				|  |  | +            AND cs.class_date_ >= "2021-03-01" AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |              <if test="teacherId!=null">
 | 
	
		
			
				|  |  |                  AND csts.user_id_ = #{teacherId}
 | 
	
		
			
				|  |  |              </if>
 |