upd 上课时长记录埋点

This commit is contained in:
lu
2023-10-18 17:22:04 +08:00
parent f40005d2aa
commit 27c3de568c

View File

@@ -214,38 +214,40 @@ public class StudyServiceImpl implements IStudyService{
}
// 更新 前端传输已学习时长
@Override
@Transactional
public void updateLastTime(String studyContentId, int lastStudyTime,String aid) {
// 获取时长
StudyCourseItem sci = scItemDao.findOne(FieldFilters.eq("id", studyContentId),FieldFilters.eq("aid", aid));
Integer endTime = sci.getLastStudyTime();
// 间隔时长
int abs = 0;
if(lastStudyTime - endTime < 0){
//从头开始
abs = lastStudyTime;
}else{
// 获取时长
abs = lastStudyTime - endTime;
}
// Integer endTime = sci.getLastStudyTime();
// // 间隔时长
// int abs = 0;
// if(lastStudyTime - endTime < 0){
// //从头开始
// abs = lastStudyTime;
// }else{
// // 获取时长
// abs = lastStudyTime - endTime;
// }
// 更新最后的学习时间点
LocalDateTime now=LocalDateTime.now();
UpdateBuilder update=UpdateBuilder.from(StudyCourseItem.class);
update.addFilter(FieldFilters.eq("id",studyContentId));
//只记录时间长的时候的处理
update.addFilter(FieldFilters.lt("lastStudyTime", lastStudyTime));
update.addUpdateField("lastStudyTime", lastStudyTime);
// update.addFilter(FieldFilters.lt("lastStudyTime", sci.getLastStudyTime()));
update.addUpdateField("lastStudyTime", sci.getLastStudyTime()+lastStudyTime);
update.addUpdateField("lastTime", now);
scItemDao.update(update.builder());
//增加用户的学习时长,在api中调用
// 添加学习时长
String contentId = sci.getContentId();
UpdateBuilder updSc=UpdateBuilder.from(StudyCourse.class);
// 追加总时长
String sql="Update boe_study_course set total_duration=total_duration+"+abs+",status=(case when status<2 then 2 else status end),progress=(case when progress=0 then 1 else progress end) where id=?1";
// String sql="Update boe_study_course set total_duration=total_duration+"+abs+",status=(case when status<2 then 2 else status end),progress=(case when progress=0 then 1 else progress end) where id=?1";
String sql="Update boe_study_course set total_duration=total_duration+"+lastStudyTime+",status=(case when status<2 then 2 else status end),progress=(case when progress=0 then 1 else progress end) where id=?1";
scDao.sqlUpdate(sql,contentId);
}