|
@@ -763,29 +763,90 @@
|
|
|
</select>
|
|
|
|
|
|
<select id="getOrganStudentNum" resultType="int">
|
|
|
- SELECT COUNT(stu.user_id_) totalStudentNum
|
|
|
- FROM student stu
|
|
|
- LEFT JOIN sys_user su ON stu.user_id_=su.id_
|
|
|
- WHERE su.del_flag_=0
|
|
|
- <if test="organId!=null">
|
|
|
- AND su.organ_id_=#{organId}
|
|
|
- </if>
|
|
|
+ SELECT COUNT(DISTINCT user_id_)
|
|
|
+ FROM ((SELECT sr.user_id_
|
|
|
+ FROM student_registration sr
|
|
|
+ LEFT JOIN sys_user su ON sr.user_id_=su.id_
|
|
|
+ WHERE su.del_flag_=0
|
|
|
+ AND sr.music_group_status_='NORMAL'
|
|
|
+ AND su.organ_id_ = #{organId})
|
|
|
+ UNION ALL
|
|
|
+ (SELECT
|
|
|
+ cssp.user_id_
|
|
|
+ FROM
|
|
|
+ course_schedule_student_payment cssp
|
|
|
+ LEFT JOIN course_schedule cs ON cssp.course_schedule_id_=cs.id_
|
|
|
+ LEFT JOIN sys_user su ON cssp.user_id_ = su.id_
|
|
|
+ WHERE
|
|
|
+ cssp.group_type_ IN ('VIP', 'PRACTICE')
|
|
|
+ AND cs.status_='NOT_START'
|
|
|
+ AND su.del_flag_ = 0
|
|
|
+ AND su.organ_id_ = #{organId})) t
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <select id="getOrgansTotalStudentNum" resultType="int">
|
|
|
+ SELECT COUNT(DISTINCT user_id_)
|
|
|
+ FROM ((SELECT sr.user_id_
|
|
|
+ FROM student_registration sr
|
|
|
+ LEFT JOIN sys_user su ON sr.user_id_=su.id_
|
|
|
+ WHERE su.del_flag_=0
|
|
|
+ AND sr.music_group_status_='NORMAL'
|
|
|
+ <if test="organIds!=null and organIds.size()>0">
|
|
|
+ AND su.organ_id_ IN
|
|
|
+ <foreach collection="organIds" item="organId" open="(" close=")" separator=",">
|
|
|
+ #{organId}
|
|
|
+ </foreach>
|
|
|
+ </if>)
|
|
|
+ UNION ALL
|
|
|
+ (SELECT
|
|
|
+ cssp.user_id_
|
|
|
+ FROM
|
|
|
+ course_schedule_student_payment cssp
|
|
|
+ LEFT JOIN course_schedule cs ON cssp.course_schedule_id_=cs.id_
|
|
|
+ LEFT JOIN sys_user su ON cssp.user_id_ = su.id_
|
|
|
+ WHERE
|
|
|
+ cssp.group_type_ IN ('VIP', 'PRACTICE')
|
|
|
+ AND cs.status_='NOT_START'
|
|
|
+ AND su.del_flag_ = 0
|
|
|
+ <if test="organIds!=null and organIds.size()>0">
|
|
|
+ AND su.organ_id_ IN
|
|
|
+ <foreach collection="organIds" item="organId" open="(" close=")" separator=",">
|
|
|
+ #{organId}
|
|
|
+ </foreach>
|
|
|
+ </if>)) t
|
|
|
</select>
|
|
|
|
|
|
<select id="getOrgansStudentNum" resultType="map">
|
|
|
- SELECT
|
|
|
- su.organ_id_ 'key',
|
|
|
- COUNT(stu.user_id_) 'value'
|
|
|
- FROM student stu
|
|
|
- LEFT JOIN sys_user su ON stu.user_id_=su.id_
|
|
|
+ SELECT t.organ_id_ 'key',COUNT(DISTINCT user_id_) 'value'
|
|
|
+ FROM ((SELECT su.organ_id_,sr.user_id_
|
|
|
+ FROM student_registration sr
|
|
|
+ LEFT JOIN sys_user su ON sr.user_id_=su.id_
|
|
|
WHERE su.del_flag_=0
|
|
|
+ AND sr.music_group_status_='NORMAL'
|
|
|
<if test="organIds!=null and organIds.size()>0">
|
|
|
AND su.organ_id_ IN
|
|
|
<foreach collection="organIds" item="organId" open="(" close=")" separator=",">
|
|
|
#{organId}
|
|
|
</foreach>
|
|
|
- </if>
|
|
|
- GROUP BY su.organ_id_
|
|
|
+ </if>)
|
|
|
+ UNION ALL
|
|
|
+ (SELECT
|
|
|
+ su.organ_id_,cssp.user_id_
|
|
|
+ FROM
|
|
|
+ course_schedule_student_payment cssp
|
|
|
+ LEFT JOIN course_schedule cs ON cssp.course_schedule_id_=cs.id_
|
|
|
+ LEFT JOIN sys_user su ON cssp.user_id_ = su.id_
|
|
|
+ WHERE
|
|
|
+ cssp.group_type_ IN ('VIP', 'PRACTICE')
|
|
|
+ AND cs.status_='NOT_START'
|
|
|
+ AND su.del_flag_ = 0
|
|
|
+ <if test="organIds!=null and organIds.size()>0">
|
|
|
+ AND su.organ_id_ IN
|
|
|
+ <foreach collection="organIds" item="organId" open="(" close=")" separator=",">
|
|
|
+ #{organId}
|
|
|
+ </foreach>
|
|
|
+ </if>)) t
|
|
|
+ GROUP BY t.organ_id_
|
|
|
</select>
|
|
|
|
|
|
<select id="getCloudStudyStudentNum" resultType="int">
|
|
@@ -797,6 +858,36 @@
|
|
|
WHERE su.del_flag_=0 AND stu.user_id_ IS NOT NULL AND su.organ_id_=#{organId};
|
|
|
</select>
|
|
|
|
|
|
+ <select id="getOrgansTotalCloudStudyStudentNum" resultType="int">
|
|
|
+ SELECT
|
|
|
+ COUNT(DISTINCT smcr.user_id_)
|
|
|
+ FROM sys_music_compare_record smcr
|
|
|
+ LEFT JOIN sys_user su ON smcr.user_id_=su.id_
|
|
|
+ LEFT JOIN student stu ON smcr.user_id_=stu.user_id_
|
|
|
+ WHERE su.del_flag_=0 AND stu.user_id_ IS NOT NULL
|
|
|
+ <if test="organIds!=null and organIds.size()>0">
|
|
|
+ AND su.organ_id_ IN
|
|
|
+ <foreach collection="organIds" item="organId" open="(" close=")" separator=",">
|
|
|
+ #{organId}
|
|
|
+ </foreach>
|
|
|
+ </if>
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <select id="getOrgansTodayTotalCloudStudyStudentNum" resultType="int">
|
|
|
+ SELECT
|
|
|
+ COUNT(DISTINCT smcr.user_id_)
|
|
|
+ FROM sys_music_compare_record smcr
|
|
|
+ LEFT JOIN sys_user su ON smcr.user_id_=su.id_
|
|
|
+ LEFT JOIN student stu ON smcr.user_id_=stu.user_id_
|
|
|
+ WHERE su.del_flag_=0 AND stu.user_id_ IS NOT NULL
|
|
|
+ <if test="organIds!=null and organIds.size()>0">
|
|
|
+ AND su.organ_id_ IN
|
|
|
+ <foreach collection="organIds" item="organId" open="(" close=")" separator=",">
|
|
|
+ #{organId}
|
|
|
+ </foreach>
|
|
|
+ </if>
|
|
|
+ </select>
|
|
|
+
|
|
|
<select id="getOrganCloudStudyStudentNum" resultType="map">
|
|
|
SELECT
|
|
|
su.organ_id_ 'key',
|
|
@@ -826,6 +917,24 @@
|
|
|
GROUP BY smcr.user_id_) t WHERE t.days>=5
|
|
|
</select>
|
|
|
|
|
|
+ <select id="getOrganTotalCloudStudyLivelyStudentNum" resultType="int">
|
|
|
+ SELECT COUNT(user_id_)
|
|
|
+ FROM (SELECT
|
|
|
+ smcr.user_id_,
|
|
|
+ COUNT(DISTINCT(CASE WHEN DATEDIFF(NOW(), smcr.create_time_)<=15 THEN DATE_FORMAT(smcr.create_time_, '%Y-%m-%d') ELSE NULL END)) days
|
|
|
+ FROM sys_music_compare_record smcr
|
|
|
+ LEFT JOIN sys_user su ON smcr.user_id_=su.id_
|
|
|
+ LEFT JOIN student stu ON smcr.user_id_=stu.user_id_
|
|
|
+ WHERE su.del_flag_=0 AND stu.user_id_ IS NOT NULL
|
|
|
+ <if test="organIds!=null and organIds.size()>0">
|
|
|
+ AND su.organ_id_ IN
|
|
|
+ <foreach collection="organIds" item="organId" open="(" close=")" separator=",">
|
|
|
+ #{organId}
|
|
|
+ </foreach>
|
|
|
+ </if>
|
|
|
+ GROUP BY smcr.user_id_) t WHERE t.days>=5
|
|
|
+ </select>
|
|
|
+
|
|
|
<select id="getOrganCloudStudyLivelyStudentNum" resultType="map">
|
|
|
SELECT
|
|
|
t.organ_id_ 'key',
|
|
@@ -908,6 +1017,20 @@
|
|
|
AND NOT EXISTS (SELECT student_id_ FROM cloud_teacher_order WHERE student_id_=stu.user_id_ AND status_ IN (1,2))
|
|
|
</select>
|
|
|
|
|
|
+ <select id="getOrgansTotalEVipStudentNum" resultType="int">
|
|
|
+ SELECT COUNT(DISTINCT stu.user_id_)
|
|
|
+ FROM student stu
|
|
|
+ LEFT JOIN cloud_teacher_order cto ON stu.user_id_=cto.student_id_
|
|
|
+ LEFT JOIN sys_user su ON su.id_=stu.user_id_
|
|
|
+ WHERE su.del_flag_=0 AND stu.experience_member_rank_setting_id_ IS NOT NULL AND (cto.id_ IS NULL OR cto.status_ NOT IN (1, 2))
|
|
|
+ <if test="organIds!=null and organIds.size()>0">
|
|
|
+ AND su.organ_id_ IN
|
|
|
+ <foreach collection="organIds" item="organId" open="(" close=")" separator=",">
|
|
|
+ #{organId}
|
|
|
+ </foreach>
|
|
|
+ </if>
|
|
|
+ </select>
|
|
|
+
|
|
|
<select id="getOrgansEVipStudentNum" resultType="map">
|
|
|
SELECT
|
|
|
su.organ_id_ 'key',
|