src/Biz/Course/Copy/Chain/CourseSetQuestionCopy.php
(开头部分) 1KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
<?php
namespace Biz\Course\Copy\Chain;
use AppBundle\Common\ArrayToolkit;
use Biz\Course\Copy\AbstractEntityCopy;
use Biz\File\Service\UploadFileService;
use Biz\Question\Service\QuestionService;
use Biz\Testpaper\Service\TestpaperService;
class CourseSetQuestionCopy extends AbstractEntityCopy
{
/**
* 复制链说明:
* CourseSet
* - Question
* - Attachment 问题附件.
* 由于exercise类型任务的题目列表是使用时自动创建的,因此需要把题目事先复制过去.
*
* @param
*/
protected function copyEntity($source, $config = array())
{
$newCourse = $config['newCourse'];
return $this->doCopyQuestions($newCourse, $source);
}
/*
* $ids = question ids
* */
protected function doCopyQuestions($newCourse, $sourceCourse)
{
$this->copyParentQuestions($newCourse, $sourceCourse['courseSetId']);
$this->copyChildrenQuestions($newCourse, $sourceCourse['courseSetId']);
$questions = $this->getQuestionService()->findQuestionsByCourseSetId($newCourse['courseSetId']);
$questions = ArrayToolkit::index($questions, 'copyId');
$this->copyAttachments($questions);
return $questions;
}
protected function copyParentQuestions($newCourse, $sourceCourseSetId)
{
$conditions = array(
'parentId' => 0,
'courseSetId' => $sourceCourseSetId,
);
$parentQuestions = $this->getQuestionService()->search($conditions, array(), 0, PHP_INT_MAX);
if (empty($parentQuestions)) {
return;
}
$newQuestions = array();
foreach ($parentQuestions as $question) {
$newQuestion = $this->processFields($newCourse, $question);
$newQuestion['parentId'] = 0;
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。