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 算力,解读结果公开显示在下面。
还没有人解读过这个文件。