|
@@ -82,9 +82,6 @@
|
|
</if>
|
|
</if>
|
|
</set> WHERE user_id_ = #{userId}
|
|
</set> WHERE user_id_ = #{userId}
|
|
</update>
|
|
</update>
|
|
- <update id="updateSubjectTeacher">
|
|
|
|
- SELECT updateSubjectTeacher()
|
|
|
|
- </update>
|
|
|
|
|
|
|
|
<!-- 根据主键删除一条记录 -->
|
|
<!-- 根据主键删除一条记录 -->
|
|
<delete id="delete" >
|
|
<delete id="delete" >
|
|
@@ -103,4 +100,36 @@
|
|
<select id="getMaxId" resultType="java.lang.Integer">
|
|
<select id="getMaxId" resultType="java.lang.Integer">
|
|
SELECT MAX(id_) FROM student_basic_info
|
|
SELECT MAX(id_) FROM student_basic_info
|
|
</select>
|
|
</select>
|
|
|
|
+ <select id="queryStatisticsSubjectTeacher" resultMap="StudentBasicInfo">
|
|
|
|
+ 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>
|
|
</mapper>
|
|
</mapper>
|