|  | @@ -60,6 +60,7 @@
 | 
	
		
			
				|  |  |          <result column="attendance_status_" property="attendanceStatus"
 | 
	
		
			
				|  |  |                  typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
 | 
	
		
			
				|  |  |          <result column="complaint_status_" property="complaintStatus"/>
 | 
	
		
			
				|  |  | +        <result column="student_id_" property="studentId"/>
 | 
	
		
			
				|  |  |      </resultMap>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      <resultMap type="com.ym.mec.biz.dal.entity.StudentCourseScheduleRecordDto" id="studentCourseScheduleRecord">
 | 
	
	
		
			
				|  | @@ -626,30 +627,30 @@
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      <select id="findCourseSchedulesWithDate" resultMap="courseScheduleDto">
 | 
	
		
			
				|  |  |          SELECT
 | 
	
		
			
				|  |  | -            cs.id_ seal_class_id_,
 | 
	
		
			
				|  |  | -            cg.name_,
 | 
	
		
			
				|  |  | -            su.real_name_ teacher_name_,
 | 
	
		
			
				|  |  | -            cs.type_,
 | 
	
		
			
				|  |  | -            cs.id_,
 | 
	
		
			
				|  |  | -            cs.class_group_id_,
 | 
	
		
			
				|  |  | -            cs.class_date_,
 | 
	
		
			
				|  |  | -            CONCAT(cs.class_date_,' ',cs.start_class_time_) start_class_time_,
 | 
	
		
			
				|  |  | -            CONCAT(cs.class_date_,' ',cs.end_class_time_) end_class_time_,
 | 
	
		
			
				|  |  | -            cs.status_,
 | 
	
		
			
				|  |  | -            cs.teacher_id_,
 | 
	
		
			
				|  |  | -            cs.actual_teacher_id_,
 | 
	
		
			
				|  |  | -            cg.expect_student_num_,
 | 
	
		
			
				|  |  | -            cs.schoole_id_,
 | 
	
		
			
				|  |  | -            s.name_ school_name_,
 | 
	
		
			
				|  |  | -            if(ta.sign_in_status_ IS NULL,0,1) sign_in_status_,
 | 
	
		
			
				|  |  | -            if(ta.sign_out_status_ IS NULL,0,1) sign_out_status_,
 | 
	
		
			
				|  |  | -            cs.teach_mode_
 | 
	
		
			
				|  |  | +        cs.id_ seal_class_id_,
 | 
	
		
			
				|  |  | +        cg.name_,
 | 
	
		
			
				|  |  | +        su.real_name_ teacher_name_,
 | 
	
		
			
				|  |  | +        cs.type_,
 | 
	
		
			
				|  |  | +        cs.id_,
 | 
	
		
			
				|  |  | +        cs.class_group_id_,
 | 
	
		
			
				|  |  | +        cs.class_date_,
 | 
	
		
			
				|  |  | +        CONCAT(cs.class_date_,' ',cs.start_class_time_) start_class_time_,
 | 
	
		
			
				|  |  | +        CONCAT(cs.class_date_,' ',cs.end_class_time_) end_class_time_,
 | 
	
		
			
				|  |  | +        cs.status_,
 | 
	
		
			
				|  |  | +        cs.teacher_id_,
 | 
	
		
			
				|  |  | +        cs.actual_teacher_id_,
 | 
	
		
			
				|  |  | +        cg.expect_student_num_,
 | 
	
		
			
				|  |  | +        cs.schoole_id_,
 | 
	
		
			
				|  |  | +        s.name_ school_name_,
 | 
	
		
			
				|  |  | +        if(ta.sign_in_status_ IS NULL,0,1) sign_in_status_,
 | 
	
		
			
				|  |  | +        if(ta.sign_out_status_ IS NULL,0,1) sign_out_status_,
 | 
	
		
			
				|  |  | +        cs.teach_mode_
 | 
	
		
			
				|  |  |          FROM
 | 
	
		
			
				|  |  | -            course_schedule cs
 | 
	
		
			
				|  |  | -            LEFT JOIN sys_user su ON cs.actual_teacher_id_ = su.id_
 | 
	
		
			
				|  |  | -            LEFT JOIN class_group cg ON cs.class_group_id_ = cg.id_
 | 
	
		
			
				|  |  | -            LEFT JOIN school s ON cs.schoole_id_ = s.id_
 | 
	
		
			
				|  |  | -            LEFT JOIN teacher_attendance ta ON cs.id_=ta.course_schedule_id_ AND ta.teacher_id_=#{teacherId}
 | 
	
		
			
				|  |  | +        course_schedule cs
 | 
	
		
			
				|  |  | +        LEFT JOIN sys_user su ON cs.actual_teacher_id_ = su.id_
 | 
	
		
			
				|  |  | +        LEFT JOIN class_group cg ON cs.class_group_id_ = cg.id_
 | 
	
		
			
				|  |  | +        LEFT JOIN school s ON cs.schoole_id_ = s.id_
 | 
	
		
			
				|  |  | +        LEFT JOIN teacher_attendance ta ON cs.id_=ta.course_schedule_id_ AND ta.teacher_id_=#{teacherId}
 | 
	
		
			
				|  |  |          WHERE
 | 
	
		
			
				|  |  |          (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
 | 
	
		
			
				|  |  |          AND (cs.is_lock_=0 OR cs.is_lock_ IS NULL)
 | 
	
	
		
			
				|  | @@ -840,13 +841,13 @@
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      <select id="getTeacherCourseScheduleDate" resultType="java.util.Date">
 | 
	
		
			
				|  |  |          SELECT
 | 
	
		
			
				|  |  | -          cs.class_date_
 | 
	
		
			
				|  |  | +        cs.class_date_
 | 
	
		
			
				|  |  |          FROM
 | 
	
		
			
				|  |  | -          course_schedule_teacher_salary csts
 | 
	
		
			
				|  |  | +        course_schedule_teacher_salary csts
 | 
	
		
			
				|  |  |          LEFT JOIN course_schedule cs ON csts.course_schedule_id_=cs.id_
 | 
	
		
			
				|  |  |          LEFT JOIN class_group cg ON cs.class_group_id_ = cg.id_
 | 
	
		
			
				|  |  |          WHERE
 | 
	
		
			
				|  |  | -          (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
 | 
	
		
			
				|  |  | +        (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}
 | 
	
		
			
				|  |  |          <if test="month==null">
 | 
	
	
		
			
				|  | @@ -863,30 +864,30 @@
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      <select id="findHaveClassesDatesWithMonth" resultType="java.util.Date">
 | 
	
		
			
				|  |  |          SELECT
 | 
	
		
			
				|  |  | -          cs.class_date_
 | 
	
		
			
				|  |  | +        cs.class_date_
 | 
	
		
			
				|  |  |          FROM
 | 
	
		
			
				|  |  | -          course_schedule cs
 | 
	
		
			
				|  |  | +        course_schedule cs
 | 
	
		
			
				|  |  |          LEFT JOIN class_group cg ON cs.class_group_id_ = cg.id_
 | 
	
		
			
				|  |  |          WHERE
 | 
	
		
			
				|  |  | -            (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
 | 
	
		
			
				|  |  | -            AND (cs.is_lock_=0 OR cs.is_lock_ IS NULL)
 | 
	
		
			
				|  |  | -            AND cg.del_flag_ = 0
 | 
	
		
			
				|  |  | -            <if test="teacherId!=null">
 | 
	
		
			
				|  |  | -                AND cs.actual_teacher_id_=#{teacherId}
 | 
	
		
			
				|  |  | -            </if>
 | 
	
		
			
				|  |  | -            <if test="month==null">
 | 
	
		
			
				|  |  | -                AND DATE_FORMAT( NOW(), '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
 | 
	
		
			
				|  |  | -            </if>
 | 
	
		
			
				|  |  | -            <if test="month!=null">
 | 
	
		
			
				|  |  | -                AND DATE_FORMAT( #{month}, '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
 | 
	
		
			
				|  |  | -            </if>
 | 
	
		
			
				|  |  | -            <if test="groupId!=null">
 | 
	
		
			
				|  |  | -                AND cs.music_group_id_=#{groupId}
 | 
	
		
			
				|  |  | -            </if>
 | 
	
		
			
				|  |  | -            <if test="type!=null and type!=''">
 | 
	
		
			
				|  |  | -                AND cs.group_type_ = #{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 | 
	
		
			
				|  |  | -            </if>
 | 
	
		
			
				|  |  | -            GROUP BY cs.class_date_
 | 
	
		
			
				|  |  | +        (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
 | 
	
		
			
				|  |  | +        AND (cs.is_lock_=0 OR cs.is_lock_ IS NULL)
 | 
	
		
			
				|  |  | +        AND cg.del_flag_ = 0
 | 
	
		
			
				|  |  | +        <if test="teacherId!=null">
 | 
	
		
			
				|  |  | +            AND cs.actual_teacher_id_=#{teacherId}
 | 
	
		
			
				|  |  | +        </if>
 | 
	
		
			
				|  |  | +        <if test="month==null">
 | 
	
		
			
				|  |  | +            AND DATE_FORMAT( NOW(), '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
 | 
	
		
			
				|  |  | +        </if>
 | 
	
		
			
				|  |  | +        <if test="month!=null">
 | 
	
		
			
				|  |  | +            AND DATE_FORMAT( #{month}, '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
 | 
	
		
			
				|  |  | +        </if>
 | 
	
		
			
				|  |  | +        <if test="groupId!=null">
 | 
	
		
			
				|  |  | +            AND cs.music_group_id_=#{groupId}
 | 
	
		
			
				|  |  | +        </if>
 | 
	
		
			
				|  |  | +        <if test="type!=null and type!=''">
 | 
	
		
			
				|  |  | +            AND cs.group_type_ = #{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 | 
	
		
			
				|  |  | +        </if>
 | 
	
		
			
				|  |  | +        GROUP BY cs.class_date_
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      <select id="getTeacherHistoryCourseScheduleDate" resultType="java.util.Date">
 | 
	
	
		
			
				|  | @@ -1320,18 +1321,18 @@
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      <select id="findTeacherGroupCourses" resultMap="teacherClassCourseSchedule">
 | 
	
		
			
				|  |  |          SELECT
 | 
	
		
			
				|  |  | -            cs.class_group_id_,
 | 
	
		
			
				|  |  | -            cs.id_ course_schedule_id_,
 | 
	
		
			
				|  |  | -            cs.class_date_,
 | 
	
		
			
				|  |  | -            CONCAT( cs.class_date_, ' ', cs.start_class_time_ ) start_class_time_,
 | 
	
		
			
				|  |  | -            CONCAT( cs.class_date_, ' ', cs.end_class_time_ ) end_class_time_,
 | 
	
		
			
				|  |  | -            cs.name_ course_schedule_name_,
 | 
	
		
			
				|  |  | -            cs.student_num_,
 | 
	
		
			
				|  |  | -            cs.leave_student_num_,
 | 
	
		
			
				|  |  | -            cs.type_,
 | 
	
		
			
				|  |  | -            cs.status_,
 | 
	
		
			
				|  |  | -            cs.actual_teacher_id_,
 | 
	
		
			
				|  |  | -            cs.teach_mode_
 | 
	
		
			
				|  |  | +        cs.class_group_id_,
 | 
	
		
			
				|  |  | +        cs.id_ course_schedule_id_,
 | 
	
		
			
				|  |  | +        cs.class_date_,
 | 
	
		
			
				|  |  | +        CONCAT( cs.class_date_, ' ', cs.start_class_time_ ) start_class_time_,
 | 
	
		
			
				|  |  | +        CONCAT( cs.class_date_, ' ', cs.end_class_time_ ) end_class_time_,
 | 
	
		
			
				|  |  | +        cs.name_ course_schedule_name_,
 | 
	
		
			
				|  |  | +        cs.student_num_,
 | 
	
		
			
				|  |  | +        cs.leave_student_num_,
 | 
	
		
			
				|  |  | +        cs.type_,
 | 
	
		
			
				|  |  | +        cs.status_,
 | 
	
		
			
				|  |  | +        cs.actual_teacher_id_,
 | 
	
		
			
				|  |  | +        cs.teach_mode_
 | 
	
		
			
				|  |  |          FROM course_schedule cs
 | 
	
		
			
				|  |  |          <include refid="teacherGroupCourseQueryCondition"/>
 | 
	
		
			
				|  |  |          ORDER BY CONCAT( cs.class_date_, ' ', cs.start_class_time_ )
 | 
	
	
		
			
				|  | @@ -1340,7 +1341,7 @@
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      <select id="countTeacherGroupCourses" resultType="int">
 | 
	
		
			
				|  |  |          SELECT
 | 
	
		
			
				|  |  | -            COUNT(cs.id_)
 | 
	
		
			
				|  |  | +        COUNT(cs.id_)
 | 
	
		
			
				|  |  |          FROM course_schedule cs
 | 
	
		
			
				|  |  |          <include refid="teacherGroupCourseQueryCondition"/>
 | 
	
		
			
				|  |  |      </select>
 | 
	
	
		
			
				|  | @@ -2444,7 +2445,7 @@
 | 
	
		
			
				|  |  |          FROM course_schedule_teacher_salary csts
 | 
	
		
			
				|  |  |                   LEFT JOIN course_schedule cs ON cs.id_ = csts.course_schedule_id_
 | 
	
		
			
				|  |  |          WHERE (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
 | 
	
		
			
				|  |  | -          AND cs.group_type_!='MUSIC'
 | 
	
		
			
				|  |  | +          AND cs.group_type_ != 'MUSIC'
 | 
	
		
			
				|  |  |            AND cs.class_date_ BETWEEN DATE_FORMAT(#{startTime}, "%Y-%m-%d") AND DATE_FORMAT(#{endTime}, "%Y-%m-%d")
 | 
	
		
			
				|  |  |            AND csts.user_id_ = #{userId}
 | 
	
		
			
				|  |  |      </select>
 | 
	
	
		
			
				|  | @@ -2462,7 +2463,7 @@
 | 
	
		
			
				|  |  |                 cs.teach_mode_,
 | 
	
		
			
				|  |  |                 cs.music_group_id_,
 | 
	
		
			
				|  |  |                 cs.group_type_,
 | 
	
		
			
				|  |  | -               su.real_name_ teacher_name_,
 | 
	
		
			
				|  |  | +               su.real_name_                                     teacher_name_,
 | 
	
		
			
				|  |  |                 pg.create_time_
 | 
	
		
			
				|  |  |          FROM course_schedule_student_payment cssp
 | 
	
		
			
				|  |  |                   LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_
 | 
	
	
		
			
				|  | @@ -2536,8 +2537,8 @@
 | 
	
		
			
				|  |  |          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_)) <= #{continueCourseTime}
 | 
	
		
			
				|  |  | +        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_)) <= #{continueCourseTime}
 | 
	
		
			
				|  |  |            AND cs.teacher_id_ = #{courseSchedule.teacherId}
 | 
	
		
			
				|  |  |            AND cs.class_group_id_ = #{courseSchedule.classGroupId}
 | 
	
		
			
				|  |  |            AND ta.sign_in_time_ IS NULL
 | 
	
	
		
			
				|  | @@ -2548,8 +2549,8 @@
 | 
	
		
			
				|  |  |          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_)) <= #{continueCourseTime}
 | 
	
		
			
				|  |  | +        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_)) <= #{continueCourseTime}
 | 
	
		
			
				|  |  |            AND cs.teacher_id_ = #{courseSchedule.teacherId}
 | 
	
		
			
				|  |  |            AND cs.class_group_id_ = #{courseSchedule.classGroupId}
 | 
	
		
			
				|  |  |          LIMIT 1
 | 
	
	
		
			
				|  | @@ -2739,56 +2740,61 @@
 | 
	
		
			
				|  |  |          )
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |      <select id="findGroupNotStartCourses" resultMap="CourseSchedule">
 | 
	
		
			
				|  |  | -        SELECT
 | 
	
		
			
				|  |  | -            id_,
 | 
	
		
			
				|  |  | -            group_type_,
 | 
	
		
			
				|  |  | -            music_group_id_,
 | 
	
		
			
				|  |  | -            class_group_id_,
 | 
	
		
			
				|  |  | -            status_,
 | 
	
		
			
				|  |  | -            subsidy_,
 | 
	
		
			
				|  |  | -            class_date_,
 | 
	
		
			
				|  |  | -            CONCAT(class_date_, ' ', start_class_time_) start_class_time_,
 | 
	
		
			
				|  |  | -            CONCAT(class_date_, ' ', end_class_time_)   end_class_time_,
 | 
	
		
			
				|  |  | -            teacher_id_,
 | 
	
		
			
				|  |  | -            actual_teacher_id_,
 | 
	
		
			
				|  |  | -            create_time_,
 | 
	
		
			
				|  |  | -            update_time_,
 | 
	
		
			
				|  |  | -            teach_mode_,
 | 
	
		
			
				|  |  | -            type_,
 | 
	
		
			
				|  |  | -            name_,
 | 
	
		
			
				|  |  | -            student_num_,
 | 
	
		
			
				|  |  | -            leave_student_num_,
 | 
	
		
			
				|  |  | -            schoole_id_
 | 
	
		
			
				|  |  | -        FROM course_schedule WHERE group_type_=#{groupType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler} AND music_group_id_ = #{groupId} AND CONCAT(class_date_, ' ', start_class_time_)>NOW()
 | 
	
		
			
				|  |  | +        SELECT id_,
 | 
	
		
			
				|  |  | +               group_type_,
 | 
	
		
			
				|  |  | +               music_group_id_,
 | 
	
		
			
				|  |  | +               class_group_id_,
 | 
	
		
			
				|  |  | +               status_,
 | 
	
		
			
				|  |  | +               subsidy_,
 | 
	
		
			
				|  |  | +               class_date_,
 | 
	
		
			
				|  |  | +               CONCAT(class_date_, ' ', start_class_time_) start_class_time_,
 | 
	
		
			
				|  |  | +               CONCAT(class_date_, ' ', end_class_time_)   end_class_time_,
 | 
	
		
			
				|  |  | +               teacher_id_,
 | 
	
		
			
				|  |  | +               actual_teacher_id_,
 | 
	
		
			
				|  |  | +               create_time_,
 | 
	
		
			
				|  |  | +               update_time_,
 | 
	
		
			
				|  |  | +               teach_mode_,
 | 
	
		
			
				|  |  | +               type_,
 | 
	
		
			
				|  |  | +               name_,
 | 
	
		
			
				|  |  | +               student_num_,
 | 
	
		
			
				|  |  | +               leave_student_num_,
 | 
	
		
			
				|  |  | +               schoole_id_
 | 
	
		
			
				|  |  | +        FROM course_schedule
 | 
	
		
			
				|  |  | +        WHERE group_type_ = #{groupType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 | 
	
		
			
				|  |  | +          AND music_group_id_ = #{groupId}
 | 
	
		
			
				|  |  | +          AND CONCAT(class_date_, ' ', start_class_time_) > NOW()
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      <select id="findGroupNotFinishCourses" resultMap="CourseSchedule">
 | 
	
		
			
				|  |  | -        SELECT
 | 
	
		
			
				|  |  | -            id_,
 | 
	
		
			
				|  |  | -            group_type_,
 | 
	
		
			
				|  |  | -            music_group_id_,
 | 
	
		
			
				|  |  | -            class_group_id_,
 | 
	
		
			
				|  |  | -            status_,
 | 
	
		
			
				|  |  | -            subsidy_,
 | 
	
		
			
				|  |  | -            class_date_,
 | 
	
		
			
				|  |  | -            CONCAT(class_date_, ' ', start_class_time_) start_class_time_,
 | 
	
		
			
				|  |  | -            CONCAT(class_date_, ' ', end_class_time_)   end_class_time_,
 | 
	
		
			
				|  |  | -            teacher_id_,
 | 
	
		
			
				|  |  | -            actual_teacher_id_,
 | 
	
		
			
				|  |  | -            create_time_,
 | 
	
		
			
				|  |  | -            update_time_,
 | 
	
		
			
				|  |  | -            teach_mode_,
 | 
	
		
			
				|  |  | -            type_,
 | 
	
		
			
				|  |  | -            name_,
 | 
	
		
			
				|  |  | -            student_num_,
 | 
	
		
			
				|  |  | -            leave_student_num_,
 | 
	
		
			
				|  |  | -            schoole_id_
 | 
	
		
			
				|  |  | -        FROM course_schedule WHERE group_type_=#{groupType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler} AND music_group_id_ = #{groupId} AND CONCAT(class_date_, ' ', end_class_time_)>NOW()
 | 
	
		
			
				|  |  | +        SELECT id_,
 | 
	
		
			
				|  |  | +               group_type_,
 | 
	
		
			
				|  |  | +               music_group_id_,
 | 
	
		
			
				|  |  | +               class_group_id_,
 | 
	
		
			
				|  |  | +               status_,
 | 
	
		
			
				|  |  | +               subsidy_,
 | 
	
		
			
				|  |  | +               class_date_,
 | 
	
		
			
				|  |  | +               CONCAT(class_date_, ' ', start_class_time_) start_class_time_,
 | 
	
		
			
				|  |  | +               CONCAT(class_date_, ' ', end_class_time_)   end_class_time_,
 | 
	
		
			
				|  |  | +               teacher_id_,
 | 
	
		
			
				|  |  | +               actual_teacher_id_,
 | 
	
		
			
				|  |  | +               create_time_,
 | 
	
		
			
				|  |  | +               update_time_,
 | 
	
		
			
				|  |  | +               teach_mode_,
 | 
	
		
			
				|  |  | +               type_,
 | 
	
		
			
				|  |  | +               name_,
 | 
	
		
			
				|  |  | +               student_num_,
 | 
	
		
			
				|  |  | +               leave_student_num_,
 | 
	
		
			
				|  |  | +               schoole_id_
 | 
	
		
			
				|  |  | +        FROM course_schedule
 | 
	
		
			
				|  |  | +        WHERE group_type_ = #{groupType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 | 
	
		
			
				|  |  | +          AND music_group_id_ = #{groupId}
 | 
	
		
			
				|  |  | +          AND CONCAT(class_date_, ' ', end_class_time_) > NOW()
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |      <select id="getSubjectNameById" resultType="java.lang.String">
 | 
	
		
			
				|  |  | -        SELECT GROUP_CONCAT(DISTINCT s.name_) FROM course_schedule cs
 | 
	
		
			
				|  |  | -        LEFT JOIN class_group cg ON cs.class_group_id_ = cg.id_
 | 
	
		
			
				|  |  | -        LEFT JOIN `subject` s ON FIND_IN_SET(s.id_,cg.subject_id_list_)
 | 
	
		
			
				|  |  | +        SELECT GROUP_CONCAT(DISTINCT s.name_)
 | 
	
		
			
				|  |  | +        FROM course_schedule cs
 | 
	
		
			
				|  |  | +                 LEFT JOIN class_group cg ON cs.class_group_id_ = cg.id_
 | 
	
		
			
				|  |  | +                 LEFT JOIN `subject` s ON FIND_IN_SET(s.id_, cg.subject_id_list_)
 | 
	
		
			
				|  |  |          WHERE cs.id_ = #{courseScheduleId}
 | 
	
		
			
				|  |  |          GROUP BY cg.id_
 | 
	
		
			
				|  |  |      </select>
 | 
	
	
		
			
				|  | @@ -2802,18 +2808,28 @@
 | 
	
		
			
				|  |  |          <result property="courseScheduleId" column="id_"/>
 | 
	
		
			
				|  |  |      </resultMap>
 | 
	
		
			
				|  |  |      <select id="findCourseRate" resultMap="CourseScheduleRateDtoMap">
 | 
	
		
			
				|  |  | -        SELECT cs.class_date_,cs.start_class_time_,cs.end_class_time_,cs.id_,
 | 
	
		
			
				|  |  | -        cs.teaching_content_,GROUP_CONCAT(cse.comment_ SEPARATOR ";") comment_,cs.status_
 | 
	
		
			
				|  |  | +        SELECT cs.class_date_,
 | 
	
		
			
				|  |  | +               cs.start_class_time_,
 | 
	
		
			
				|  |  | +               cs.end_class_time_,
 | 
	
		
			
				|  |  | +               cs.id_,
 | 
	
		
			
				|  |  | +               cs.teaching_content_,
 | 
	
		
			
				|  |  | +               GROUP_CONCAT(cse.comment_ SEPARATOR ";") comment_,
 | 
	
		
			
				|  |  | +               cs.status_
 | 
	
		
			
				|  |  |          FROM course_schedule cs
 | 
	
		
			
				|  |  | -        LEFT JOIN course_schedule_evaluate cse ON cs.id_ = cse.course_schedule_id_
 | 
	
		
			
				|  |  | -        WHERE cs.music_group_id_ = #{groupId} AND cs.group_type_ = #{groupType}
 | 
	
		
			
				|  |  | +                 LEFT JOIN course_schedule_evaluate cse ON cs.id_ = cse.course_schedule_id_
 | 
	
		
			
				|  |  | +        WHERE cs.music_group_id_ = #{groupId}
 | 
	
		
			
				|  |  | +          AND cs.group_type_ = #{groupType}
 | 
	
		
			
				|  |  |          GROUP BY cs.id_
 | 
	
		
			
				|  |  | -        ORDER BY cs.class_date_,cs.start_class_time_ ASC
 | 
	
		
			
				|  |  | +        ORDER BY cs.class_date_, cs.start_class_time_ ASC
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |      <select id="getLastEndCourse" resultMap="CourseSchedule">
 | 
	
		
			
				|  |  | -        SELECT cs.id_ 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_)
 | 
	
		
			
				|  |  | -        ORDER BY cs.class_date_,cs.end_class_time_ ASC LIMIT 1
 | 
	
		
			
				|  |  | +        SELECT cs.id_
 | 
	
		
			
				|  |  | +        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_)
 | 
	
		
			
				|  |  | +        ORDER BY cs.class_date_, cs.end_class_time_ ASC
 | 
	
		
			
				|  |  | +        LIMIT 1
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      <resultMap id="GroupCourseTimesDto" type="com.ym.mec.biz.dal.dto.GroupCourseTimesDto">
 | 
	
	
		
			
				|  | @@ -2827,37 +2843,38 @@
 | 
	
		
			
				|  |  |      </resultMap>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      <select id="findGroupsCourseTimesInfo" resultMap="GroupCourseTimesDto">
 | 
	
		
			
				|  |  | -       SELECT
 | 
	
		
			
				|  |  | -            cg.music_group_id_ group_id_,
 | 
	
		
			
				|  |  | -            cg.group_type_,
 | 
	
		
			
				|  |  | -            cg.id_ class_group_id_,
 | 
	
		
			
				|  |  | -            cg.total_class_times_ total_course_times_,
 | 
	
		
			
				|  |  | -            COUNT( cs.id_ ) surplus_class_times_,
 | 
	
		
			
				|  |  | -            MIN( CONCAT( class_date_, ' ', start_class_time_ ) ) start_date_,
 | 
	
		
			
				|  |  | -            MAX( CONCAT( class_date_, ' ', end_class_time_ ) ) end_date_
 | 
	
		
			
				|  |  | +        SELECT
 | 
	
		
			
				|  |  | +        cg.music_group_id_ group_id_,
 | 
	
		
			
				|  |  | +        cg.group_type_,
 | 
	
		
			
				|  |  | +        cg.id_ class_group_id_,
 | 
	
		
			
				|  |  | +        cg.total_class_times_ total_course_times_,
 | 
	
		
			
				|  |  | +        COUNT( cs.id_ ) surplus_class_times_,
 | 
	
		
			
				|  |  | +        MIN( CONCAT( class_date_, ' ', start_class_time_ ) ) start_date_,
 | 
	
		
			
				|  |  | +        MAX( CONCAT( class_date_, ' ', end_class_time_ ) ) end_date_
 | 
	
		
			
				|  |  |          FROM
 | 
	
		
			
				|  |  | -            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( )
 | 
	
		
			
				|  |  | +        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
 | 
	
		
			
				|  |  | -            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>
 | 
	
		
			
				|  |  | +        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_
 | 
	
		
			
				|  |  | +        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
 | 
	
		
			
				|  |  | +        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
 | 
	
		
			
				|  |  | +        course_schedule cs
 | 
	
		
			
				|  |  |          WHERE
 | 
	
		
			
				|  |  | -          cs.group_type_ = #{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 | 
	
		
			
				|  |  | -          AND cs.music_group_id_ IN
 | 
	
		
			
				|  |  | +        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>
 | 
	
	
		
			
				|  | @@ -2865,20 +2882,77 @@
 | 
	
		
			
				|  |  |          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
 | 
	
		
			
				|  |  | +        SELECT *
 | 
	
		
			
				|  |  | +        FROM course_schedule cs
 | 
	
		
			
				|  |  | +        WHERE cs.music_group_id_ = #{groupId}
 | 
	
		
			
				|  |  | +          AND cs.group_type_ = #{groupType}
 | 
	
		
			
				|  |  | +          AND cs.del_flag_ = 0
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |      <select id="queryScheduleByAttendance" resultMap="CourseSchedule">
 | 
	
		
			
				|  |  | -        SELECT cs.* FROM teacher_attendance ta
 | 
	
		
			
				|  |  | -        LEFT JOIN course_schedule cs ON ta.course_schedule_id_ = cs.id_
 | 
	
		
			
				|  |  | -        LEFT JOIN student_attendance sa ON ta.course_schedule_id_ = sa.course_schedule_id_
 | 
	
		
			
				|  |  | -        WHERE ta.sign_out_status_ = 1 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_
 | 
	
		
			
				|  |  | +        SELECT cs.*
 | 
	
		
			
				|  |  | +        FROM teacher_attendance ta
 | 
	
		
			
				|  |  | +                 LEFT JOIN course_schedule cs ON ta.course_schedule_id_ = cs.id_
 | 
	
		
			
				|  |  | +                 LEFT JOIN student_attendance sa ON ta.course_schedule_id_ = sa.course_schedule_id_
 | 
	
		
			
				|  |  | +        WHERE ta.sign_out_status_ = 1
 | 
	
		
			
				|  |  | +          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_
 | 
	
		
			
				|  |  |          GROUP BY ta.course_schedule_id_
 | 
	
		
			
				|  |  |          HAVING COUNT(sa.id_) > 0
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      <update id="updateCourseNameByGroup">
 | 
	
		
			
				|  |  | -        UPDATE course_schedule SET name_=#{name} WHERE group_type_=#{groupType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler} AND music_group_id_ = #{groupId};
 | 
	
		
			
				|  |  | +        UPDATE course_schedule
 | 
	
		
			
				|  |  | +        SET name_=#{name}
 | 
	
		
			
				|  |  | +        WHERE group_type_ = #{groupType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 | 
	
		
			
				|  |  | +          AND music_group_id_ = #{groupId};
 | 
	
		
			
				|  |  |      </update>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    <select id="getStudentCourseSchedules" resultMap="courseScheduleDto">
 | 
	
		
			
				|  |  | +        SELECT cs.id_,concat(cs.`class_date_`,' ',cs.`start_class_time_` ) start_class_time_,cs.actual_teacher_id_, su.real_name_
 | 
	
		
			
				|  |  | +        teacher_name_,cgsm.user_id_ student_id_
 | 
	
		
			
				|  |  | +        FROM course_schedule cs
 | 
	
		
			
				|  |  | +        LEFT JOIN sys_user su on cs.actual_teacher_id_ = su.id_
 | 
	
		
			
				|  |  | +        LEFT JOIN class_group_student_mapper cgsm on cs.class_group_id_ = cgsm.class_group_id_
 | 
	
		
			
				|  |  | +        WHERE cgsm.user_id_ IN
 | 
	
		
			
				|  |  | +        <foreach collection="studentIds" separator="," open="(" close=")" item="studentId">
 | 
	
		
			
				|  |  | +            #{studentId}
 | 
	
		
			
				|  |  | +        </foreach>
 | 
	
		
			
				|  |  | +        AND cs.group_type_ = #{groupType}
 | 
	
		
			
				|  |  | +        AND (cs.del_flag_ IS NULL OR cs.del_flag_ =0)
 | 
	
		
			
				|  |  | +        ORDER BY cs.class_date_ DESC ,cs.start_class_time_ DESC
 | 
	
		
			
				|  |  | +    </select>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    <select id="getStudentCourseScheduleNum" resultMap="com.ym.mec.biz.dal.dao.PracticeGroupDao.courseGroupExport">
 | 
	
		
			
				|  |  | +        SELECT COUNT(*) total_class_times_,cgsm.user_id_ student_id_
 | 
	
		
			
				|  |  | +        FROM course_schedule cs
 | 
	
		
			
				|  |  | +        LEFT JOIN class_group_student_mapper cgsm on cs.class_group_id_ = cgsm.class_group_id_
 | 
	
		
			
				|  |  | +        WHERE cgsm.user_id_ IN
 | 
	
		
			
				|  |  | +        <foreach collection="studentIds" separator="," open="(" close=")" item="studentId">
 | 
	
		
			
				|  |  | +            #{studentId}
 | 
	
		
			
				|  |  | +        </foreach>
 | 
	
		
			
				|  |  | +        AND cs.group_type_ = #{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 | 
	
		
			
				|  |  | +        <if test="status != null">
 | 
	
		
			
				|  |  | +            AND cs.status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 | 
	
		
			
				|  |  | +        </if>
 | 
	
		
			
				|  |  | +        AND (cs.del_flag_ IS NULL OR cs.del_flag_ =0)
 | 
	
		
			
				|  |  | +        GROUP BY cgsm.user_id_
 | 
	
		
			
				|  |  | +    </select>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    <select id="getVipGroupExport" resultMap="com.ym.mec.biz.dal.dao.PracticeGroupDao.courseGroupExport">
 | 
	
		
			
				|  |  | +        SELECT cssp.user_id_ student_id_,
 | 
	
		
			
				|  |  | +        su.username_ student_name_,
 | 
	
		
			
				|  |  | +        o.name_ organ_name_
 | 
	
		
			
				|  |  | +        FROM `course_schedule_student_payment` cssp
 | 
	
		
			
				|  |  | +                 LEFT JOIN `vip_group` vg ON vg.`id_` = cssp.`music_group_id_` AND cssp.`group_type_` = 'VIP'
 | 
	
		
			
				|  |  | +                 LEFT JOIN `organization` o ON o.`id_` = vg.`organ_id_`
 | 
	
		
			
				|  |  | +                 LEFT JOIN `sys_user` su ON su.`id_` = cssp.`user_id_`
 | 
	
		
			
				|  |  | +        WHERE cssp.`group_type_` = 'VIP'
 | 
	
		
			
				|  |  | +        <if test="organIds != null and organIds != ''">
 | 
	
		
			
				|  |  | +            AND FIND_IN_SET(vg.organ_id_, #{organIds})
 | 
	
		
			
				|  |  | +        </if>
 | 
	
		
			
				|  |  | +        GROUP BY cssp.`user_id_`,o.id_
 | 
	
		
			
				|  |  | +    </select>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  </mapper>
 |