|
|
@@ -307,4 +307,65 @@
|
|
|
</if>
|
|
|
</select>
|
|
|
|
|
|
+ <select id="getFinishRate" resultType="java.util.Map">
|
|
|
+ SELECT
|
|
|
+ z2.courseId AS courseId,
|
|
|
+ TRUNC(z1.alreadyCount * 1.0 / z2.allCount, 2) AS finishRate
|
|
|
+ FROM (
|
|
|
+ SELECT
|
|
|
+ t1.courseId AS courseId,
|
|
|
+ IFNULL(COUNT(t1.courseId AS courseId),0) AS alreadyCount
|
|
|
+ from(
|
|
|
+ SELECT
|
|
|
+ csb.USER_ID AS userId,
|
|
|
+ cch.ID AS hourId,
|
|
|
+ cc.ID AS chapterId,
|
|
|
+ ci.COURSE_ID AS courseId
|
|
|
+ FROM (SELECT csb1.USER_ID,csb1.HOUR_ID FROM COURSE_STUDENT_BURIALPOINT csb1 WHERE csb1.DELETE_FLAG ='NOT_DELETE' AND csb1.FUNC_TYPE='1' AND csb1.TYPE='1' GROUP BY csb1.USER_ID,csb1.HOUR_ID) csb
|
|
|
+ LEFT JOIN COURSE_CLASSHOUR cch ON cch.ID=csb.HOUR_ID AND cch.DELETE_FLAG ='NOT_DELETE'
|
|
|
+ LEFT JOIN COURSE_CHAPTER cc ON cc.ID=cch.CHAPTER_ID AND cc.DELETE_FLAG ='NOT_DELETE'
|
|
|
+ LEFT JOIN COURSE_INFO ci ON ci.COURSE_ID =cc.COURSE_ID AND ci.DELETE_FLAG ='NOT_DELETE'
|
|
|
+ WHERE 1=1
|
|
|
+ )t1
|
|
|
+ WHERE 1=1
|
|
|
+ AND t1.hourId IS NOT NULL
|
|
|
+ AND t1.chapterId IS NOT NULL
|
|
|
+ AND t1.courseId IS NOT NULL
|
|
|
+ <if test="userId != null and userId != ''">
|
|
|
+ AND t1.userId = #{userId}
|
|
|
+ </if>
|
|
|
+ <if test="courseId != null and courseId != ''">
|
|
|
+ AND t1.courseId = #{courseId}
|
|
|
+ </if>
|
|
|
+ GROUP BY t1.courseId
|
|
|
+ )z1
|
|
|
+ LEFT JOIN(
|
|
|
+ SELECT
|
|
|
+ t2.courseId AS courseId,
|
|
|
+ IFNULL(COUNT(t2.courseId AS courseId),0) AS allCount
|
|
|
+ FROM(
|
|
|
+ SELECT
|
|
|
+ cch.ID AS hourId,
|
|
|
+ cc.ID AS chapterId,
|
|
|
+ ci.COURSE_ID AS courseId
|
|
|
+ FROM COURSE_CLASSHOUR cch
|
|
|
+ LEFT JOIN COURSE_CHAPTER cc ON cc.ID=cch.CHAPTER_ID AND cc.DELETE_FLAG ='NOT_DELETE'
|
|
|
+ LEFT JOIN COURSE_INFO ci ON ci.COURSE_ID =cc.COURSE_ID AND ci.DELETE_FLAG ='NOT_DELETE'
|
|
|
+ WHERE cch.DELETE_FLAG ='NOT_DELETE'
|
|
|
+ )t2
|
|
|
+ WHERE 1=1
|
|
|
+ AND t2.hourId IS NOT NULL
|
|
|
+ AND t2.chapterId IS NOT NULL
|
|
|
+ AND t2.courseId IS NOT NULL
|
|
|
+ <if test="courseId != null and courseId != ''">
|
|
|
+ AND t2.courseId = #{courseId}
|
|
|
+ </if>
|
|
|
+ GROUP BY t2.courseId
|
|
|
+ )z2 ON z1.courseId=z2.courseId
|
|
|
+ where 1=1
|
|
|
+ <if test="courseId != null and courseId != ''">
|
|
|
+ AND z2.courseId = #{courseId}
|
|
|
+ </if>
|
|
|
+ </select>
|
|
|
+
|
|
|
</mapper>
|