he2802 3 rokov pred
rodič
commit
87a292936c

+ 27 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserStudyRecordServiceImpl.java

@@ -260,7 +260,33 @@ public class UserStudyRecordServiceImpl extends ServiceImpl<UserStudyRecordMappe
         }else{
             add.setFirstStartTime(add.getStartTime());
         }
-        this.save(add);
+        if(courseSectionVo.getSectionType()==1){
+            UserStudyRecordQueryBo queryBo = new UserStudyRecordQueryBo();
+            queryBo.setUserId(bo.getUserId());
+            queryBo.setGradeId(bo.getGradeId());
+            queryBo.setGoodsId(bo.getGoodsId());
+            queryBo.setCourseId(bo.getCourseId());
+            queryBo.setModuleId(bo.getModuleId());
+            queryBo.setChapterId(bo.getChapterId());
+            queryBo.setSectionId(bo.getSectionId());
+            UserStudyRecordVo lastVo = queryLast(queryBo);
+            if(Validator.isEmpty(lastVo)||lastVo.getVideoCurrentTime().longValue()>add.getVideoCurrentTime().longValue()){
+                //如果没有历史数据或者之前播放时长比现在晚,则新增观看记录
+                this.save(add);
+            }else{
+                //修改最后一条记录,减少观看数据
+                lastVo.setVideoCurrentTime(add.getVideoCurrentTime());
+                lastVo.setEndTime(add.getEndTime());
+                lastVo.setStatus(add.getStatus());
+                lastVo.setStudyDuration(add.getStudyDuration()+lastVo.getStudyDuration());
+                UserStudyRecord update = BeanUtil.toBean(lastVo, UserStudyRecord.class);
+                update.setUpdateTime(DateUtils.getNowTime());
+                this.updateById(update);
+            }
+        }else{
+            this.save(add);
+        }
+
         //新增学时记录,照片
         userPeriodSave(add, bo);
         //完成当天学习计划