package com.qxueyou.scc.admin.progress.service.impl.lecture; import java.math.BigDecimal; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.qxueyou.scc.admin.progress.model.Progress; import com.qxueyou.scc.base.util.ClientUtils; import com.qxueyou.scc.base.util.TraceUtils; import com.qxueyou.scc.teach.subject.model.SubjectLecture; import com.qxueyou.scc.teach.subject.model.view.LectureDocV; import com.qxueyou.scc.teach.subject.service.ILectureService; @Service("LectureDocProgressService") public class LectureDocProgressService extends LectureCommonProgressService { @Autowired ILectureService lectureService; @Override public String getType() { return SubjectLecture.TYPE_DOC; } /** * »ñÈ¡½ø¶È°Ù·Ö±È * * @param targetId * @param sum * @return */ @Override public double getProgressPercent(String targetId, Double sum) { LectureDocV LectureDoc = lectureService.readDocLecture(targetId); return Math.min((double) sum / (double) LectureDoc.getDocPages(), 1.0d); } @Override public Progress newProgress(String targetId, String learnerId, Double 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.setTargetId(targetId); p.setType(Progress.PROGRESS_TYPE_LECTURE); p.setProgressPercent(getProgressPercent(targetId, sum)); save(p); return p; } @Override public void updateProgress(String targetId, Progress p, Double sum) { TraceUtils.setUpdateTrace(p); p.setProgressValue(BigDecimal.valueOf(Double.valueOf(sum))); if(p.getProgressPercent() == null || getProgressPercent(targetId, sum)>p.getProgressPercent()) { p.setProgressPercent(getProgressPercent(targetId, sum)); } save(p); } }