|
@@ -1646,26 +1646,128 @@
|
|
|
|
|
|
<select id="getOrgansStudentNumData" resultMap="IndexBaseMonthData">
|
|
|
SELECT
|
|
|
+ t.organ_id_,
|
|
|
+ #{dayStr} month_,
|
|
|
+ COUNT( DISTINCT t.user_id_ ) total_num_,
|
|
|
+ COUNT( DISTINCT t.user_id_ ) activate_num_,
|
|
|
+ COUNT( DISTINCT t.user_id_ ) percent_
|
|
|
+ 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="dayStr!=null and dayStr!=''">
|
|
|
+ AND DATE(sr.create_time_)<= #{dayStr}
|
|
|
+ </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="dayStr!=null and dayStr!=''">
|
|
|
+ AND DATE(cssp.create_time_)<= #{dayStr}
|
|
|
+ </if>)) t
|
|
|
+ GROUP BY t.organ_id_
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <select id="getMemberStudentNumData" resultMap="IndexBaseMonthData">
|
|
|
+ SELECT
|
|
|
+ su.organ_id_,
|
|
|
+ #{dayStr} month_,
|
|
|
+ COUNT(DISTINCT cto.student_id_) total_num_,
|
|
|
+ COUNT(DISTINCT cto.student_id_) activate_num_,
|
|
|
+ COUNT(DISTINCT cto.student_id_) percent_
|
|
|
+ FROM cloud_teacher_order cto
|
|
|
+ LEFT JOIN sys_user su ON cto.student_id_=su.id_
|
|
|
+ WHERE su.del_flag_=0 AND cto.status_ IN (1,2)
|
|
|
+ <if test="dayStr!=null and dayStr!=''">
|
|
|
+ AND DATE(cto.create_time_)<= #{dayStr}
|
|
|
+ </if>
|
|
|
+ GROUP BY su.organ_id_
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <select id="getNewMemberStudentNumData" resultMap="IndexBaseMonthData">
|
|
|
+ SELECT
|
|
|
su.organ_id_,
|
|
|
#{dayStr} month_,
|
|
|
- COUNT( DISTINCT s.user_id_ ) total_num_,
|
|
|
- COUNT( DISTINCT s.user_id_ ) activate_num_,
|
|
|
- COUNT( DISTINCT s.user_id_ ) percent_
|
|
|
- FROM
|
|
|
- sys_user su
|
|
|
- LEFT JOIN course_schedule_student_payment s ON su.id_=s.user_id_
|
|
|
- LEFT JOIN course_schedule_student_payment cssp1 ON s.user_id_=cssp1.user_id_ AND cssp1.create_time_<#{dayStr}
|
|
|
- LEFT JOIN course_schedule m ON s.course_schedule_id_=m.id_
|
|
|
- WHERE
|
|
|
- m.del_flag_ = 0
|
|
|
- AND (m.is_lock_ = 0 OR m.is_lock_ IS NULL)
|
|
|
- AND cssp1.id_ IS NULL
|
|
|
- AND su.organ_id_ IS NOT NULL
|
|
|
- AND m.group_type_ IN ('VIP', 'PRACTICE')
|
|
|
+ COUNT(DISTINCT cto.student_id_) total_num_,
|
|
|
+ COUNT(DISTINCT cto.student_id_) activate_num_,
|
|
|
+ COUNT(DISTINCT cto.student_id_) percent_
|
|
|
+ FROM cloud_teacher_order cto
|
|
|
+ LEFT JOIN sys_user su ON cto.student_id_=su.id_
|
|
|
+ WHERE su.del_flag_=0 AND cto.status_ IN (1,2)
|
|
|
<if test="dayStr!=null and dayStr!=''">
|
|
|
- AND DATE_FORMAT(s.create_time_, '%Y-%m-%d') = #{dayStr}
|
|
|
+ AND DATE(cto.create_time_)= #{dayStr}
|
|
|
</if>
|
|
|
GROUP BY su.organ_id_
|
|
|
- ORDER BY su.organ_id_;
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <select id="getExperienceMemberStudentNumData" resultMap="IndexBaseMonthData">
|
|
|
+ SELECT
|
|
|
+ su.organ_id_,
|
|
|
+ #{dayStr} month_,
|
|
|
+ COUNT(DISTINCT stu.user_id_) total_num_,
|
|
|
+ COUNT(DISTINCT stu.user_id_) activate_num_,
|
|
|
+ COUNT(DISTINCT stu.user_id_) percent_
|
|
|
+ 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="dayStr!=null and dayStr!=''">
|
|
|
+ AND DATE(stu.experience_membership_start_time_)<= #{dayStr}
|
|
|
+ </if>
|
|
|
+ GROUP BY su.organ_id_
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <select id="getCloudStudyDayUseStudentNumData" resultMap="IndexBaseMonthData">
|
|
|
+ SELECT
|
|
|
+ su.organ_id_,
|
|
|
+ #{dayStr} month_,
|
|
|
+ COUNT(DISTINCT smcr.user_id_) total_num_,
|
|
|
+ COUNT(DISTINCT smcr.user_id_) activate_num_,
|
|
|
+ COUNT(DISTINCT smcr.user_id_) percent_
|
|
|
+ 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="dayStr!=null and dayStr!=''">
|
|
|
+ AND DATE(smcr.create_time_)= #{dayStr}
|
|
|
+ </if>
|
|
|
+ GROUP BY su.organ_id_
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <select id="getCloudStudyLivelyStudentNumData" resultMap="IndexBaseMonthData">
|
|
|
+ SELECT
|
|
|
+ t.organ_id_,
|
|
|
+ #{dayStr} month_,
|
|
|
+ COUNT(user_id_) total_num_,
|
|
|
+ COUNT(user_id_) activate_num_,
|
|
|
+ COUNT(user_id_) percent_
|
|
|
+ FROM (SELECT
|
|
|
+ su.organ_id_,
|
|
|
+ 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="dayStr!=null and dayStr!=''">
|
|
|
+ AND DATE(smcr.create_time_) <= #{dayStr}
|
|
|
+ </if>
|
|
|
+ GROUP BY smcr.user_id_) t WHERE t.days>=5
|
|
|
+ GROUP BY t.organ_id_
|
|
|
</select>
|
|
|
</mapper>
|