diff --git a/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseApi.java b/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseApi.java index 6053f939..4d677279 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseApi.java @@ -306,19 +306,19 @@ public class StudyCourseApi extends ApiBaseController{ if(StringUtils.isBlank(sci.getContentId())){ return error("参数错误:内容"); } - LocalDateTime now=LocalDateTime.now(); +// LocalDateTime now=LocalDateTime.now(); CurrentUser cuser=getCurrent(); //下面的学习时长应该去掉了,不需要 - StudyTime st=new StudyTime(); - st.setContentId(sci.getContentId()); - st.setCourseId(sci.getCourseId()); - st.setDuration(5);//增加5秒的学习时长 - st.setEndTime(now); - st.setStartTime(now); - st.setStudentId(cuser.getAccountId()); - st.setStudentName(cuser.getName()); - st.setStudyId(sci.getStudyId()); +// StudyTime st=new StudyTime(); +// st.setContentId(sci.getContentId()); +// st.setCourseId(sci.getCourseId()); +// st.setDuration(5);//增加5秒的学习时长 +// st.setEndTime(now); +// st.setStartTime(now); +// st.setStudentId(cuser.getAccountId()); +// st.setStudentName(cuser.getName()); +// st.setStudyId(sci.getStudyId()); //检查是否已存在 StudyCourseItem item = studyService.checkHas(sci.getStudyId(),sci.getContentId()); @@ -328,7 +328,7 @@ public class StudyCourseApi extends ApiBaseController{ studyService.updateProcess(item.getId(),sci.getStudyId(),sci.getCourseId(), sci.getContentTotal(),sci.getProgress()); } //追加学习时长 - studyService.appendStudyDuration(st); + //studyService.appendStudyDuration(st); return success(item.getId()); } @@ -337,7 +337,7 @@ public class StudyCourseApi extends ApiBaseController{ sci.setAname(cuser.getName()); studyService.saveStudyInfo(sci); //学习记录成功后处理 - studyService.appendStudyDuration(st); + //studyService.appendStudyDuration(st); return success(sci.getStudyItemId()); }catch(Exception e) { log.error("记录学习课程内容完成错误",e); diff --git a/servers/boe-server-all/src/main/java/com/xboe/school/study/dao/StudyCourseDao.java b/servers/boe-server-all/src/main/java/com/xboe/school/study/dao/StudyCourseDao.java index be5b2f05..0c943c27 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/school/study/dao/StudyCourseDao.java +++ b/servers/boe-server-all/src/main/java/com/xboe/school/study/dao/StudyCourseDao.java @@ -10,6 +10,7 @@ import com.xboe.core.orm.FieldFilters; import com.xboe.core.orm.UpdateBuilder; import com.xboe.module.course.dao.CourseContentDao; import com.xboe.school.study.entity.StudyCourse; +import com.xboe.school.study.entity.StudyCourseItem; @Repository public class StudyCourseDao extends BaseDao { @@ -27,7 +28,8 @@ public class StudyCourseDao extends BaseDao { * @param total */ public void finishCheck(String studyId,String courseId,Integer total){ - int n=scItemDao.count(FieldFilters.eq("studyId",studyId)); + //已完成的内容 + int n=scItemDao.count(FieldFilters.eq("studyId",studyId),FieldFilters.eq("status",StudyCourseItem.STATUS_FINISH)); if(total==null) { total=courseContentDao.count(FieldFilters.eq("courseId", courseId),FieldFilters.eq("deleted",false)); } diff --git a/servers/boe-server-all/src/main/java/com/xboe/school/study/service/IStudyService.java b/servers/boe-server-all/src/main/java/com/xboe/school/study/service/IStudyService.java index 714b82b8..d573e708 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/school/study/service/IStudyService.java +++ b/servers/boe-server-all/src/main/java/com/xboe/school/study/service/IStudyService.java @@ -30,7 +30,7 @@ public interface IStudyService { * @param studyContentId * @param progress */ - void updateProcess(String studyContentId,String studyId, String courseId,int total,Integer progress); + void updateProcess(String studyContentId,String studyId, String courseId,Integer total,Integer progress); /** * 更新最后的学习时间,及学习时间点 diff --git a/servers/boe-server-all/src/main/java/com/xboe/school/study/service/impl/StudyServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/school/study/service/impl/StudyServiceImpl.java index 2e610dd5..1e9fe427 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/school/study/service/impl/StudyServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/school/study/service/impl/StudyServiceImpl.java @@ -61,24 +61,36 @@ public class StudyServiceImpl implements IStudyService{ @Override @Transactional public void saveStudyInfo(StudyContentDto dto) { - //记录课程学习信息 - StudyCourseItem sci=new StudyCourseItem(); + StudyCourseItem sci = scItemDao.findOne(FieldFilters.eq("studyId", dto.getStudyId()),FieldFilters.eq("contentId", dto.getContentId()),FieldFilters.eq("aid", dto.getAid())); LocalDateTime ldt=LocalDateTime.now(); - sci.setStudyId(dto.getStudyId()); - sci.setContentId(dto.getContentId()); - sci.setContentName(dto.getContentName()); - sci.setCourseId(dto.getCourseId()); - - sci.setCsectionId(dto.getCsectionId()); - sci.setProgress(100);//直接设置为学习完成 - sci.setStartTime(ldt); - sci.setAid(dto.getAid()); - sci.setAname(dto.getAname()); - sci.setFinishTime(LocalDateTime.now()); - sci.setLastStudyTime(0);//此项用户记录视频内容当前学习的时间点 + if(sci==null) { + sci=new StudyCourseItem(); + sci.setStartTime(ldt); + sci.setAid(dto.getAid()); + sci.setAname(dto.getAname()); + sci.setLastStudyTime(0);//此项用户记录视频内容当前学习的时间点 + sci.setStudyId(dto.getStudyId()); + sci.setContentId(dto.getContentId()); + sci.setContentName(dto.getContentName()); + sci.setCourseId(dto.getCourseId()); + sci.setCsectionId(dto.getCsectionId()); + } + //进度状态 + if(dto.getProgress()==null) { + sci.setProgress(1); + sci.setStatus(StudyCourseItem.STATUS_STUDYING); + }else if(dto.getProgress().intValue()==100) { + sci.setStatus(StudyCourseItem.STATUS_FINISH); + sci.setProgress(100); + }else { + sci.setStatus(StudyCourseItem.STATUS_STUDYING); + sci.setProgress(dto.getProgress()); + } + //sci.setProgress(100);//直接设置为学习完成 + sci.setFinishTime(ldt); sci.setLastTime(ldt); - sci.setStatus(StudyCourseItem.STATUS_FINISH); - scItemDao.save(sci); + scItemDao.saveOrUpdate(sci); + dto.setStudyItemId(sci.getId()); //检查是否全部学习完成 scDao.finishCheck(dto.getStudyId(),dto.getCourseId(),dto.getContentTotal()); @@ -144,8 +156,12 @@ public class StudyServiceImpl implements IStudyService{ @Override @Transactional - public void updateProcess(String studyContentId,String studyId, String courseId,int total, Integer progress) { - scItemDao.updateMultiFieldById(studyContentId, UpdateBuilder.create("progress",progress)); + public void updateProcess(String studyContentId,String studyId, String courseId,Integer total, Integer progress) { + int status=StudyCourseItem.STATUS_STUDYING; + if(progress.intValue()==100) { + status=StudyCourseItem.STATUS_FINISH; + } + scItemDao.updateMultiFieldById(studyContentId,UpdateBuilder.create("progress",progress),UpdateBuilder.create("status",status)); //检查是否全部学习完成 scDao.finishCheck(studyId,courseId,total);