| 
					
				 | 
			
			
				@@ -133,4 +133,111 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			WHERE user_id_ = #{item.userId} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         </foreach> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	</update> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	<resultMap id="student4operating" type="com.ym.mec.biz.dal.dto.Student4operating"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		<result column="organ_name_" property="organName"/> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		<result column="organ_id_" property="organId"/> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		<result column="student_name_" property="studentName"/> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		<result column="student_id_" property="studentId"/> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		<result column="teacher_id_" property="teacherId"/> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		<result column="teacher_name_" property="teacherName"/> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		<result column="operating_tag_" property="operatingTag"/> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		<result column="vip_times_" property="vipTimes"/> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		<result column="free_practice_times_" property="freePracticeTimes"/> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		<result column="buy_practice_times_" property="buyPracticeTimes"/> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	</resultMap> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	<select id="getOperatingStudents" resultMap="student4operating"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		SELECT su.organ_id_, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		o.name_ organ_name_, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		su.username_   student_name_, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		s.user_id_     student_id_, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		tsu.id_        teacher_id_, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		tsu.real_name_ teacher_name_, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		s.operating_tag_, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		a.vip_times_, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		a.buy_practice_times_, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		p.free_practice_times_ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		FROM student s 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		LEFT JOIN sys_user su ON s.user_id_ = su.id_ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		LEFT JOIN sys_user tsu ON tsu.id_ = s.teacher_id_ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		LEFT JOIN organization o ON o.id_ = su.organ_id_ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		LEFT JOIN ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		SELECT s.user_id_, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		SUM(case when (cs.group_type_ = 'VIP') then 1 ELSE 0 END) vip_times_, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		SUM(case when (pg.buy_months_ > 0) then 1 ELSE 0 END)     buy_practice_times_ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		FROM student s 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		LEFT JOIN course_schedule_student_payment cssp ON cssp.user_id_ = s.user_id_ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		LEFT JOIN practice_group pg ON pg.`id_` = cs.`music_group_id_` AND cs.`group_type_` = 'PRACTICE' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		WHERE cs.status_ = 'NOT_START' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		GROUP BY s.user_id_ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		) a on a.user_id_ = s.user_id_ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		LEFT JOIN ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		SELECT student_id_, count(id_) free_practice_times_ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		FROM practice_group 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		WHERE buy_months_ IS NULL 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		GROUP BY student_id_ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		) p ON p.student_id_ = s.user_id_ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		<include refid="student4OperatingQueryCondition"/> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		ORDER BY s.user_id_ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		<include refid="global.limit"/> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	</select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	<select id="countOperatingStudents" resultType="int"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		SELECT COUNT(s.user_id_) FROM student s 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		LEFT JOIN sys_user su ON s.user_id_ = su.id_ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		LEFT JOIN sys_user tsu ON tsu.id_ = s.teacher_id_ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		LEFT JOIN ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		SELECT s.user_id_, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		SUM(case when (cs.group_type_ = 'VIP') then 1 ELSE 0 END) vip_times_, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		SUM(case when (pg.buy_months_ > 0) then 1 ELSE 0 END)     buy_practice_times_ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		FROM student s 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		LEFT JOIN course_schedule_student_payment cssp ON cssp.user_id_ = s.user_id_ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		LEFT JOIN practice_group pg ON pg.`id_` = cs.`music_group_id_` AND cs.`group_type_` = 'PRACTICE' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		WHERE cs.status_ = 'NOT_START' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		GROUP BY s.user_id_ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		) a on a.user_id_ = s.user_id_ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		LEFT JOIN ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		SELECT student_id_, count(id_) free_practice_times_ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		FROM practice_group 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		WHERE buy_months_ IS NULL 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		GROUP BY student_id_ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		) p ON p.student_id_ = s.user_id_ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		<include refid="student4OperatingQueryCondition"/> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	</select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	<sql id="student4OperatingQueryCondition"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		<where> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			<if test="organId != null and organId != ''"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				AND FIND_IN_SET(su.organ_id_,#{organId}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			</if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			<if test="teacherId!=null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				AND s.teacher_id_ = #{teacherId} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			</if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			<if test="operatingTag !=null"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				AND s.operating_tag_ = #{operatingTag} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			</if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			<if test='hasVip != null and hasVip.toString()=="1".toString()'> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				AND a.vip_times_ >=1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			</if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			<if test='hasVip != null and hasVip.toString()=="0".toString()'> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				AND (a.vip_times_ =0 OR a.vip_times_ IS NULL) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			</if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			<if test='HasFreePractice != null and HasFreePractice.toString()=="1".toString()'> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				AND p.free_practice_times_ >=1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			</if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			<if test='HasFreePractice != null and HasFreePractice.toString()=="0".toString()'> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				AND (p.free_practice_times_ =0 OR p.free_practice_times_ IS NULL) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			</if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			<if test='HasBuyPractice != null and HasBuyPractice.toString()=="1".toString()'> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				AND a.buy_practice_times_ >=1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			</if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			<if test='HasBuyPractice != null and HasBuyPractice.toString()=="0".toString()'> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				AND (a.buy_practice_times_ =0 OR a.buy_practice_times_ IS NULL) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			</if> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		</where> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	</sql> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 </mapper> 
			 |