|
@@ -188,6 +188,27 @@
|
|
|
<select id="queryPage" resultMap="StudentStatistics" parameterType="map">
|
|
|
SELECT * FROM student_statistics ORDER BY id_ <include refid="global.limit"/>
|
|
|
</select>
|
|
|
+ <update id="updateTeacherAndEdu">
|
|
|
+ SELECT updateTeacherAndEdu()
|
|
|
+ </update>
|
|
|
+ <update id="updateCourseNum">
|
|
|
+ SELECT updateCourseNum()
|
|
|
+ </update>
|
|
|
+ <update id="updateNoCourseNum">
|
|
|
+ SELECT updateNoCourseNum()
|
|
|
+ </update>
|
|
|
+ <update id="updateNotStartCourseFee">
|
|
|
+ SELECT updateNotStartCourseFee()
|
|
|
+ </update>
|
|
|
+ <update id="updateNoCourseFee">
|
|
|
+ SELECT updateNoCourseFee()
|
|
|
+ </update>
|
|
|
+ <update id="updateFirstAndLastCourseTime">
|
|
|
+ SELECT updateFirstAndLastCourseTime()
|
|
|
+ </update>
|
|
|
+ <update id="updateNormalGroupNum">
|
|
|
+ SELECT updateNormalGroupNum()
|
|
|
+ </update>
|
|
|
|
|
|
<!-- 查询当前表的总记录数 -->
|
|
|
<select id="queryCount" resultType="int">
|
|
@@ -427,243 +448,6 @@
|
|
|
<select id="queryDirectorList" resultType="java.lang.Integer">
|
|
|
SELECT DISTINCT music_director_id_ FROM student_statistics WHERE group_type_ = #{groupType} AND music_director_id_ IS NOT NULL
|
|
|
</select>
|
|
|
- <select id="queryStatisticsTeacherAndEdu" resultMap="com.ym.mec.biz.dal.dao.StudentStatisticsDao.StudentStatistics">
|
|
|
- SELECT et.user_id_,et.actual_teacher_id_ teacher_id_,su.real_name_ teacher_name_,et.educational_teacher_id_ music_director_id_,su1.real_name_ music_director_name_,'PRACTICE' group_type_
|
|
|
- FROM ( SELECT cs.actual_teacher_id_,ct.user_id_,pg.educational_teacher_id_ FROM course_schedule_student_payment cssp
|
|
|
- LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_
|
|
|
- LEFT JOIN (SELECT cssp.user_id_,MAX(cs.class_date_) class_date_ FROM course_schedule_student_payment cssp
|
|
|
- LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_
|
|
|
- WHERE cs.status_ = 'OVER' AND cssp.group_type_ = 'PRACTICE'
|
|
|
- GROUP BY cssp.user_id_) ct ON ct.user_id_ = cssp.user_id_
|
|
|
- LEFT JOIN practice_group pg ON pg.id_ = cssp.music_group_id_
|
|
|
- WHERE cs.class_date_ = ct.class_date_ AND cs.status_ = 'OVER' AND cssp.group_type_ = 'PRACTICE'
|
|
|
- GROUP BY ct.user_id_) et
|
|
|
- LEFT JOIN sys_user su ON su.id_ = et.actual_teacher_id_
|
|
|
- LEFT JOIN sys_user su1 ON su1.id_ = et.educational_teacher_id_
|
|
|
- GROUP BY et.user_id_
|
|
|
- UNION ALL
|
|
|
- SELECT et.user_id_,et.actual_teacher_id_ teacher_id_,su.real_name_ teacher_name_,et.educational_teacher_id_ music_director_id_,su1.real_name_ music_director_name_,'THEORY' group_type_
|
|
|
- FROM (SELECT cs.actual_teacher_id_,ct.user_id_,vg.educational_teacher_id_ FROM course_schedule_student_payment cssp
|
|
|
- LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_
|
|
|
- LEFT JOIN (SELECT cssp.user_id_,MAX(cs.class_date_) class_date_ FROM course_schedule_student_payment cssp
|
|
|
- LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_
|
|
|
- LEFT JOIN vip_group vg ON vg.id_ = cssp.music_group_id_
|
|
|
- LEFT JOIN vip_group_category vgc ON vgc.id_ = vg.vip_group_category_id_
|
|
|
- WHERE vgc.name_ = '乐理课' AND cs.status_ = 'OVER' AND cssp.group_type_ = 'VIP'
|
|
|
- GROUP BY cssp.user_id_) ct ON ct.user_id_ = cssp.user_id_
|
|
|
- LEFT JOIN vip_group vg ON vg.id_ = cssp.music_group_id_
|
|
|
- LEFT JOIN vip_group_category vgc ON vgc.id_ = vg.vip_group_category_id_
|
|
|
- WHERE vgc.name_ = '乐理课' AND cs.class_date_ = ct.class_date_ AND cs.status_ = 'OVER' AND cssp.group_type_ = 'VIP'
|
|
|
- GROUP BY ct.user_id_) et
|
|
|
- LEFT JOIN sys_user su ON su.id_ = et.actual_teacher_id_
|
|
|
- LEFT JOIN sys_user su1 ON su1.id_ = et.educational_teacher_id_
|
|
|
- GROUP BY et.user_id_
|
|
|
- UNION ALL
|
|
|
- SELECT et.user_id_,et.actual_teacher_id_ teacher_id_,su.real_name_ teacher_name_,et.educational_teacher_id_ music_director_id_,su1.real_name_ music_director_name_,'VIP' group_type_
|
|
|
- FROM (SELECT cs.actual_teacher_id_,ct.user_id_,vg.educational_teacher_id_ FROM course_schedule_student_payment cssp
|
|
|
- LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_
|
|
|
- LEFT JOIN (SELECT cssp.user_id_,MAX(cs.class_date_) class_date_ FROM course_schedule_student_payment cssp
|
|
|
- LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_
|
|
|
- LEFT JOIN vip_group vg ON vg.id_ = cssp.music_group_id_
|
|
|
- LEFT JOIN vip_group_category vgc ON vgc.id_ = vg.vip_group_category_id_
|
|
|
- WHERE vgc.name_ != '乐理课' AND cs.status_ = 'OVER' AND cssp.group_type_ = 'VIP'
|
|
|
- GROUP BY cssp.user_id_) ct ON ct.user_id_ = cssp.user_id_
|
|
|
- LEFT JOIN vip_group vg ON vg.id_ = cs.music_group_id_
|
|
|
- LEFT JOIN vip_group_category vgc ON vgc.id_ = vg.vip_group_category_id_
|
|
|
- WHERE vgc.name_ != '乐理课' AND cs.class_date_ = ct.class_date_ AND cs.status_ = 'OVER' AND cssp.group_type_ = 'VIP'
|
|
|
- GROUP BY ct.user_id_) et
|
|
|
- LEFT JOIN sys_user su ON su.id_ = et.actual_teacher_id_
|
|
|
- LEFT JOIN sys_user su1 ON su1.id_ = et.educational_teacher_id_
|
|
|
- GROUP BY et.user_id_
|
|
|
- </select>
|
|
|
- <select id="queryStatisticsTeacherAndEdu2" resultMap="StudentStatistics">
|
|
|
- SELECT ss.user_id_,pg.user_id_ teacher_id_,su.real_name_ teacher_name_,'' music_director_id_,'' music_director_name_,'PRACTICE' group_type_ FROM student_statistics ss
|
|
|
- LEFT JOIN course_schedule_student_payment cssp ON ss.user_id_ = cssp.user_id_
|
|
|
- LEFT JOIN practice_group pg ON pg.id_ = cssp.music_group_id_
|
|
|
- LEFT JOIN sys_user su ON su.id_ = pg.user_id_
|
|
|
- WHERE cssp.group_type_ = 'PRACTICE' AND pg.group_status_ = 'NORMAL' AND ss.teacher_id_ IS NULL
|
|
|
- UNION ALL
|
|
|
- SELECT ss.user_id_,'' teacher_id_,'' teacher_name_,pg.educational_teacher_id_ music_director_id_,su.real_name_ music_director_name_,'PRACTICE' group_type_ FROM student_statistics ss
|
|
|
- LEFT JOIN course_schedule_student_payment cssp ON ss.user_id_ = cssp.user_id_
|
|
|
- LEFT JOIN practice_group pg ON pg.id_ = cssp.music_group_id_
|
|
|
- LEFT JOIN sys_user su ON su.id_ = pg.educational_teacher_id_
|
|
|
- WHERE cssp.group_type_ = 'PRACTICE' AND pg.group_status_ = 'NORMAL' AND ss.music_director_id_ IS NULL
|
|
|
- UNION ALL
|
|
|
- SELECT ss.user_id_,vg.user_id_ teacher_id_,su.real_name_ teacher_name_,'' music_director_id_,'' music_director_name_,'THEORY' group_type_ FROM student_statistics ss
|
|
|
- LEFT JOIN course_schedule_student_payment cssp ON ss.user_id_ = cssp.user_id_
|
|
|
- LEFT JOIN vip_group vg ON vg.id_ = cssp.music_group_id_
|
|
|
- LEFT JOIN vip_group_category vgc ON vgc.id_ = vg.vip_group_category_id_
|
|
|
- LEFT JOIN sys_user su ON su.id_ = vg.user_id_
|
|
|
- WHERE vgc.name_ = '乐理课' AND cssp.group_type_ = 'THEORY' AND vg.group_status_ = 2 AND ss.teacher_id_ IS NULL
|
|
|
- UNION ALL
|
|
|
- SELECT ss.user_id_,'' teacher_id_,'' teacher_name_,vg.educational_teacher_id_ music_director_id_,su.real_name_ music_director_name_,'THEORY' group_type_ FROM student_statistics ss
|
|
|
- LEFT JOIN course_schedule_student_payment cssp ON ss.user_id_ = cssp.user_id_
|
|
|
- LEFT JOIN vip_group vg ON vg.id_ = cssp.music_group_id_
|
|
|
- LEFT JOIN vip_group_category vgc ON vgc.id_ = vg.vip_group_category_id_
|
|
|
- LEFT JOIN sys_user su ON su.id_ = vg.educational_teacher_id_
|
|
|
- WHERE vgc.name_ = '乐理课' AND cssp.group_type_ = 'THEORY' AND vg.group_status_ = 2 AND ss.music_director_id_ IS NULL
|
|
|
- UNION ALL
|
|
|
- SELECT ss.user_id_,vg.user_id_ teacher_id_,su.real_name_ teacher_name_,'' music_director_id_,'' music_director_name_,'VIP' group_type_ FROM student_statistics ss
|
|
|
- LEFT JOIN course_schedule_student_payment cssp ON ss.user_id_ = cssp.user_id_
|
|
|
- LEFT JOIN vip_group vg ON vg.id_ = cssp.music_group_id_
|
|
|
- LEFT JOIN vip_group_category vgc ON vgc.id_ = vg.vip_group_category_id_
|
|
|
- LEFT JOIN sys_user su ON su.id_ = vg.user_id_
|
|
|
- WHERE vgc.name_ != '乐理课' AND cssp.group_type_ = 'VIP' AND vg.group_status_ = 2 AND ss.teacher_id_ IS NULL
|
|
|
- UNION ALL
|
|
|
- SELECT ss.user_id_,'' teacher_id_,'' teacher_name_,vg.educational_teacher_id_ music_director_id_,su.real_name_ music_director_name_,'VIP' group_type_ FROM student_statistics ss
|
|
|
- LEFT JOIN course_schedule_student_payment cssp ON ss.user_id_ = cssp.user_id_
|
|
|
- LEFT JOIN vip_group vg ON vg.id_ = cssp.music_group_id_
|
|
|
- LEFT JOIN vip_group_category vgc ON vgc.id_ = vg.vip_group_category_id_
|
|
|
- LEFT JOIN sys_user su ON su.id_ = vg.educational_teacher_id_
|
|
|
- WHERE vgc.name_ != '乐理课' AND cssp.group_type_ = 'VIP' AND vg.group_status_ = 2 AND ss.music_director_id_ IS NULL
|
|
|
- </select>
|
|
|
- <select id="queryStatisticsCourseNum" resultMap="StudentStatistics">
|
|
|
- SELECT cssp.user_id_,COUNT(cssp.course_schedule_id_) total_course_num_,COUNT(CASE WHEN cs.status_ = 'NOT_START' THEN 1 ELSE NULL END) sub_course_num_,
|
|
|
- COUNT(CASE WHEN cs.status_ = 'NOT_START' THEN NULL ELSE 1 END) over_course_num_,
|
|
|
- COUNT(CASE WHEN cs.status_ != 'NOT_START' AND cs.class_date_ >= DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 30 DAY),'%Y-%m-%d') THEN 1 ELSE NULL END) lately_course_consumer_,
|
|
|
- COUNT(CASE WHEN cs.status_ != 'NOT_START' AND cs.class_date_ >= DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 1 YEAR),'%Y-%m-%d') THEN 1 ELSE NULL END) lately_year_course_consumer_,'PRACTICE' group_type_
|
|
|
- FROM course_schedule_student_payment cssp
|
|
|
- LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_ AND cs.group_type_ = cssp.group_type_
|
|
|
- WHERE cs.del_flag_ = 0 AND cs.pre_course_flag_ = 0 AND cssp.group_type_ = 'PRACTICE'
|
|
|
- GROUP BY cssp.user_id_
|
|
|
- UNION ALL
|
|
|
- SELECT cssp.user_id_,COUNT(cssp.course_schedule_id_) total_course_num_,COUNT(CASE WHEN cs.status_ = 'NOT_START' THEN 1 ELSE NULL END) sub_course_num_,
|
|
|
- COUNT(CASE WHEN cs.status_ = 'NOT_START' THEN NULL ELSE 1 END) over_course_num_,
|
|
|
- COUNT(CASE WHEN cs.status_ != 'NOT_START' AND cs.class_date_ >= DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 30 DAY),'%Y-%m-%d') THEN 1 ELSE NULL END) lately_course_consumer_,
|
|
|
- COUNT(CASE WHEN cs.status_ != 'NOT_START' AND cs.class_date_ >= DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 1 YEAR),'%Y-%m-%d') THEN 1 ELSE NULL END) lately_year_course_consumer_,'THEORY' group_type_
|
|
|
- FROM course_schedule_student_payment cssp
|
|
|
- LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_ AND cs.group_type_ = cssp.group_type_
|
|
|
- LEFT JOIN vip_group vg ON vg.id_ = cs.music_group_id_
|
|
|
- LEFT JOIN vip_group_category vgc ON vgc.id_ = vg.vip_group_category_id_
|
|
|
- WHERE vgc.name_ = '乐理课' AND cs.del_flag_ = 0 AND cs.pre_course_flag_ = 0 AND cs.group_type_ = 'VIP'
|
|
|
- GROUP BY cssp.user_id_
|
|
|
- UNION ALL
|
|
|
- SELECT cssp.user_id_,COUNT(cssp.course_schedule_id_) total_course_num_,COUNT(CASE WHEN cs.status_ = 'NOT_START' THEN 1 ELSE NULL END) sub_course_num_,
|
|
|
- COUNT(CASE WHEN cs.status_ = 'NOT_START' THEN NULL ELSE 1 END) over_course_num_,
|
|
|
- COUNT(CASE WHEN cs.status_ != 'NOT_START' AND cs.class_date_ >= DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 30 DAY),'%Y-%m-%d') THEN 1 ELSE NULL END) lately_course_consumer_,
|
|
|
- COUNT(CASE WHEN cs.status_ != 'NOT_START' AND cs.class_date_ >= DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 1 YEAR),'%Y-%m-%d') THEN 1 ELSE NULL END) lately_year_course_consumer_,'VIP' group_type_
|
|
|
- FROM course_schedule_student_payment cssp
|
|
|
- LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_ AND cs.group_type_ = cssp.group_type_
|
|
|
- LEFT JOIN vip_group vg ON vg.id_ = cs.music_group_id_
|
|
|
- LEFT JOIN vip_group_category vgc ON vgc.id_ = vg.vip_group_category_id_
|
|
|
- WHERE vgc.name_ != '乐理课' AND cs.del_flag_ = 0 AND cs.pre_course_flag_ = 0 AND cs.group_type_ = 'VIP'
|
|
|
- GROUP BY cssp.user_id_
|
|
|
- </select>
|
|
|
- <select id="queryStatisticsNoCourseNum" resultMap="StudentStatistics">
|
|
|
- SELECT aum.user_id_,SUM(CASE WHEN aum.practice_flag_ = 1 THEN vga.min_course_num_ ELSE 0 END +
|
|
|
- CASE WHEN aum.give_practice_flag_ = 1 THEN vga.give_course_num_ ELSE 0 END) no_schedule_num_,'PRACTICE' group_type_ FROM activity_user_mapper aum
|
|
|
- LEFT JOIN vip_group_activity vga ON vga.id_ = aum.activity_id_
|
|
|
- WHERE aum.return_fee_ = 0 AND (aum.practice_flag_ = 1 OR aum.give_practice_flag_ = 1)
|
|
|
- GROUP BY aum.user_id_
|
|
|
- UNION ALL
|
|
|
- SELECT a.user_id_,SUM(a.no_schedule_num_) no_schedule_num_,'THEORY' group_type_ FROM (
|
|
|
- SELECT aum.user_id_,SUM(CASE WHEN aum.vip_flag_ = 1 AND vgc.name_ = '乐理课' THEN vga.min_course_num_ ELSE 0 END +
|
|
|
- CASE WHEN aum.give_vip_flag_ = 1 AND vgc1.name_ = '乐理课' THEN vga.give_course_num_ ELSE 0 END) no_schedule_num_ FROM activity_user_mapper aum
|
|
|
- LEFT JOIN vip_group_activity vga ON vga.id_ = aum.activity_id_
|
|
|
- LEFT JOIN vip_group_category vgc ON vgc.id_ = vga.vip_group_category_id_list_
|
|
|
- LEFT JOIN vip_group_category vgc1 ON vgc1.id_ = vga.give_category_id_
|
|
|
- WHERE aum.return_fee_ = 0 AND ((aum.vip_flag_ = 1 AND vgc.name_ = '乐理课') OR (aum.give_vip_flag_ = 1 AND vgc1.name_ = '乐理课'))
|
|
|
- GROUP BY aum.user_id_
|
|
|
- UNION ALL
|
|
|
- SELECT user_id_,10 no_schedule_num_ FROM student WHERE activity_course_detail_ LIKE CONCAT('%','"music_theory": 1','%')) a
|
|
|
- GROUP BY a.user_id_
|
|
|
- UNION ALL
|
|
|
- SELECT a.user_id_,SUM(a.no_schedule_num_) no_schedule_num_,'VIP' group_type_ FROM (
|
|
|
- SELECT aum.user_id_,SUM(CASE WHEN aum.vip_flag_ = 1 AND vgc.name_ != '乐理课' THEN vga.min_course_num_ ELSE 0 END +
|
|
|
- CASE WHEN aum.give_vip_flag_ = 1 AND vgc1.name_ != '乐理课' THEN vga.give_course_num_ ELSE 0 END) no_schedule_num_ FROM activity_user_mapper aum
|
|
|
- LEFT JOIN vip_group_activity vga ON vga.id_ = aum.activity_id_
|
|
|
- LEFT JOIN vip_group_category vgc ON vgc.id_ = vga.vip_group_category_id_list_
|
|
|
- LEFT JOIN vip_group_category vgc1 ON vgc1.id_ = vga.give_category_id_
|
|
|
- WHERE aum.return_fee_ = 0 AND ((aum.vip_flag_ = 1 AND vgc.name_ != '乐理课') OR (aum.give_vip_flag_ = 1 AND vgc1.name_ != '乐理课'))
|
|
|
- GROUP BY aum.user_id_
|
|
|
- UNION ALL
|
|
|
- SELECT user_id_,12 no_schedule_num_ FROM student WHERE activity_course_detail_ LIKE CONCAT('%','"vip1": 1','%')
|
|
|
- UNION ALL
|
|
|
- SELECT user_id_,12 no_schedule_num_ FROM student WHERE activity_course_detail_ LIKE CONCAT('%','"vip2": 1','%')) a
|
|
|
- GROUP BY a.user_id_
|
|
|
- </select>
|
|
|
- <select id="queryStatisticsNotStartCourseFee" resultMap="StudentStatistics">
|
|
|
- SELECT cssp.user_id_,SUM(cssp.expect_price_) not_start_course_fee_,'PRACTICE' group_type_
|
|
|
- FROM course_schedule_student_payment cssp
|
|
|
- LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_ AND cs.group_type_ = cssp.group_type_
|
|
|
- WHERE cs.del_flag_ = 0 AND cs.pre_course_flag_ = 0 AND cs.group_type_ = 'PRACTICE' AND cs.status_ = 'NOT_START'
|
|
|
- GROUP BY cssp.user_id_
|
|
|
- UNION ALL
|
|
|
- SELECT cssp.user_id_,SUM(cssp.expect_price_) not_start_course_fee_,'THEORY' group_type_
|
|
|
- FROM course_schedule_student_payment cssp
|
|
|
- LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_ AND cs.group_type_ = cssp.group_type_
|
|
|
- LEFT JOIN vip_group vg ON vg.id_ = cs.music_group_id_
|
|
|
- LEFT JOIN vip_group_category vgc ON vgc.id_ = vg.vip_group_category_id_
|
|
|
- WHERE cs.del_flag_ = 0 AND cs.pre_course_flag_ = 0 AND cs.group_type_ = 'VIP' AND cs.status_ = 'NOT_START' AND vgc.name_ = '乐理课'
|
|
|
- GROUP BY cssp.user_id_
|
|
|
- UNION ALL
|
|
|
- SELECT cssp.user_id_,SUM(cssp.expect_price_) not_start_course_fee_,'VIP' group_type_
|
|
|
- FROM course_schedule_student_payment cssp
|
|
|
- LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_ AND cs.group_type_ = cssp.group_type_
|
|
|
- LEFT JOIN vip_group vg ON vg.id_ = cs.music_group_id_
|
|
|
- LEFT JOIN vip_group_category vgc ON vgc.id_ = vg.vip_group_category_id_
|
|
|
- WHERE cs.del_flag_ = 0 AND cs.pre_course_flag_ = 0 AND cs.group_type_ = 'VIP' AND cs.status_ = 'NOT_START' AND vgc.name_ != '乐理课'
|
|
|
- GROUP BY cssp.user_id_
|
|
|
- </select>
|
|
|
- <select id="queryStatisticsNoCourseFee" resultMap="StudentStatistics">
|
|
|
- SELECT aum.user_id_,SUM(aum.actual_price_) no_course_fee_,'PRACTICE' group_type_ FROM activity_user_mapper aum
|
|
|
- WHERE aum.practice_flag_ = 1 AND return_fee_ = 0
|
|
|
- GROUP BY aum.user_id_
|
|
|
- UNION ALL
|
|
|
- SELECT aum.user_id_,SUM(aum.actual_price_) no_course_fee_,'THEORY' group_type_ FROM activity_user_mapper aum
|
|
|
- LEFT JOIN vip_group_activity vga ON vga.id_ = aum.activity_id_
|
|
|
- LEFT JOIN vip_group_category vgc ON vgc.id_ = vga.vip_group_category_id_list_
|
|
|
- WHERE aum.vip_flag_ = 1 AND return_fee_ = 0 AND vgc.name_ = '乐理课'
|
|
|
- GROUP BY aum.user_id_
|
|
|
- UNION ALL
|
|
|
- SELECT aum.user_id_,SUM(aum.actual_price_) no_course_fee_,'VIP' group_type_ FROM activity_user_mapper aum
|
|
|
- LEFT JOIN vip_group_activity vga ON vga.id_ = aum.activity_id_
|
|
|
- LEFT JOIN vip_group_category vgc ON vgc.id_ = vga.vip_group_category_id_list_
|
|
|
- WHERE aum.vip_flag_ = 1 AND return_fee_ = 0 AND vgc.name_ != '乐理课'
|
|
|
- GROUP BY aum.user_id_
|
|
|
- </select>
|
|
|
- <select id="queryStatisticsFirstAndLastCourseTime"
|
|
|
- resultMap="StudentStatistics">
|
|
|
- SELECT cssp.user_id_,MIN(cs.class_date_) first_course_time_,MAX(cs.class_date_) last_course_time_,'PRACTICE' group_type_ FROM course_schedule_student_payment cssp
|
|
|
- LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_ AND cs.group_type_ = cssp.group_type_
|
|
|
- WHERE cs.status_ = 'OVER' AND cssp.group_type_ = 'PRACTICE'
|
|
|
- GROUP BY cssp.user_id_
|
|
|
- UNION ALL
|
|
|
- SELECT cssp.user_id_,MIN(cs.class_date_) first_course_time_,MAX(cs.class_date_) last_course_time_,'THEORY' group_type_ FROM course_schedule_student_payment cssp
|
|
|
- LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_ AND cs.group_type_ = cssp.group_type_
|
|
|
- LEFT JOIN vip_group vg ON vg.id_ = cs.music_group_id_
|
|
|
- LEFT JOIN vip_group_category vgc ON vgc.id_ = vg.vip_group_category_id_
|
|
|
- WHERE vgc.name_ = '乐理课' AND cs.status_ = 'OVER' AND cs.group_type_ = 'VIP'
|
|
|
- GROUP BY cssp.user_id_
|
|
|
- UNION ALL
|
|
|
- SELECT cssp.user_id_,MIN(cs.class_date_) first_course_time_,MAX(cs.class_date_) last_course_time_,'VIP' group_type_ FROM course_schedule_student_payment cssp
|
|
|
- LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_ AND cs.group_type_ = cssp.group_type_
|
|
|
- LEFT JOIN vip_group vg ON vg.id_ = cs.music_group_id_
|
|
|
- LEFT JOIN vip_group_category vgc ON vgc.id_ = vg.vip_group_category_id_
|
|
|
- WHERE vgc.name_ != '乐理课' AND cs.status_ = 'OVER' AND cs.group_type_ = 'VIP'
|
|
|
- GROUP BY cssp.user_id_
|
|
|
- </select>
|
|
|
- <select id="queryStatisticsNormalGroupNum" resultMap="StudentStatistics">
|
|
|
- SELECT cssp.user_id_,COUNT(DISTINCT pg.id_) normal_group_num_,'PRACTICE' group_type_
|
|
|
- FROM course_schedule_student_payment cssp
|
|
|
- LEFT JOIN practice_group pg ON pg.id_ = cssp.music_group_id_
|
|
|
- WHERE pg.group_status_ = 'NORMAL' AND cssp.group_type_ = 'PRACTICE'
|
|
|
- GROUP BY cssp.user_id_
|
|
|
- UNION ALL
|
|
|
- SELECT cssp.user_id_,COUNT(DISTINCT vg.id_) normal_group_num_,'THEORY' group_type_
|
|
|
- FROM course_schedule_student_payment cssp
|
|
|
- LEFT JOIN vip_group vg ON vg.id_ = cssp.music_group_id_
|
|
|
- LEFT JOIN vip_group_category vgc ON vgc.id_ = vg.vip_group_category_id_
|
|
|
- WHERE vgc.name_ = '乐理课' AND vg.group_status_ = 2 AND cssp.group_type_ = 'VIP'
|
|
|
- GROUP BY cssp.user_id_
|
|
|
- UNION ALL
|
|
|
- SELECT cssp.user_id_,COUNT(DISTINCT vg.id_) normal_group_num_,'VIP' group_type_
|
|
|
- FROM course_schedule_student_payment cssp
|
|
|
- LEFT JOIN vip_group vg ON vg.id_ = cssp.music_group_id_
|
|
|
- LEFT JOIN vip_group_category vgc ON vgc.id_ = vg.vip_group_category_id_
|
|
|
- WHERE vgc.name_ != '乐理课' AND vg.group_status_ = 2 AND cssp.group_type_ = 'VIP'
|
|
|
- GROUP BY cssp.user_id_
|
|
|
- </select>
|
|
|
<sql id="dateTypeSql">
|
|
|
WHERE data_type_ =
|
|
|
<if test="groupType == 'VIP'">
|
|
@@ -676,4 +460,15 @@
|
|
|
'STUDENT_PRACTICE_ORDER_NUM'
|
|
|
</if>
|
|
|
</sql>
|
|
|
+
|
|
|
+ <select id="queryNoScheduleNumStudent" resultType="com.ym.mec.biz.dal.dto.StudentOrganDto">
|
|
|
+ SELECT ss.`user_id_` userId,u.organ_id_ organId FROM `student_statistics` ss
|
|
|
+ LEFT JOIN `sys_user` u on u.`id_` = ss.`user_id_`
|
|
|
+ WHERE ss.`no_schedule_num_` > 0
|
|
|
+ AND u.organ_id_ IN
|
|
|
+ <foreach collection="organIds" item="organId" open="(" close=")" separator=",">
|
|
|
+ #{organId}
|
|
|
+ </foreach>
|
|
|
+ group by ss.user_id_ , u.organ_id_
|
|
|
+ </select>
|
|
|
</mapper>
|