|  | @@ -214,7 +214,7 @@
 | 
	
		
			
				|  |  |  				course_schedule_student_payment cssp
 | 
	
		
			
				|  |  |  				LEFT JOIN course_schedule cs ON cssp.course_schedule_id_ = cs.id_
 | 
	
		
			
				|  |  |  			 WHERE
 | 
	
		
			
				|  |  | -				 cs.del_flag_ = 0
 | 
	
		
			
				|  |  | +				 cs.del_flag_ = 0 AND cs.pre_course_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 cssp.group_type_ IN ('VIP', 'PRACTICE')
 | 
	
	
		
			
				|  | @@ -442,7 +442,7 @@
 | 
	
		
			
				|  |  |  		  	AND m.status_ = #{courseStatus, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 | 
	
		
			
				|  |  |  			AND (m.new_course_id_ IS NULL OR m.new_course_id_=m.id_)
 | 
	
		
			
				|  |  |  			AND NOT EXISTS (SELECT id_ FROM practice_group WHERE m.group_type_='PRACTICE' AND m.music_group_id_=id_ AND type_='TRIAL')
 | 
	
		
			
				|  |  | -			AND m.organ_id_ IS NOT NULL
 | 
	
		
			
				|  |  | +			AND m.organ_id_ IS NOT NULL AND m.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |  			<if test="groupType!=null">
 | 
	
		
			
				|  |  |  				AND m.group_type_ = #{groupType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 | 
	
		
			
				|  |  |  			</if>
 | 
	
	
		
			
				|  | @@ -470,7 +470,7 @@
 | 
	
		
			
				|  |  |  			AND m.status_ = #{courseStatus, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 | 
	
		
			
				|  |  |  			AND (m.new_course_id_ IS NULL OR m.new_course_id_=m.id_)
 | 
	
		
			
				|  |  |  			AND NOT EXISTS (SELECT id_ FROM practice_group WHERE m.group_type_='PRACTICE' AND m.music_group_id_=id_ AND type_='TRIAL')
 | 
	
		
			
				|  |  | -			AND m.organ_id_ IS NOT NULL
 | 
	
		
			
				|  |  | +			AND m.organ_id_ IS NOT NULL AND m.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |  			<if test="groupType!=null">
 | 
	
		
			
				|  |  |  				AND m.group_type_ = #{groupType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 | 
	
		
			
				|  |  |  			</if>
 | 
	
	
		
			
				|  | @@ -495,7 +495,7 @@
 | 
	
		
			
				|  |  |  		AND (m.is_lock_ = 0 OR m.is_lock_ IS NULL)
 | 
	
		
			
				|  |  |  		AND (m.new_course_id_ IS NULL OR m.new_course_id_=m.id_)
 | 
	
		
			
				|  |  |  		AND NOT EXISTS (SELECT id_ FROM practice_group WHERE m.group_type_='PRACTICE' AND m.music_group_id_=id_ AND type_='TRIAL')
 | 
	
		
			
				|  |  | -		AND m.organ_id_ IS NOT NULL
 | 
	
		
			
				|  |  | +		AND m.organ_id_ IS NOT NULL AND m.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |  		<if test="groupType!=null">
 | 
	
		
			
				|  |  |  			AND m.group_type_ = #{groupType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 | 
	
		
			
				|  |  |  		</if>
 | 
	
	
		
			
				|  | @@ -521,7 +521,7 @@
 | 
	
		
			
				|  |  |  		LEFT JOIN vip_group vg ON m.music_group_id_=vg.id_
 | 
	
		
			
				|  |  |  		LEFT JOIN vip_group_category vgc ON vg.vip_group_category_id_=vgc.id_
 | 
	
		
			
				|  |  |  		WHERE
 | 
	
		
			
				|  |  | -		m.del_flag_ = 0
 | 
	
		
			
				|  |  | +		m.del_flag_ = 0 AND m.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |  		AND (m.is_lock_ = 0 OR m.is_lock_ IS NULL)
 | 
	
		
			
				|  |  |  		AND (m.new_course_id_ IS NULL OR m.new_course_id_=m.id_)
 | 
	
		
			
				|  |  |  		AND m.organ_id_ IS NOT NULL
 | 
	
	
		
			
				|  | @@ -552,7 +552,7 @@
 | 
	
		
			
				|  |  |  			LEFT JOIN course_schedule_student_payment s ON su.id_=s.user_id_
 | 
	
		
			
				|  |  |  			LEFT JOIN course_schedule m ON s.course_schedule_id_=m.id_
 | 
	
		
			
				|  |  |  		WHERE
 | 
	
		
			
				|  |  | -			m.del_flag_ = 0
 | 
	
		
			
				|  |  | +			m.del_flag_ = 0 AND m.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |  			AND (m.is_lock_ = 0 OR m.is_lock_ IS NULL)
 | 
	
		
			
				|  |  |  			AND su.organ_id_ IS NOT NULL
 | 
	
		
			
				|  |  |  			AND m.group_type_ IN ('VIP', 'PRACTICE')
 | 
	
	
		
			
				|  | @@ -579,7 +579,7 @@
 | 
	
		
			
				|  |  |  			LEFT JOIN course_schedule_student_payment cssp1 ON s.user_id_=cssp1.user_id_ AND cssp1.create_time_<#{dayStr}
 | 
	
		
			
				|  |  |  			LEFT JOIN course_schedule m ON s.course_schedule_id_=m.id_
 | 
	
		
			
				|  |  |  		WHERE
 | 
	
		
			
				|  |  | -			m.del_flag_ = 0
 | 
	
		
			
				|  |  | +			m.del_flag_ = 0 AND m.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |  			AND (m.is_lock_ = 0 OR m.is_lock_ IS NULL)
 | 
	
		
			
				|  |  |  			AND cssp1.id_ IS NULL
 | 
	
		
			
				|  |  |  			AND su.organ_id_ IS NOT NULL
 | 
	
	
		
			
				|  | @@ -603,7 +603,7 @@
 | 
	
		
			
				|  |  |  			LEFT JOIN course_schedule cs ON m.course_schedule_id_=cs.id_
 | 
	
		
			
				|  |  |  			LEFT JOIN practice_group pg ON m.music_group_id_=pg.id_ AND m.group_type_='PRACTICE'
 | 
	
		
			
				|  |  |  		WHERE
 | 
	
		
			
				|  |  | -			(cs.del_flag_ IS NULL OR cs.del_flag_=0)
 | 
	
		
			
				|  |  | +			(cs.del_flag_ IS NULL OR cs.del_flag_=0) AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |  			AND cs.organ_id_ IS NOT NULL
 | 
	
		
			
				|  |  |  			AND (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_)
 | 
	
		
			
				|  |  |  			AND m.group_type_ IN ('VIP', 'PRACTICE')
 | 
	
	
		
			
				|  | @@ -699,7 +699,7 @@
 | 
	
		
			
				|  |  |  		LEFT JOIN course_schedule cs ON cs.class_group_id_=cg.id_
 | 
	
		
			
				|  |  |  		WHERE
 | 
	
		
			
				|  |  |  		cg.type_ IN ('HIGH', 'HIGH_ONLINE')
 | 
	
		
			
				|  |  | -		AND mg.status_ = 'PROGRESS' AND cg.del_flag_ = 0
 | 
	
		
			
				|  |  | +		AND mg.status_ = 'PROGRESS' AND cg.del_flag_ = 0 AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |  		AND cs.del_flag_=0
 | 
	
		
			
				|  |  |  		AND cs.status_='NOT_START'
 | 
	
		
			
				|  |  |  		AND ( cs.new_course_id_ IS NULL OR cs.new_course_id_ = cs.id_ )
 | 
	
	
		
			
				|  | @@ -728,7 +728,7 @@
 | 
	
		
			
				|  |  |  		LEFT JOIN music_group mg ON cg.music_group_id_=mg.id_
 | 
	
		
			
				|  |  |  		LEFT JOIN course_schedule cs ON cs.class_group_id_=cg.id_
 | 
	
		
			
				|  |  |  		WHERE
 | 
	
		
			
				|  |  | -		cg.type_ IN ('HIGH', 'HIGH_ONLINE')
 | 
	
		
			
				|  |  | +		cg.type_ IN ('HIGH', 'HIGH_ONLINE') AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |  		AND mg.status_ = 'PROGRESS' AND cg.del_flag_ = 0
 | 
	
		
			
				|  |  |  		AND cs.del_flag_=0
 | 
	
		
			
				|  |  |  		AND cs.status_='NOT_START'
 | 
	
	
		
			
				|  | @@ -886,7 +886,7 @@
 | 
	
		
			
				|  |  |  			LEFT JOIN student_visit sv ON cssp.id_ = sv.object_id_
 | 
	
		
			
				|  |  |  		WHERE
 | 
	
		
			
				|  |  |  				cs.status_ = 'OVER' AND sv.id_ IS NULL AND cs.del_flag_ = 0 AND cs.class_date_ >= #{startTime} AND cs.class_date_ <= DATE_FORMAT(NOW(),'%Y-%m-%d')
 | 
	
		
			
				|  |  | -				AND cssp.group_type_ IN ('MUSIC','PRACTICE','VIP')
 | 
	
		
			
				|  |  | +				AND cssp.group_type_ IN ('MUSIC','PRACTICE','VIP') AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |  			<if test="type!=null and type=='LEAVE'">
 | 
	
		
			
				|  |  |  				AND sa.status_ = 'LEAVE'
 | 
	
		
			
				|  |  |  			</if>
 | 
	
	
		
			
				|  | @@ -903,7 +903,7 @@
 | 
	
		
			
				|  |  |      <select id="getCourseTimeError" resultType="int">
 | 
	
		
			
				|  |  |  		SELECT COUNT(cs.id_) FROM course_schedule cs
 | 
	
		
			
				|  |  |  		WHERE cs.status_ = 'NOT_START' AND cs.del_flag_ = 0 AND cs.is_lock_ = 0 AND cs.start_class_time_ < '06:00:00'
 | 
	
		
			
				|  |  | -		AND (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_)
 | 
	
		
			
				|  |  | +		AND (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_) AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |  		<if test="classGroupIds != null and classGroupIds.size() > 0">
 | 
	
		
			
				|  |  |  			AND cs.class_group_id_ IN
 | 
	
		
			
				|  |  |  			<foreach collection="classGroupIds" item="classGroupId" open="(" close=")" separator=",">
 | 
	
	
		
			
				|  | @@ -924,7 +924,7 @@
 | 
	
		
			
				|  |  |  		       COUNT(cs.id_) AS 'value'
 | 
	
		
			
				|  |  |  		FROM course_schedule cs
 | 
	
		
			
				|  |  |  		WHERE cs.status_ = 'NOT_START' AND cs.del_flag_ = 0 AND cs.is_lock_ = 0 AND cs.start_class_time_ < '06:00:00'
 | 
	
		
			
				|  |  | -		AND (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_)
 | 
	
		
			
				|  |  | +		AND (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_) AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |  		<if test="classGroupIds != null and classGroupIds.size() > 0">
 | 
	
		
			
				|  |  |  			AND cs.class_group_id_ IN
 | 
	
		
			
				|  |  |  			<foreach collection="classGroupIds" item="classGroupId" open="(" close=")" separator=",">
 | 
	
	
		
			
				|  | @@ -945,7 +945,7 @@
 | 
	
		
			
				|  |  |  		LEFT JOIN teacher_attendance ta ON ta.course_schedule_id_ = cs.id_
 | 
	
		
			
				|  |  |  		LEFT JOIN course_schedule_student_payment cssp ON cssp.course_schedule_id_ = cs.id_
 | 
	
		
			
				|  |  |  		LEFT JOIN student_attendance sa ON sa.course_schedule_id_ = cssp.course_schedule_id_ AND cssp.user_id_ = sa.user_id_
 | 
	
		
			
				|  |  | -		WHERE ta.teacher_id_ = cs.actual_teacher_id_
 | 
	
		
			
				|  |  | +		WHERE ta.teacher_id_ = cs.actual_teacher_id_ AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |  		AND cs.status_ = 'OVER' AND cs.del_flag_ = 0 AND cs.class_date_ >= '2021-02-01'
 | 
	
		
			
				|  |  |  		AND (((ta.sign_in_status_ = 0 OR ta.sign_in_status_ IS NULL OR ta.sign_out_status_ = 0 OR ta.sign_out_status_ IS NULL) AND ta.dispose_content_ IS NULL) OR (sa.id_ IS NULL OR (sa.status_ = 'TRUANT' AND sa.visit_flag_ = 0)))
 | 
	
		
			
				|  |  |  		AND ((ta.sign_in_status_ IS NULL AND ta.sign_out_status_ IS NOT NULL) OR (ta.sign_out_status_ IS NULL AND ta.sign_in_status_ IS NOT NULL) OR (ta.sign_out_status_ IS NOT NULL AND ta.sign_in_status_ IS NOT NULL))
 | 
	
	
		
			
				|  | @@ -975,7 +975,7 @@
 | 
	
		
			
				|  |  |  		LEFT JOIN course_schedule_student_payment cssp ON cssp.course_schedule_id_ = cs.id_
 | 
	
		
			
				|  |  |  		LEFT JOIN student_attendance sa ON sa.course_schedule_id_ = cssp.course_schedule_id_ AND cssp.user_id_ = sa.user_id_
 | 
	
		
			
				|  |  |  		WHERE ta.teacher_id_ = cs.actual_teacher_id_
 | 
	
		
			
				|  |  | -		AND cs.status_ = 'OVER' AND cs.del_flag_ = 0 AND cs.class_date_ >= '2021-02-01'
 | 
	
		
			
				|  |  | +		AND cs.status_ = 'OVER' AND cs.del_flag_ = 0 AND cs.class_date_ >= '2021-02-01' AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |  		AND (((ta.sign_in_status_ = 0 OR ta.sign_in_status_ IS NULL OR ta.sign_out_status_ = 0 OR ta.sign_out_status_ IS NULL) AND ta.dispose_content_ IS NULL) OR (sa.id_ IS NULL OR (sa.status_ = 'TRUANT' AND sa.visit_flag_ = 0)))
 | 
	
		
			
				|  |  |  		AND ((ta.sign_in_status_ IS NULL AND ta.sign_out_status_ IS NOT NULL) OR (ta.sign_out_status_ IS NULL AND ta.sign_in_status_ IS NOT NULL) OR (ta.sign_out_status_ IS NOT NULL AND ta.sign_in_status_ IS NOT NULL))
 | 
	
		
			
				|  |  |  		AND (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_) AND cssp.id_ IS NOT NULL
 | 
	
	
		
			
				|  | @@ -999,7 +999,7 @@
 | 
	
		
			
				|  |  |  		SELECT COUNT(DISTINCT cs.id_) FROM course_schedule cs
 | 
	
		
			
				|  |  |  		LEFT JOIN teacher_attendance ta ON ta.course_schedule_id_ = cs.id_
 | 
	
		
			
				|  |  |  		WHERE ta.teacher_id_ = cs.actual_teacher_id_
 | 
	
		
			
				|  |  | -		AND cs.status_ = 'OVER' AND cs.del_flag_ = 0 AND cs.class_date_>='2021-02-01'
 | 
	
		
			
				|  |  | +		AND cs.status_ = 'OVER' AND cs.del_flag_ = 0 AND cs.class_date_>='2021-02-01' AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |  		AND ta.sign_in_time_ IS NULL AND ta.sign_out_time_ IS NULL AND ta.dispose_content_ IS NULL
 | 
	
		
			
				|  |  |  		AND (cs.new_course_id_ IS NULL OR cs.new_course_id_ = cs.id_)
 | 
	
		
			
				|  |  |  		AND EXISTS (SELECT id_ FROM course_schedule_teacher_salary WHERE cs.id_=course_schedule_id_ AND settlement_time_ IS NULL)
 | 
	
	
		
			
				|  | @@ -1024,7 +1024,7 @@
 | 
	
		
			
				|  |  |  		FROM course_schedule cs
 | 
	
		
			
				|  |  |  		LEFT JOIN teacher_attendance ta ON ta.course_schedule_id_ = cs.id_
 | 
	
		
			
				|  |  |  		WHERE ta.teacher_id_ = cs.actual_teacher_id_
 | 
	
		
			
				|  |  | -		AND cs.status_ = 'OVER' AND cs.del_flag_ = 0 AND cs.class_date_>='2021-02-01'
 | 
	
		
			
				|  |  | +		AND cs.status_ = 'OVER' AND cs.del_flag_ = 0 AND cs.class_date_>='2021-02-01' AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |  		AND ta.sign_in_time_ IS NULL AND ta.sign_out_time_ IS NULL AND ta.dispose_content_ IS NULL
 | 
	
		
			
				|  |  |  		AND (cs.new_course_id_ IS NULL OR cs.new_course_id_ = cs.id_)
 | 
	
		
			
				|  |  |  		AND EXISTS (SELECT id_ FROM course_schedule_teacher_salary WHERE cs.id_=course_schedule_id_ AND settlement_time_ IS NULL)
 | 
	
	
		
			
				|  | @@ -1391,7 +1391,7 @@
 | 
	
		
			
				|  |  |  		SELECT COUNT(DISTINCT c.user_id_) FROM (
 | 
	
		
			
				|  |  |  		SELECT sa.user_id_ FROM student_attendance sa
 | 
	
		
			
				|  |  |  		LEFT JOIN course_schedule cs ON cs.id_ = sa.course_schedule_id_
 | 
	
		
			
				|  |  | -		WHERE DATE_FORMAT(cs.class_date_,'%Y-%m') >= #{format} AND sa.status_ = 'LEAVE'
 | 
	
		
			
				|  |  | +		WHERE DATE_FORMAT(cs.class_date_,'%Y-%m') >= #{format} AND sa.status_ = 'LEAVE' AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |  		<if test="organIdList != null and organIdList.size > 0">
 | 
	
		
			
				|  |  |  			AND cs.organ_id_ IN
 | 
	
		
			
				|  |  |  			<foreach collection="organIdList" open="(" close=")" item="item" separator=",">
 | 
	
	
		
			
				|  | @@ -1412,7 +1412,7 @@
 | 
	
		
			
				|  |  |  		SELECT sa.user_id_ FROM student_attendance sa
 | 
	
		
			
				|  |  |  		LEFT JOIN course_schedule cs ON cs.id_ = sa.course_schedule_id_
 | 
	
		
			
				|  |  |  		LEFT JOIN sys_user su ON su.id_ = sa.user_id_
 | 
	
		
			
				|  |  | -		WHERE DATE_FORMAT(cs.class_date_,'%Y-%m') >= #{currentMonth} AND sa.status_ = 'LEAVE'
 | 
	
		
			
				|  |  | +		WHERE DATE_FORMAT(cs.class_date_,'%Y-%m') >= #{currentMonth} AND sa.status_ = 'LEAVE' AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |  		<if test="organId != null">
 | 
	
		
			
				|  |  |  			AND FIND_IN_SET(cs.organ_id_,#{organId})
 | 
	
		
			
				|  |  |  		</if>
 | 
	
	
		
			
				|  | @@ -1445,7 +1445,7 @@
 | 
	
		
			
				|  |  |  		LEFT JOIN course_schedule cs ON cs.id_ = sa.course_schedule_id_
 | 
	
		
			
				|  |  |  		LEFT JOIN organization o ON o.id_ = cs.organ_id_
 | 
	
		
			
				|  |  |  		LEFT JOIN sys_user su ON su.id_ = sa.user_id_
 | 
	
		
			
				|  |  | -		WHERE DATE_FORMAT(cs.class_date_,'%Y-%m') >= #{currentMonth} AND sa.status_ = 'LEAVE'
 | 
	
		
			
				|  |  | +		WHERE DATE_FORMAT(cs.class_date_,'%Y-%m') >= #{currentMonth} AND sa.status_ = 'LEAVE' AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |  		<if test="organId != null">
 | 
	
		
			
				|  |  |  			AND FIND_IN_SET(cs.organ_id_,#{organId})
 | 
	
		
			
				|  |  |  		</if>
 | 
	
	
		
			
				|  | @@ -1471,7 +1471,7 @@
 | 
	
		
			
				|  |  |  	</select>
 | 
	
		
			
				|  |  |  	<sql id="queryStudentLeaveCourseListSql">
 | 
	
		
			
				|  |  |  		<where>
 | 
	
		
			
				|  |  | -			sa.user_id_ = #{userId} AND sa.status_ = 'LEAVE'
 | 
	
		
			
				|  |  | +			sa.user_id_ = #{userId} AND sa.status_ = 'LEAVE' AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |  			<if test="search != null and search != ''">
 | 
	
		
			
				|  |  |  				AND (cs.id_ = #{search} OR cs.actual_teacher_id_ = #{search} OR su.real_name_ LIKE CONCAT('%',#{search},'%'))
 | 
	
		
			
				|  |  |  			</if>
 | 
	
	
		
			
				|  | @@ -1513,7 +1513,7 @@
 | 
	
		
			
				|  |  |  		FROM student_attendance sa
 | 
	
		
			
				|  |  |  		LEFT JOIN course_schedule cs ON cs.id_ = sa.course_schedule_id_
 | 
	
		
			
				|  |  |  		LEFT JOIN sys_user su ON su.id_ = sa.user_id_
 | 
	
		
			
				|  |  | -		WHERE DATE_FORMAT(cs.class_date_,'%Y-%m') >= #{totalMonth} AND sa.status_ = 'LEAVE'
 | 
	
		
			
				|  |  | +		WHERE DATE_FORMAT(cs.class_date_,'%Y-%m') >= #{totalMonth} AND sa.status_ = 'LEAVE' AND cs.pre_course_flag_ = 0
 | 
	
		
			
				|  |  |  		<if test="organId != null">
 | 
	
		
			
				|  |  |  			AND FIND_IN_SET(cs.organ_id_,#{organId})
 | 
	
		
			
				|  |  |  		</if>
 |