|  | @@ -518,10 +518,10 @@
 | 
	
		
			
				|  |  |          SELECT
 | 
	
		
			
				|  |  |              DISTINCT su.id_ userId,su.username_ userName, su.avatar_ avatar, su.phone_ phone
 | 
	
		
			
				|  |  |          FROM
 | 
	
		
			
				|  |  | -            practice_group pg
 | 
	
		
			
				|  |  | -            LEFT JOIN sys_user su ON pg.student_id_ = su.id_
 | 
	
		
			
				|  |  | +            sys_user su
 | 
	
		
			
				|  |  |          WHERE
 | 
	
		
			
				|  |  | -            pg.type_ IN ('FREE', 'TRIAL')
 | 
	
		
			
				|  |  | +            1=1
 | 
	
		
			
				|  |  | +			AND FIND_IN_SET('STUDENT',su.user_type_)
 | 
	
		
			
				|  |  |              <if test="organIdList!=null">
 | 
	
		
			
				|  |  |                  AND su.organ_id_ IN
 | 
	
		
			
				|  |  |                  <foreach collection="organIdList" item="organId" open="(" close=")" separator=",">
 | 
	
	
		
			
				|  | @@ -531,11 +531,11 @@
 | 
	
		
			
				|  |  |              <if test="search != null">
 | 
	
		
			
				|  |  |                  AND (su.username_ LIKE CONCAT('%', #{search}, '%') OR su.phone_ LIKE CONCAT('%', #{search}, '%'))
 | 
	
		
			
				|  |  |              </if>
 | 
	
		
			
				|  |  | -            AND pg.student_id_ NOT IN (
 | 
	
		
			
				|  |  | -                SELECT student_id_ FROM practice_group WHERE type_='CHARGE'
 | 
	
		
			
				|  |  | +            AND su.id_ NOT IN (
 | 
	
		
			
				|  |  | +                SELECT student_id_ FROM practice_group WHERE type_='CHARGE' AND group_status_ IN ('NORMAL', 'FINISH')
 | 
	
		
			
				|  |  |              )
 | 
	
		
			
				|  |  |              AND NOT EXISTS (
 | 
	
		
			
				|  |  | -                SELECT user_id_ FROM course_schedule_student_payment cssp LEFT JOIN course_schedule cs ON cs.id_=cssp.course_schedule_id_ WHERE cssp.user_id_=pg.student_id_ AND cs.teach_mode_='ONLINE' AND CONCAT(cs.class_date_, ' ', cs.start_class_time_) > NOW()
 | 
	
		
			
				|  |  | +                SELECT user_id_ FROM course_schedule_student_payment cssp LEFT JOIN course_schedule cs ON cs.id_=cssp.course_schedule_id_ WHERE cssp.user_id_=su.id_ AND cs.teach_mode_='ONLINE' AND CONCAT(cs.class_date_, ' ', cs.start_class_time_) > NOW()
 | 
	
		
			
				|  |  |              )
 | 
	
		
			
				|  |  |          <include refid="global.limit"/>
 | 
	
		
			
				|  |  |      </select>
 | 
	
	
		
			
				|  | @@ -543,10 +543,10 @@
 | 
	
		
			
				|  |  |          SELECT
 | 
	
		
			
				|  |  |              COUNT(DISTINCT su.id_)
 | 
	
		
			
				|  |  |          FROM
 | 
	
		
			
				|  |  | -            practice_group pg
 | 
	
		
			
				|  |  | -            LEFT JOIN sys_user su ON pg.student_id_ = su.id_
 | 
	
		
			
				|  |  | +            sys_user su
 | 
	
		
			
				|  |  |          WHERE
 | 
	
		
			
				|  |  | -            pg.type_ IN ('FREE', 'TRIAL')
 | 
	
		
			
				|  |  | +            1=1
 | 
	
		
			
				|  |  | +			AND FIND_IN_SET('STUDENT',su.user_type_)
 | 
	
		
			
				|  |  |              <if test="organIdList!=null">
 | 
	
		
			
				|  |  |              AND su.organ_id_ IN
 | 
	
		
			
				|  |  |                  <foreach collection="organIdList" item="organId" open="(" close=")" separator=",">
 | 
	
	
		
			
				|  | @@ -556,11 +556,11 @@
 | 
	
		
			
				|  |  |              <if test="search != null">
 | 
	
		
			
				|  |  |                  AND (su.username_ LIKE CONCAT('%', #{search}, '%') OR su.phone_ LIKE CONCAT('%', #{search}, '%'))
 | 
	
		
			
				|  |  |              </if>
 | 
	
		
			
				|  |  | -            AND pg.student_id_ NOT IN (
 | 
	
		
			
				|  |  | -                SELECT student_id_ FROM practice_group WHERE type_='CHARGE'
 | 
	
		
			
				|  |  | +            AND su.id_ NOT IN (
 | 
	
		
			
				|  |  | +                SELECT student_id_ FROM practice_group WHERE type_='CHARGE' AND group_status_ IN ('NORMAL', 'FINISH')
 | 
	
		
			
				|  |  |              )
 | 
	
		
			
				|  |  |              AND NOT EXISTS (
 | 
	
		
			
				|  |  | -                SELECT user_id_ FROM course_schedule_student_payment cssp LEFT JOIN course_schedule cs ON cs.id_=cssp.course_schedule_id_ WHERE cssp.user_id_=pg.student_id_ AND cs.teach_mode_='ONLINE' AND CONCAT(cs.class_date_, ' ', cs.start_class_time_) > NOW()
 | 
	
		
			
				|  |  | +                SELECT user_id_ FROM course_schedule_student_payment cssp LEFT JOIN course_schedule cs ON cs.id_=cssp.course_schedule_id_ WHERE cssp.user_id_=su.id_ AND cs.teach_mode_='ONLINE' AND CONCAT(cs.class_date_, ' ', cs.start_class_time_) > NOW()
 | 
	
		
			
				|  |  |              )
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |      <select id="findEnableAssignTeachers" resultType="com.ym.mec.biz.dal.dto.SimpleUserDto">
 | 
	
	
		
			
				|  | @@ -570,7 +570,17 @@
 | 
	
		
			
				|  |  |          WHERE
 | 
	
		
			
				|  |  |              FIND_IN_SET(#{subjectId}, t.subject_id_)
 | 
	
		
			
				|  |  |              AND (t.organ_id_ = #{studentOrganId} OR FIND_IN_SET(#{studentOrganId},t.flow_organ_range_))
 | 
	
		
			
				|  |  | -            AND NOT EXISTS (SELECT user_id_ FROM practice_group WHERE student_id_=#{studentId} AND t.id_=user_id_ AND type_='TRIAL')
 | 
	
		
			
				|  |  | +            AND NOT EXISTS (SELECT
 | 
	
		
			
				|  |  | +                cs.actual_teacher_id_
 | 
	
		
			
				|  |  | +            FROM
 | 
	
		
			
				|  |  | +                course_schedule_student_payment cssp
 | 
	
		
			
				|  |  | +                LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_
 | 
	
		
			
				|  |  | +		        LEFT JOIN practice_group pg ON cssp.music_group_id_=pg.id_
 | 
	
		
			
				|  |  | +            WHERE
 | 
	
		
			
				|  |  | +                cssp.user_id_ = #{studentId}
 | 
	
		
			
				|  |  | +                AND cs.actual_teacher_id_ = t.id_
 | 
	
		
			
				|  |  | +		        AND pg.type_='TRIAL'
 | 
	
		
			
				|  |  | +                AND cssp.group_type_ = 'PRACTICE')
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      <select id="findLastPracticeSubject" resultType="int">
 | 
	
	
		
			
				|  | @@ -601,11 +611,13 @@
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |      <select id="countStudentTrialPractices" resultType="int">
 | 
	
		
			
				|  |  |          SELECT
 | 
	
		
			
				|  |  | -            COUNT(pg.id_)
 | 
	
		
			
				|  |  | +            COUNT( DISTINCT pg.id_ )
 | 
	
		
			
				|  |  |          FROM
 | 
	
		
			
				|  |  | -            practice_group pg
 | 
	
		
			
				|  |  | +            course_schedule cs
 | 
	
		
			
				|  |  | +            LEFT JOIN practice_group pg ON pg.id_ = cs.music_group_id_
 | 
	
		
			
				|  |  |          WHERE
 | 
	
		
			
				|  |  |              pg.student_id_ = #{studentId}
 | 
	
		
			
				|  |  | +            AND cs.group_type_ = 'PRACTICE'
 | 
	
		
			
				|  |  |              AND pg.type_ = 'TRIAL'
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  |      <select id="findStudentAndTeacherTrialPractices" resultMap="com.ym.mec.biz.dal.dao.CourseScheduleDao.CourseSchedule">
 |