|
@@ -125,26 +125,57 @@
|
|
|
</if>
|
|
|
</set> WHERE id_ = #{id}
|
|
|
</update>
|
|
|
- <update id="queryStatisticsTeacherAndEdu">
|
|
|
- SELECT updateTeacherAndEdu()
|
|
|
+ <update id="clean">
|
|
|
+ UPDATE student_statistics ss SET ss.total_course_num_ = 0,ss.sub_course_num_ = 0,
|
|
|
+ ss.over_course_num_ = 0,ss.lately_course_consumer_ = 0,ss.lately_year_course_consumer_ = 0,
|
|
|
+ ss.no_course_fee_ = 0,ss.no_schedule_num_ = 0,ss.normal_group_num_ = 0,ss.not_start_course_fee_ = 0,
|
|
|
+ ss.teacher_id_ = NULL,ss.teacher_name_ = NULL,ss.music_director_id_ = NULL,ss.music_director_name_ = NULL
|
|
|
</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 id="batchUpdate">
|
|
|
+ UPDATE student_statistics
|
|
|
+ <foreach collection="statisticsList" item="bean" index="index" open="" close="" separator=",">
|
|
|
+ <set>
|
|
|
+ <if test="bean.overCourseNum != null">
|
|
|
+ over_course_num_ = #{bean.overCourseNum},
|
|
|
+ </if>
|
|
|
+ <if test="latelyCourseConsumer != null">
|
|
|
+ lately_course_consumer_ = #{bean.latelyCourseConsumer},
|
|
|
+ </if>
|
|
|
+ <if test="lastCourseTime != null">
|
|
|
+ last_course_time_ = #{bean.lastCourseTime},
|
|
|
+ </if>
|
|
|
+ <if test="totalCourseNum != null">
|
|
|
+ total_course_num_ = #{bean.totalCourseNum},
|
|
|
+ </if>
|
|
|
+ <if test="bean.musicDirectorName != null and bean.musicDirectorName != ''">
|
|
|
+ music_director_name_ = #{bean.musicDirectorName},
|
|
|
+ </if>
|
|
|
+ <if test="bean.teacherName != null and bean.teacherName != ''">
|
|
|
+ teacher_name_ = #{bean.teacherName},
|
|
|
+ </if>
|
|
|
+ <if test="bean.subCourseNum != null">
|
|
|
+ sub_course_num_ = #{bean.subCourseNum},
|
|
|
+ </if>
|
|
|
+ <if test="bean.teacherId != null">
|
|
|
+ teacher_id_ = #{bean.teacherId},
|
|
|
+ </if>
|
|
|
+ <if test="bean.musicDirectorId != null">
|
|
|
+ music_director_id_ = #{bean.musicDirectorId},
|
|
|
+ </if>
|
|
|
+ <if test="bean.notStartCourseFee != null">
|
|
|
+ not_start_course_fee_ = #{bean.notStartCourseFee},
|
|
|
+ </if>
|
|
|
+ <if test="bean.noCourseFee != null">
|
|
|
+ no_course_fee_ = #{bean.noCourseFee},
|
|
|
+ </if>
|
|
|
+ <if test="bean.noScheduleNum != null">
|
|
|
+ no_schedule_num_ = #{bean.noScheduleNum},
|
|
|
+ </if>
|
|
|
+ <if test="bean.firstCourseTime != null">
|
|
|
+ first_course_time_ = #{bean.firstCourseTime},
|
|
|
+ </if>
|
|
|
+ </set> WHERE user_id_ = #{bean.userId} AND group_type_ = #{bean.groupType}
|
|
|
+ </foreach>
|
|
|
</update>
|
|
|
|
|
|
<!-- 根据主键删除一条记录 -->
|
|
@@ -395,6 +426,243 @@
|
|
|
<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="com.ym.mec.biz.dal.dao.StudentStatisticsDao.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="com.ym.mec.biz.dal.dao.StudentStatisticsDao.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="com.ym.mec.biz.dal.dao.StudentStatisticsDao.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="com.ym.mec.biz.dal.dao.StudentStatisticsDao.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="com.ym.mec.biz.dal.dao.StudentStatisticsDao.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="com.ym.mec.biz.dal.dao.StudentStatisticsDao.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="com.ym.mec.biz.dal.dao.StudentStatisticsDao.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'">
|