api/src/Topxia/Api/Resource/Course/Lesson.php

(开头部分) 1KB

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

<?php

namespace Topxia\Api\Resource\Course;

use Biz\Accessor\AccessorInterface;
use Biz\Course\Service\CourseService;
use Silex\Application;
use AppBundle\Common\SettingToolkit;
use AppBundle\Component\MediaParser\ParserProxy;
use Topxia\Api\Resource\BaseResource;
use Symfony\Component\HttpFoundation\Request;

class Lesson extends BaseResource
{
    public function get(Application $app, Request $request, $id)
    {
        $task = $this->getTaskService()->getTask($id);

        if (empty($task)) {
            return $this->error('4041202', "ID为#{$id}的课时不存在");
        }

        $access = $this->getCourseService()->canLearnTask($task['id']);

        $isTrail = false;
        if (!(AccessorInterface::SUCCESS == $access['code'] || $isTrail = 'allow_trial' == $access['code'])) {
            return $this->error($access['code'], $access['msg']);
        }

        $course = $this->getCourseService()->getCourse($task['courseId']);

        $lesson = $this->getCourseService()->convertTasks(array($task), $course);
        $lesson = array_shift($lesson);

        //直播回放
        if ('live' == $lesson['type'] && 'videoGenerated' == $lesson['replayStatus']) {
            $lesson['type'] = 'video';
        }

        $currentUser = $this->getCurrentUser();

        if ($currentUser->isLogin()) {
            $this->getTaskService()->startTask($lesson['id']);
        }

        if ($line = $request->query->get('line')) {
            $lesson['hlsLine'] = $line;
        }
        $hls_encryption = $request->query->get('hls_encryption');
        $enable_hls_encryption_plus = SettingToolkit::getSetting('storage.enable_hls_encryption_plus');

        if (!empty($hls_encryption) && $enable_hls_encryption_plus) {
            $lesson['hlsEncryption'] = true;
        }

        $ssl = $request->isSecure() ? true : false;

        $lesson = $this->filter($this->convertLessonContent($lesson, $ssl, $isTrail));

        $hasRemainTime = $this->hasRemainTime($lesson, $task['type']);

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

AI 解读 AI

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

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