src/Topxia/MobileBundleV2/Processor/Impl/LessonProcessorImpl.php

(开头部分) 2KB

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

<?php

namespace Topxia\MobileBundleV2\Processor\Impl;

use AppBundle\Common\FileToolkit;
use AppBundle\Common\ArrayToolkit;
use AppBundle\Component\MediaParser\ParserProxy;
use Symfony\Component\HttpFoundation\Response;
use Topxia\MobileBundleV2\Processor\BaseProcessor;
use Topxia\MobileBundleV2\Processor\LessonProcessor;
use Symfony\Component\HttpFoundation\BinaryFileResponse;

class LessonProcessorImpl extends BaseProcessor implements LessonProcessor
{
    public function getVideoMediaUrl()
    {
        $courseId = $this->request->get('courseId');
        $lessonId = $this->request->get('lessonId');

        if (empty($courseId)) {
            return $this->createErrorResponse('not_courseId', '课程信息不存在!');
        }

        $user = $this->controller->getUserByToken($this->request);
        $lesson = $this->controller->getCourseService()->getCourseLesson($courseId, $lessonId);

        if (empty($lesson)) {
            return $this->createErrorResponse('not_courseId', '课时信息不存在!');
        }

        if (1 == $lesson['free']) {
            if ($user->isLogin()) {
                if ($this->controller->getCourseMemberService()->isCourseStudent($courseId, $user['id'])) {
                    $this->controller->getCourseService()->startLearnLesson($courseId, $lessonId);
                }
            }

            $lesson = $this->coverLesson($lesson);

            if ('self' == $lesson['mediaSource']) {
                $response = $this->curlRequest('GET', $lesson['mediaUri'], null);

                return new Response($response);
            }

            return $lesson['mediaUri'];
        }

        if (!$user->isLogin()) {
            return $this->createErrorResponse('not_login', '您尚未登录,不能查看该课时');
        }

        $this->controller->getCourseService()->startLearnLesson($courseId, $lessonId);
        $member = $this->controller->getCourseMemberService()->getCourseMember($courseId, $user['id']);
        $member = $this->previewAsMember($member, $courseId, $user);

        if ($member && in_array($member['role'], array('teacher', 'student'))) {
            $lesson = $this->coverLesson($lesson);

            if ('self' == $lesson['mediaSource']) {

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

AI 解读 AI

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

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