he2802 2 éve
szülő
commit
a7c9cb42f0

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/mapper/ClassGradeUserMapper.java

@@ -30,6 +30,8 @@ public interface ClassGradeUserMapper extends BaseMapper<ClassGradeUser> {
 
     List<ClassPeriodStudentVo> listUserWeekPeriod(ClassGradeUserQueryBo bo);
 
+    Long listUserWeekStudyTime(ClassGradeUserQueryBo bo);
+
     List<ClassPeriodStudentVo> listUserVideoRecord(ClassGradeUserQueryBo bo);
 
     List<ClassPeriodStudentVo> listUserPeriodExport(ClassGradeUserQueryBo bo);

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeUserServiceImpl.java

@@ -1258,6 +1258,8 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
             classGradeUserQueryBo.setGradeId(classPeriodStudentVo.getGradeId());
             classGradeUserQueryBo.setUserId(classPeriodStudentVo.getUserId());
             classGradeUserQueryBo.setGoodsId(classPeriodStudentVo.getGoodsId());
+            Long studyTime =  baseMapper.listUserWeekStudyTime(classGradeUserQueryBo);
+            classPeriodStudentVo.setStudyTime(studyTime);
             //    List<ClassPeriodUserVo> classPeriodUserVos1 = baseMapper.listPeriod(classGradeUserQueryBo);
             //    ClassPeriodUserVo classPeriodUserVos = classPeriodUserVos1.get(0);
             //    classPeriodUserVos.setPending(classPeriodStudentVo.getSecAllNum()-classPeriodUserVos.getPass()-classPeriodUserVos.getCheat());

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/ClassPeriodStudentVo.java

@@ -221,4 +221,6 @@ public class ClassPeriodStudentVo {
 	private Long recordEndTime;
 	@ApiModelProperty("最近在线时间")
 	private Long onLineTime;
+	@ApiModelProperty("学习的总时长(秒)")
+	private Long studyTime;
 }

+ 31 - 1
zhongzheng-system/src/main/resources/mapper/modules/grade/ClassGradeUserMapper.xml

@@ -500,6 +500,36 @@
         </if>
     </select>
 
+    <select id="listUserWeekStudyTime" parameterType="com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo"
+            resultType="Long">
+        SELECT
+            IFNULL( SUM( cs.duration_time ), 0 )
+        FROM
+            (
+                SELECT
+                    section_id
+                FROM
+                    user_study_record
+                WHERE
+                    user_id = #{userId}
+                  AND grade_id = #{gradeId}
+                  AND current_status = 1
+                  AND `status` = 1
+                <if test="searchWeekStartTime != null and searchWeekStartTime != '' ">
+                    AND update_time >= #{searchWeekStartTime}
+                </if>
+                <if test="searchWeekEndTime != null and searchWeekEndTime != '' ">
+                    AND #{searchWeekEndTime} >=  update_time
+                </if>
+                GROUP BY
+                    course_id,
+                    module_id,
+                    chapter_id,
+                    section_id
+            ) usr
+                LEFT JOIN course_section cs ON usr.section_id = cs.section_id
+    </select>
+
     <select id="listUserWeekPeriod" parameterType="com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo"
             resultMap="ClassPeriodStudentVo">
         SELECT
@@ -545,7 +575,7 @@
         where 1=1
         and cgu.`status` =1
         <if test="searchWeekStartTime != null and searchWeekEndTime != '' ">
-            AND (SELECT count(*) from user_study_record usr where usr.user_id = cgu.user_id AND usr.grade_id = cgu.grade_id AND usr.current_status = 1 AND #{searchWeekEndTime} >=  usr.create_time AND usr.create_time >=#{searchWeekStartTime}) >0
+            AND (SELECT count(*) from user_study_record usr where usr.user_id = cgu.user_id AND usr.grade_id = cgu.grade_id AND usr.current_status = 1 AND #{searchWeekEndTime} >=  usr.update_time AND usr.update_time >=#{searchWeekStartTime}) >0
         </if>
         <if test="periodPlush != null and periodPlush != ''">
             AND cgu.period_plush = #{periodPlush}