ソースを参照

课程学习进度计算

yangfeng 1 年間 前
コミット
711ced2e9c

+ 6 - 0
web/src/main/java/com/ynfy/buss/course/course/entity/Course.java

@@ -249,6 +249,12 @@ public class Course implements Serializable {
     @TableField(exist = false)
     private Integer finishNum;
 
+    /**
+     * 已经学过的
+     */
+    @TableField(exist = false)
+    private Integer studyNum;
+
     /**
      * 课程学习进度
      */

+ 1 - 0
web/src/main/java/com/ynfy/buss/course/course/service/impl/CourseServiceImpl.java

@@ -103,6 +103,7 @@ public class CourseServiceImpl extends ServiceImpl<CourseMapper, Course> impleme
         UserCourseStudyVO studyVO = studyList.stream().filter(o1 -> o1.getCourseId().equals(course.getId())).findFirst().get();
         course.setTaskNum(studyVO.getTaskNum());
         course.setFinishNum(studyVO.getFinishNum());
+        course.setStudyNum(studyVO.getStudyNum());
         if (!Objects.isNull(studyVO.getTaskNum())) {
             //课程学习进度
             course.setCourseStudyProcess(NumberUtil.div(studyVO.getFinishNum(), studyVO.getTaskNum()).doubleValue());

+ 6 - 0
web/src/main/java/com/ynfy/buss/course/usercoursecatalog/entity/vo/UserCourseStudyVO.java

@@ -21,4 +21,10 @@ public class UserCourseStudyVO implements Serializable {
      */
     private Integer finishNum;
 
+
+    /**
+     * 已经学过的
+     */
+    private Integer studyNum;
+
 }

+ 24 - 18
web/src/main/java/com/ynfy/buss/course/usercoursecatalog/mapper/xml/UserCourseCatalogMapper.xml

@@ -5,32 +5,38 @@
         <result column="course_id" property="courseId" jdbcType="VARCHAR"/>
         <result column="task_num" property="taskNum" jdbcType="INTEGER"/>
         <result column="finish_num" property="finishNum" jdbcType="INTEGER"/>
+        <result column="study_num" property="studyNum" jdbcType="INTEGER"/>
     </resultMap>
 
     <select id="getUserCourseStudy" resultMap="studyMap">
         SELECT
-        cc.course_id,
-        count(*) AS task_num,
-        sum(
-        CASE
-
-        WHEN ucc.learn_process IS NOT NULL
-        AND ucc.learn_process >= 1 THEN
-        1 ELSE 0
-        END
-        ) AS finish_num
+            cc.course_id,
+            count(*) AS task_num,
+            sum(
+                CASE
+                    WHEN ucc.learn_process IS NOT NULL
+                AND ucc.learn_process >= 1 THEN
+                1 ELSE 0
+                END
+            ) AS finish_num,
+            sum(
+                CASE
+                    WHEN ucc.learn_process IS NOT NULL
+                THEN
+                    1 ELSE 0 END
+                ) as study_num
         FROM
-        course_catalog cc
+            course_catalog cc
         LEFT JOIN user_course_catalog ucc ON cc.id = ucc.course_catalog_id
-        AND ucc.user_id = #{userId}
+                AND ucc.user_id = #{userId}
         WHERE
-        cc.course_id IN
-        <foreach collection="courseIds" index="index" item="id" open="(" separator="," close=")">
-            #{id}
-        </foreach>
-        AND cc.type = 2
+            cc.course_id IN
+            <foreach collection="courseIds" index="index" item="id" open="(" separator="," close=")">
+                #{id}
+            </foreach>
+            AND cc.type = 2
         GROUP BY
-        cc.course_id
+            cc.course_id
     </select>
 
     <select id="selectPageList" resultType="com.ynfy.buss.course.usercoursecatalog.entity.dto.UserStudyDTO">