|
@@ -812,32 +812,64 @@
|
|
|
) as courseUserNum
|
|
|
</select>
|
|
|
|
|
|
- <select id="countUserRanking" resultType="Map">
|
|
|
- SELECT
|
|
|
- (
|
|
|
- SELECT
|
|
|
- count( fcc.user_id )
|
|
|
- FROM
|
|
|
- fs_user_course_count fcc
|
|
|
- LEFT JOIN fs_user ON fs_user.user_id = fcc.user_id
|
|
|
- LEFT JOIN company_user ON fs_user.company_user_id = company_user.user_id
|
|
|
- LEFT JOIN fs_user_course_video fcv ON fcv.course_id = fcc.course_id
|
|
|
- WHERE
|
|
|
- ( company_user.parent_id = 8563 )
|
|
|
- AND fcc.complete_watch_count > 0
|
|
|
- group by fcc.user_id )
|
|
|
- /
|
|
|
- (SELECT
|
|
|
- count( fcc.user_id )
|
|
|
- FROM
|
|
|
- fs_user_course_count fcc
|
|
|
- LEFT JOIN fs_user ON fs_user.user_id = fcc.user_id
|
|
|
- LEFT JOIN company_user ON fs_user.company_user_id = company_user.user_id
|
|
|
- LEFT JOIN fs_user_course_video fcv ON fcv.course_id = fcc.course_id
|
|
|
- WHERE
|
|
|
- ( company_user.parent_id = 8563 )
|
|
|
- group by fcc.user_id
|
|
|
- ) as
|
|
|
+ <select id="countUserRanking" resultType="FsUserRankingVO">
|
|
|
+ SELECT
|
|
|
+ company_user.nick_name as userName,
|
|
|
+ ifnull(
|
|
|
+ ROUND((COUNT( CASE WHEN fcc.complete_watch_count > 0 THEN 1 END ) / count( fcc.user_id ))*100,2),0
|
|
|
+ ) as completeRate
|
|
|
+ FROM
|
|
|
+ fs_user_course_count fcc
|
|
|
+ LEFT JOIN fs_user ON fs_user.user_id = fcc.user_id
|
|
|
+ LEFT JOIN company_user ON fs_user.company_user_id = company_user.user_id
|
|
|
+ LEFT JOIN fs_user_course_video fcv ON fcv.course_id = fcc.course_id
|
|
|
+ WHERE
|
|
|
+ company_user.parent_id = #{userId}
|
|
|
+ <if test="startTime != null and startTime !='' ">
|
|
|
+ AND fcc.create_time >= #{startTime}
|
|
|
+ </if>
|
|
|
+ <if test="endTime != null and endTime != ''">
|
|
|
+ AND fcc.create_time <= #{endTime}
|
|
|
+ </if>
|
|
|
+ <if test="courseId != null and courseId != ''">
|
|
|
+ AND fcc.course_id = #{courseId}
|
|
|
+ </if>
|
|
|
+ <if test="videoId != null and videoId != ''">
|
|
|
+ AND fcv.video_id = #{videoId}
|
|
|
+ </if>
|
|
|
+ group by fcc.user_id
|
|
|
+ order by completeRate #{order}
|
|
|
+ limit 20
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <select id="countCourseRanking" resultType="FsUserRankingVO">
|
|
|
+ SELECT
|
|
|
+ company_user.nick_name as userName,
|
|
|
+ ifnull(ROUND(
|
|
|
+ (COUNT( CASE WHEN fs_course_answer_logs.is_right = 1 THEN 1 END ) / count( fs_user.user_id ))
|
|
|
+ *100,2),0
|
|
|
+ ) as answerRightRate
|
|
|
+ FROM
|
|
|
+ fs_course_answer_logs
|
|
|
+ LEFT JOIN fs_user ON fs_user.user_id = fs_course_answer_logs.user_id
|
|
|
+ LEFT JOIN company_user ON company_user.user_id = fs_user.company_user_id
|
|
|
+ WHERE
|
|
|
+ company_user.parent_id = #{userId}
|
|
|
+ <if test="startTime != null and startTime !='' ">
|
|
|
+ AND fs_course_answer_logs.create_time >= #{startTime}
|
|
|
+ </if>
|
|
|
+ <if test="endTime != null and endTime != ''">
|
|
|
+ AND fs_course_answer_logs.create_time <= #{endTime}
|
|
|
+ </if>
|
|
|
+ <if test="courseId != null and courseId != ''">
|
|
|
+ AND fs_course_answer_logs.course_id = #{courseId}
|
|
|
+ </if>
|
|
|
+ <if test="videoId != null and videoId != ''">
|
|
|
+ AND fs_course_answer_logs.video_id = #{videoId}
|
|
|
+ </if>
|
|
|
+ group by fs_user.user_id
|
|
|
+ order by answerRightRate #{order}
|
|
|
+ limit 20
|
|
|
</select>
|
|
|
|
|
|
</mapper>
|