api/src/Topxia/Api/Resource/Exercise.php

(开头部分) 2KB

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

<?php

namespace Topxia\Api\Resource;

use Biz\Accessor\AccessorInterface;
use Biz\Course\Service\CourseService;
use Silex\Application;
use AppBundle\Common\ArrayToolkit;
use Symfony\Component\HttpFoundation\Request;

class Exercise extends BaseResource
{
    public function get(Application $app, Request $request, $id)
    {
        $idType = $request->query->get('_idType');
        if ('lesson' == $idType) {
            $task = $this->getTaskService()->getTask($id);
            $course = $this->getCourseService()->getCourse($task['courseId']);

            if (CourseService::DEFAULT_COURSE_TYPE != $course['courseType']) {
                return $this->error('404', '该练习不存在!');
            }

            //只为兼容移动端学习引擎2.0以前的版本,之后需要修改
            $conditions = array(
                'categoryId' => $task['categoryId'],
                'status' => 'published',
                'type' => 'exercise',
            );
            $exerciseTasks = $this->getTaskService()->searchTasks($conditions, null, 0, 1);
            if (!$exerciseTasks) {
                return $this->error('404', '该练习不存在!');
            }
            $exerciseTask = $exerciseTasks[0];

            $activity = $this->getActivityService()->getActivity($exerciseTask['activityId']);
            $exercise = $this->getTestpaperService()->getTestpaperByIdAndType($activity['mediaId'], $activity['mediaType']);
        } else {
            $exercise = $this->getTestpaperService()->getTestpaperByIdAndType($id, 'exercise');

            $conditions = array(
                'mediaId' => $exercise['id'],
                'mediaType' => 'exercise',
                'fromCourseId' => $exercise['courseId'],
            );
            $activities = $this->getActivityService()->search($conditions, null, 0, 1);

            if (!$activities) {
                return $this->error('404', '该练习任务不存在!');
            }
            $activity = $activities[0];
        }
        $exercise['lessonId'] = $activity['id'];

        $access = $this->getCourseService()->canLearnCourse($exercise['courseId']);
        if (AccessorInterface::SUCCESS !== $access['code']) {
            return $this->error($access['code'], $access['msg']);
        }

        if (empty($exercise)) {

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

AI 解读 AI

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

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