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 @Override
@Transactional @Transactional
public void updateLastTime(String studyContentId, int lastStudyTime,String aid) { public void updateLastTime(String studyContentId, int lastStudyTime,String aid) {
// 获取时长 // 获取时长
StudyCourseItem sci = scItemDao.findOne(FieldFilters.eq("id", studyContentId),FieldFilters.eq("aid", aid)); StudyCourseItem sci = scItemDao.findOne(FieldFilters.eq("id", studyContentId),FieldFilters.eq("aid", aid));
Integer endTime = sci.getLastStudyTime(); // Integer endTime = sci.getLastStudyTime();
// 间隔时长 // // 间隔时长
int abs = 0; // int abs = 0;
if(lastStudyTime - endTime < 0){ // if(lastStudyTime - endTime < 0){
//从头开始 // //从头开始
abs = lastStudyTime; // abs = lastStudyTime;
}else{ // }else{
// 获取时长 // // 获取时长
abs = lastStudyTime - endTime; // abs = lastStudyTime - endTime;
} // }
// 更新最后的学习时间点 // 更新最后的学习时间点
LocalDateTime now=LocalDateTime.now(); LocalDateTime now=LocalDateTime.now();
UpdateBuilder update=UpdateBuilder.from(StudyCourseItem.class); UpdateBuilder update=UpdateBuilder.from(StudyCourseItem.class);
update.addFilter(FieldFilters.eq("id",studyContentId)); update.addFilter(FieldFilters.eq("id",studyContentId));
//只记录时间长的时候的处理 //只记录时间长的时候的处理
update.addFilter(FieldFilters.lt("lastStudyTime", lastStudyTime)); // update.addFilter(FieldFilters.lt("lastStudyTime", sci.getLastStudyTime()));
update.addUpdateField("lastStudyTime", lastStudyTime); update.addUpdateField("lastStudyTime", sci.getLastStudyTime()+lastStudyTime);
update.addUpdateField("lastTime", now); update.addUpdateField("lastTime", now);
scItemDao.update(update.builder()); scItemDao.update(update.builder());
//增加用户的学习时长,在api中调用 //增加用户的学习时长,在api中调用
// 添加学习时长 // 添加学习时长
String contentId = sci.getContentId(); 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); scDao.sqlUpdate(sql,contentId);
} }