|
@@ -352,4 +352,108 @@
|
|
|
</if>
|
|
|
</where>
|
|
|
</select>
|
|
|
+
|
|
|
+ <select id="selectSubjectHome" resultType="com.yonge.cooleshow.biz.dal.vo.SubjectHomeVo">
|
|
|
+ select
|
|
|
+ s.id_ as subjectId
|
|
|
+ ,s.name_ as subjectName
|
|
|
+ ,a.musicSheetNum as musicSheetNum
|
|
|
+ ,a.enableMusicSheetNum as enableMusicSheetNum
|
|
|
+ ,a.enablePlatformMusicSheetNum as enablePlatformMusicSheetNum
|
|
|
+ ,a.musicPlatformSheetNum as musicPlatformSheetNum
|
|
|
+ ,a.enableTeacherMusicSheetNum as enableTeacherMusicSheetNum
|
|
|
+ ,a.musicTeacherSheetNum as musicTeacherSheetNum
|
|
|
+ ,b.practiceNum as practiceNum
|
|
|
+ ,c.pianoClassNum as pianoClassNum
|
|
|
+ ,d.liveNum as liveNum
|
|
|
+ ,e.videoNum as videoNum
|
|
|
+ from subject s
|
|
|
+ left join (
|
|
|
+ select
|
|
|
+ ms.music_subject_ ,
|
|
|
+ sum(if(ms.audit_status_ = 'PASS' ,1,0)) as musicSheetNum,
|
|
|
+ sum(if( ms.state_ = 1,1,0)) as enableMusicSheetNum,
|
|
|
+ sum(if( ms.state_ = 1 and ms.source_type_ = 'PLATFORM',1,0)) as enablePlatformMusicSheetNum,
|
|
|
+ sum(if(ms.source_type_ = 'PLATFORM',1,0)) as musicPlatformSheetNum,
|
|
|
+ sum(if(ms.source_type_ = 'TEACHER' and ms.state_ = 1 and ms.audit_status_ = 'PASS',1,0)) as enableTeacherMusicSheetNum,
|
|
|
+ sum(if(ms.source_type_ = 'TEACHER' and ms.audit_status_ = 'PASS',1,0)) as musicTeacherSheetNum
|
|
|
+
|
|
|
+
|
|
|
+ from music_sheet ms
|
|
|
+ where ms.del_flag_ = 0
|
|
|
+ group by ms.music_subject_
|
|
|
+ ) a on a.music_subject_ = s.id_
|
|
|
+ left join (
|
|
|
+ select
|
|
|
+ cg.subject_id_,
|
|
|
+ count(1) as practiceNum
|
|
|
+ from course_group cg
|
|
|
+ where cg.type_ = 'PRACTICE' and cg.status_ in ( 'ING','COMPLETE')
|
|
|
+ group by cg.subject_id_
|
|
|
+ ) b on b.subject_id_ = s.id_
|
|
|
+ left join (
|
|
|
+ select
|
|
|
+ cg.subject_id_,
|
|
|
+ count(1) as pianoClassNum
|
|
|
+ from course_group cg
|
|
|
+ where cg.type_ = 'PIANO_ROOM_CLASS' and cg.status_ in ( 'ING','COMPLETE')
|
|
|
+ group by cg.subject_id_
|
|
|
+ ) c on c.subject_id_ = s.id_
|
|
|
+ left join (
|
|
|
+ select
|
|
|
+ cg.subject_id_,
|
|
|
+ count(1) as liveNum
|
|
|
+ from course_group cg
|
|
|
+ where cg.type_ = 'LIVE' and cg.status_ in ( 'NOT_SALE','APPLY','ING','COMPLETE')
|
|
|
+ group by cg.subject_id_
|
|
|
+ ) d on d.subject_id_ = s.id_
|
|
|
+ left join (
|
|
|
+ select
|
|
|
+ vlg.lesson_subject_,
|
|
|
+ count(1) as videoNum
|
|
|
+ from video_lesson_group vlg
|
|
|
+ where vlg.shelves_flag_ = 1
|
|
|
+ group by vlg.lesson_subject_
|
|
|
+ ) e on e.lesson_subject_ = s.id_
|
|
|
+ order by
|
|
|
+ <choose>
|
|
|
+ <when test="query.sortType == 'MUSIC'">
|
|
|
+ a.enableMusicSheetNum
|
|
|
+ </when>
|
|
|
+ <when test="query.sortType == 'PLATFORM_MUSIC'">
|
|
|
+ a.enablePlatformMusicSheetNum
|
|
|
+ </when>
|
|
|
+ <when test="query.sortType == 'TEACHER_MUSIC'">
|
|
|
+ a.enableTeacherMusicSheetNum
|
|
|
+ </when>
|
|
|
+ <when test="query.sortType == 'PRACTICE'">
|
|
|
+ b.practiceNum
|
|
|
+ </when>
|
|
|
+ <when test="query.sortType == 'PIANO'">
|
|
|
+ c.pianoClassNum
|
|
|
+ </when>
|
|
|
+ <when test="query.sortType == 'LIVE'">
|
|
|
+ d.liveNum
|
|
|
+ </when>
|
|
|
+ <when test="query.sortType == 'VIDEO'">
|
|
|
+ e.videoNum
|
|
|
+ </when>
|
|
|
+ <otherwise>
|
|
|
+ a.enableMusicSheetNum
|
|
|
+ </otherwise>
|
|
|
+ </choose>
|
|
|
+ <choose>
|
|
|
+ <when test="query.order == 'desc'">
|
|
|
+ desc
|
|
|
+ </when>
|
|
|
+ <when test="query.order == 'asc'">
|
|
|
+ asc
|
|
|
+ </when>
|
|
|
+ <otherwise>
|
|
|
+ desc
|
|
|
+ </otherwise>
|
|
|
+ </choose>
|
|
|
+
|
|
|
+ </select>
|
|
|
+
|
|
|
</mapper>
|