| | |
| | | package com.qxueyou.scc.admin.progress.service.impl.lecture; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.Date; |
| | | |
| | | import com.qxueyou.scc.admin.classes.model.ClsSubjectLecture; |
| | | import com.qxueyou.scc.admin.classes.service.impl.ClassLectureService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | |
| | | @Autowired |
| | | ProgressDAO dao; |
| | | |
| | | @Autowired |
| | | ClassLectureService classLectureService; |
| | | |
| | | @Override |
| | | public Result addProgress(String targetId, String learnerId, Double start, Double end) { |
| | | public Result addProgress(String targetId, String learnerId, int start, int end) { |
| | | |
| | | if (start > end || start < 0 || end < 0) { |
| | | return new Result(false, "invalid arguments"); |
| | | } |
| | | |
| | | Double[][] progress = dao.mergeProgress(targetId, learnerId, start, end , dao.getProgress(targetId, learnerId)); |
| | | int[][] progress = dao.mergeProgress(targetId, learnerId, start, end , dao.getProgress(targetId, learnerId)); |
| | | |
| | | if (!checkLecture(targetId).isSuccess()) { |
| | | return checkLecture(targetId); |
| | | } |
| | | |
| | | Double sum = StudyProgressUtils.sum(progress); |
| | | int sum = StudyProgressUtils.sum(progress); |
| | | |
| | | Progress p = dao.getProgress(Progress.PROGRESS_TYPE_LECTURE, targetId, learnerId); |
| | | |
| | |
| | | |
| | | //保存学习记录明细 |
| | | this.saveProgressDetail(start, end, targetId, p.getProgressId(), learnerId); |
| | | |
| | | classLectureService.updateLecturetime(targetId); |
| | | |
| | | SubjectProgressTreeV subjectProgressTreeV = dao.getSubjectProgressTreeV(targetId, learnerId); |
| | | |
| | |
| | | * @param progressId |
| | | * @param learnerId |
| | | */ |
| | | private void saveProgressDetail(Double start, Double end, String targetId, String progressId, String learnerId) { |
| | | private void saveProgressDetail(int start, int end, String targetId, String progressId, String learnerId) { |
| | | SubjectLectureProgressDetail detail = new SubjectLectureProgressDetail(); |
| | | detail.setDeleteFlag(false); |
| | | detail.setEnd(end); |
| | |
| | | detail.setTargetId(targetId); |
| | | detail.setProgressId(progressId); |
| | | detail.setLearnerId(learnerId); |
| | | detail.setCreator(ClientUtils.getUserName()); |
| | | detail.setCreateId(ClientUtils.getUserId()); |
| | | detail.setCreateTime(new Date()); |
| | | detail.setUpdateTime(new Date()); |
| | | |
| | | TraceUtils.setCreateTrace(detail); |
| | | |
| | | this.save(detail); |
| | | save(detail); |
| | | } |
| | | |
| | | /** |
| | |
| | | * @param sum |
| | | * @return |
| | | */ |
| | | protected double getProgressPercent(String targetId, Double sum) { |
| | | protected double getProgressPercent(String targetId, int sum) { |
| | | |
| | | return 1.00d; |
| | | } |
| | | |
| | |
| | | return Progress.PROGRESS_TYPE_LECTURE; |
| | | } |
| | | |
| | | protected void updateProgress(String targetId, Progress p, Double sum) { |
| | | protected void updateProgress(String targetId, Progress p, int sum) { |
| | | |
| | | TraceUtils.setUpdateTrace(p); |
| | | p.setProgressValue(BigDecimal.valueOf(Double.valueOf(sum))); |
| | | p.setProgressValue(BigDecimal.valueOf(Long.valueOf(sum))); |
| | | p.setProgressPercent(1d); |
| | | |
| | | save(p); |
| | | |
| | | } |
| | | |
| | | protected Progress newProgress(String targetId, String learnerId, Double sum) { |
| | | protected Progress newProgress(String targetId, String learnerId, int sum) { |
| | | |
| | | Progress p = new Progress(); |
| | | TraceUtils.setCreateTrace(p); |
| | |
| | | p.setLearnerId(learnerId); |
| | | p.setLearnerName(ClientUtils.getUserName()); |
| | | p.setProgressUnit("s"); |
| | | p.setProgressValue(BigDecimal.valueOf(Double.valueOf(sum))); |
| | | p.setProgressValue(BigDecimal.valueOf(Long.valueOf(sum))); |
| | | p.setTargetId(targetId); |
| | | p.setType(Progress.PROGRESS_TYPE_LECTURE); |
| | | p.setProgressPercent(1d); |
| | | p.setDeleteFlag(false); |
| | | p.setCreator(ClientUtils.getUserName()); |
| | | p.setCreateId(ClientUtils.getUserId()); |
| | | p.setCreateTime(new Date()); |
| | | p.setUpdator(ClientUtils.getUserName()); |
| | | p.setUpdateId(ClientUtils.getUserId()); |
| | | p.setUpdateTime(new Date()); |
| | | save(p); |
| | | |
| | | return p; |