src/Biz/Course/Service/Impl/LearningDataAnalysisServiceImpl.php

(开头部分) 2KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

<?php

namespace Biz\Course\Service\Impl;

use Biz\BaseService;
use Biz\Course\CourseException;
use Biz\Course\MemberException;
use Biz\Course\Service\CourseService;
use Biz\Course\Service\LearningDataAnalysisService;
use Biz\Course\Service\MemberService;
use Biz\Task\Service\TaskService;
use Biz\Course\Dao\LearningDataAnalysisDao;

class LearningDataAnalysisServiceImpl extends BaseService implements LearningDataAnalysisService
{
    public function getUserLearningProgress($courseId, $userId)
    {
        $course = $this->getCourseService()->getCourse($courseId);

        $courseMember = $this->getMemberService()->getCourseMember($courseId, $userId);

        return $this->makeProgress($courseMember['learnedCompulsoryTaskNum'], $course['compulsoryTaskNum']);
    }

    public function makeProgress($learnedNum, $total)
    {
        $progress = array(
            'percent' => 0,
            'decimal' => 0,
            'finishedCount' => 0,
            'total' => $total,
        );

        $progress['finishedCount'] = $learnedNum > $progress['total'] ? $progress['total'] : $learnedNum;
        $progress['percent'] = $progress['finishedCount'] ? round($progress['finishedCount'] / $progress['total'], 2) * 100 : 0;
        $progress['decimal'] = $progress['finishedCount'] ? round($progress['finishedCount'] / $progress['total'], 2) : 0;
        $progress['percent'] = $progress['percent'] > 100 ? 100 : $progress['percent'];
        $progress['decimal'] = $progress['decimal'] > 1 ? 1 : $progress['decimal'];

        return $progress;
    }

    public function getUserLearningProgressByCourseIds($courseIds, $userId)
    {
        $statisticData = $this->getLearningDataAnalysisDao()->sumStatisticDataByCourseIdsAndUserId($courseIds, $userId);

        return $this->makeProgress($statisticData['learnedCompulsoryTaskNum'], $statisticData['compulsoryTaskNum']);
    }

    public function getUserLearningSchedule($courseId, $userId)
    {
        $course = $this->getCourseService()->getCourse($courseId);

        if (empty($course)) {
            $this->createNewException(CourseException::NOTFOUND_COURSE());
        }

        $member = $this->getMemberService()->getCourseMember($courseId, $userId);

        if (!$member) {

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。