|
@@ -331,42 +331,54 @@
|
|
|
<select id="getPracticeTryNums" resultMap="practice4Organ">
|
|
|
SELECT pg.organ_id_, count(distinct pg.student_id_) try_num_
|
|
|
FROM practice_group pg
|
|
|
- LEFT JOIN student s ON s.user_id_ = pg.student_id_
|
|
|
+ LEFT JOIN student s ON s.user_id_ = pg.student_id_
|
|
|
WHERE pg.group_status_ IN ('NORMAL', 'FINISH')
|
|
|
- <if test="studentIds != null">
|
|
|
- AND FIND_IN_SET(pg.student_id_,#{studentIds})
|
|
|
- </if>
|
|
|
- AND pg.buy_months_ >=1
|
|
|
- AND s.operating_tag_ = 0
|
|
|
+ AND pg.buy_months_ >= 1
|
|
|
+ AND s.operating_tag_ = 0
|
|
|
GROUP BY pg.organ_id_
|
|
|
</select>
|
|
|
|
|
|
<!-- vip体验人数(禁止的) -->
|
|
|
<select id="getVipTryNums" resultMap="practice4Organ">
|
|
|
- SELECT vg.organ_id_, COUNT(DISTINCT cssp.user_id_) try_num_, GROUP_CONCAT(distinct cssp.user_id_) student_ids_
|
|
|
+ SELECT vg.organ_id_, COUNT(DISTINCT cssp.user_id_) try_num_
|
|
|
FROM course_schedule_student_payment cssp
|
|
|
LEFT JOIN vip_group vg ON cssp.music_group_id_ = vg.id_ AND cssp.group_type_ = 'VIP'
|
|
|
- LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_
|
|
|
+ LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_ AND cs.teach_mode_ = 'ONLINE'
|
|
|
LEFT JOIN student s ON s.user_id_ = cssp.user_id_
|
|
|
- WHERE vg.organ_id_ >= 1
|
|
|
+ WHERE vg.id_ >= 1
|
|
|
+ AND cs.id_ >= 1
|
|
|
+ AND (cs.is_lock_ IS NULL OR cs.is_lock_ = 0)
|
|
|
AND s.operating_tag_ = 0
|
|
|
- AND (cs.is_lock_ IS NULL OR cs.is_lock_=0)
|
|
|
- AND cs.teach_mode_ = 'ONLINE'
|
|
|
GROUP BY vg.organ_id_
|
|
|
</select>
|
|
|
|
|
|
+ <select id="getPracticeAndVipTryNums" resultMap="practice4Organ">
|
|
|
+ SELECT pg.organ_id_, COUNT(DISTINCT pg.student_id_) try_num_
|
|
|
+ FROM practice_group pg
|
|
|
+ LEFT JOIN course_schedule_student_payment cssp
|
|
|
+ ON cssp.user_id_ = pg.student_id_ AND cssp.group_type_ = 'VIP'
|
|
|
+ LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_ AND cs.teach_mode_ = 'ONLINE'
|
|
|
+ LEFT JOIN student s ON s.user_id_ = cssp.user_id_
|
|
|
+ WHERE pg.group_status_ IN ('NORMAL', 'FINISH')
|
|
|
+ AND pg.buy_months_ >= 1
|
|
|
+ AND cs.id_ >= 1
|
|
|
+ AND (cs.is_lock_ IS NULL OR cs.is_lock_ = 0)
|
|
|
+ AND s.operating_tag_ = 0
|
|
|
+ GROUP BY pg.organ_id_
|
|
|
+ </select>
|
|
|
+
|
|
|
<select id="getVipBuyNums" resultMap="practice4Organ">
|
|
|
- SELECT vg.organ_id_, COUNT(DISTINCT cssp.user_id_) vip_num_, GROUP_CONCAT(DISTINCT cssp.user_id_) student_ids_
|
|
|
+ SELECT vg.organ_id_, COUNT(DISTINCT cssp.user_id_) vip_num_
|
|
|
FROM course_schedule_student_payment cssp
|
|
|
LEFT JOIN vip_group vg ON cssp.music_group_id_ = vg.id_ AND cssp.group_type_ = 'VIP'
|
|
|
- LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_
|
|
|
- WHERE vg.organ_id_ >= 1
|
|
|
+ LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_ AND cs.teach_mode_ = 'ONLINE'
|
|
|
+ WHERE vg.id_ >= 1
|
|
|
+ AND cs.id_ >=1
|
|
|
AND CONCAT(cs.class_date_, ' ', cs.end_class_time_) >= #{classDate}
|
|
|
<if test="endDate != null">
|
|
|
<![CDATA[AND CONCAT(cs.class_date_, ' ', cs.end_class_time_) < #{endDate}]]>
|
|
|
</if>
|
|
|
AND (cs.is_lock_ IS NULL OR cs.is_lock_=0)
|
|
|
- AND cs.teach_mode_ = 'ONLINE'
|
|
|
GROUP BY vg.organ_id_
|
|
|
</select>
|
|
|
|
|
@@ -375,16 +387,38 @@
|
|
|
FROM course_schedule_student_payment cssp
|
|
|
LEFT JOIN practice_group pg ON cssp.music_group_id_ = pg.id_ AND cssp.group_type_ = 'PRACTICE'
|
|
|
LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_
|
|
|
- WHERE pg.organ_id_ >= 1
|
|
|
+ WHERE pg.id_ >= 1
|
|
|
+ AND pg.group_status_ IN ('NORMAL', 'FINISH')
|
|
|
+ AND cs.id_ >=1
|
|
|
+ AND (cs.is_lock_ IS NULL OR cs.is_lock_=0)
|
|
|
AND CONCAT(cs.class_date_, ' ', cs.end_class_time_) >= #{classDate}
|
|
|
<if test="endDate != null">
|
|
|
<![CDATA[AND CONCAT(cs.class_date_, ' ', cs.end_class_time_) < #{endDate}]]>
|
|
|
</if>
|
|
|
- <if test="studentIds != null">
|
|
|
- AND FIND_IN_SET(cssp.user_id_,#{studentIds})
|
|
|
+ AND pg.buy_months_ >= 1
|
|
|
+ GROUP BY pg.organ_id_
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <select id="getPracticeAndVipNums" resultMap="practice4Organ">
|
|
|
+ SELECT pg.organ_id_,COUNT(DISTINCT pg.student_id_) practice_num_
|
|
|
+ FROM practice_group pg
|
|
|
+ LEFT JOIN course_schedule_student_payment vcssp ON vcssp.user_id_ = pg.student_id_ AND vcssp.group_type_='VIP'
|
|
|
+ LEFT JOIN course_schedule_student_payment pcssp ON pcssp.user_id_ = pg.student_id_ AND
|
|
|
+ pcssp.group_type_='PRACTICE'
|
|
|
+ LEFT JOIN course_schedule vcs ON vcs.id_=vcssp.course_schedule_id_ AND vcs.teach_mode_='ONLINE'
|
|
|
+ LEFT JOIN course_schedule pcs ON pcs.id_=pcssp.course_schedule_id_
|
|
|
+ WHERE pg.group_status_ IN ('NORMAL', 'FINISH')
|
|
|
+ AND vcs.id_ >=1
|
|
|
+ AND pcs.id_ >= 1
|
|
|
+ AND (vcs.is_lock_ IS NULL OR vcs.is_lock_=0)
|
|
|
+ AND (pcs.is_lock_ IS NULL OR pcs.is_lock_=0)
|
|
|
+ AND CONCAT(vcs.class_date_, ' ', vcs.end_class_time_) >= #{classDate}
|
|
|
+ AND CONCAT(pcs.class_date_, ' ', pcs.end_class_time_) >= #{classDate}
|
|
|
+ <if test="endDate != null">
|
|
|
+ <![CDATA[AND CONCAT(vcs.class_date_, ' ', vcs.end_class_time_) < #{endDate}
|
|
|
+ AND CONCAT(pcs.class_date_, ' ', pcs.end_class_time_) < #{endDate}]]>
|
|
|
</if>
|
|
|
AND pg.buy_months_ >= 1
|
|
|
- AND (cs.is_lock_ IS NULL OR cs.is_lock_=0)
|
|
|
GROUP BY pg.organ_id_
|
|
|
</select>
|
|
|
</mapper>
|