| | |
| | | ProgressDAO dao; |
| | | |
| | | @Override |
| | | public Result addProgress(String targetId, String learnerId, int start, int end) { |
| | | public Result addProgress(String targetId, String learnerId, Double start, Double end) { |
| | | |
| | | if (start > end || start < 0 || end < 0) { |
| | | return new Result(false, "invalid arguments"); |
| | | } |
| | | |
| | | int[][] progress = dao.mergeProgress(targetId, learnerId, start, end , dao.getProgress(targetId, learnerId)); |
| | | Double[][] progress = dao.mergeProgress(targetId, learnerId, start, end , dao.getProgress(targetId, learnerId)); |
| | | |
| | | if (!checkLecture(targetId).isSuccess()) { |
| | | return checkLecture(targetId); |
| | | } |
| | | |
| | | int sum = StudyProgressUtils.sum(progress); |
| | | Double sum = StudyProgressUtils.sum(progress); |
| | | |
| | | Progress p = dao.getProgress(Progress.PROGRESS_TYPE_LECTURE, targetId, learnerId); |
| | | |
| | |
| | | } else { |
| | | updateProgress(targetId, p, sum); |
| | | } |
| | | |
| | | |
| | | //保存学习记录明细 |
| | | this.saveProgressDetail(start, end, targetId, p.getProgressId(), learnerId); |
| | | |
| | |
| | | protected Result checkLecture(String targetId) { |
| | | return new Result(true); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 保存学习记录明细 |
| | | * |
| | | * |
| | | * @param start |
| | | * @param end |
| | | * @param targetId |
| | | * @param progressId |
| | | * @param learnerId |
| | | */ |
| | | private void saveProgressDetail(int start, int end, String targetId, String progressId, String learnerId) { |
| | | private void saveProgressDetail(Double start, Double 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); |
| | | |
| | | |
| | | TraceUtils.setCreateTrace(detail); |
| | | |
| | | |
| | | this.save(detail); |
| | | } |
| | | |
| | | /** |
| | | * 获取进度百分比 |
| | | * |
| | | * |
| | | * @param targetId |
| | | * @param sum |
| | | * @return |
| | | */ |
| | | protected double getProgressPercent(String targetId, int sum) { |
| | | protected double getProgressPercent(String targetId, Double sum) { |
| | | return 1.00d; |
| | | } |
| | | |
| | |
| | | return Progress.PROGRESS_TYPE_LECTURE; |
| | | } |
| | | |
| | | protected void updateProgress(String targetId, Progress p, int sum) { |
| | | protected void updateProgress(String targetId, Progress p, Double sum) { |
| | | |
| | | TraceUtils.setUpdateTrace(p); |
| | | p.setProgressValue(BigDecimal.valueOf(Long.valueOf(sum))); |
| | | p.setProgressValue(BigDecimal.valueOf(Double.valueOf(sum))); |
| | | p.setProgressPercent(1d); |
| | | |
| | | save(p); |
| | | |
| | | } |
| | | |
| | | protected Progress newProgress(String targetId, String learnerId, int sum) { |
| | | protected 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(Long.valueOf(sum))); |
| | | p.setProgressValue(BigDecimal.valueOf(Double.valueOf(sum))); |
| | | p.setTargetId(targetId); |
| | | p.setType(Progress.PROGRESS_TYPE_LECTURE); |
| | | p.setProgressPercent(1d); |
| | | save(p); |
| | | |
| | | |
| | | return p; |
| | | } |
| | | |