src/Biz/Xapi/Type/DoTestpaperType.php

(开头部分) 2KB

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

<?php

namespace Biz\Xapi\Type;

use AppBundle\Common\ArrayToolkit;

class DoTestpaperType extends Type
{
    const TYPE = 'completed_testpaper';

    public function packages($statements)
    {
        if (empty($statements)) {
            return array();
        }
        try {
            $testpaperResultIds = ArrayToolkit::column($statements, 'target_id');
            $testpaperResults = $this->getTestpaperService()->findTestpaperResultsByIds($testpaperResultIds);
            $testpaperResults = ArrayToolkit::index($testpaperResults, 'id');

            $testpaperIds = ArrayToolkit::column($testpaperResults, 'testId');
            $testpapers = $this->getTestpaperService()->findTestpapersByIds($testpaperIds);
            $testpapers = ArrayToolkit::index($testpapers, 'id');

            $courses = $this->findCourses(
                array($testpaperResults, 'courseId')
            );

            $sdk = $this->createXAPIService();
            $pushStatements = array();

            foreach ($statements as $statement) {
                try {
                    $testpaperResult = $testpaperResults[$statement['target_id']];
                    $course = $courses[$testpaperResult['courseId']];
                    $testpaper = $testpapers[$testpaperResult['testId']];
                    $object = array(
                        'id' => $testpaperResult['id'],
                        'name' => $testpaperResult['paperName'],
                        'course' => $course,
                    );
                    $actor = $this->getActor($statement['user_id']);
                    $result = array(
                        'score' => array(
                            'max' => $testpaper['score'],
                            'min' => 0,
                            'raw' => $testpaperResult['score'],
                        ),
                    );
                    if ('none' != $testpaperResult['passedStatus']) {
                        $result['success'] = ('passed' == $testpaperResult['passedStatus']) ? true : false;
                    }

                    $pushStatements[] = $sdk->finishTestpaper($actor, $object, $result, $statement['uuid'], $statement['occur_time'], false);
                } catch (\Exception $e) {
                    $this->biz['logger']->error($e);
                }
            }

            return $pushStatements;

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

AI 解读 AI

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

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