src/Biz/Course/Copy/Chain/ActivityTestpaperCopy.php
(开头部分) 2KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
<?php
namespace Biz\Course\Copy\Chain;
use Biz\Activity\Service\TestpaperActivityService;
class ActivityTestpaperCopy extends TestpaperCopy
{
/*
* - $source = $activity
* - $config: newActivity, isCopy
* */
protected function copyEntity($source, $config = array())
{
if ($source['mediaType'] != 'testpaper') {
return array();
}
// 同课程下复制 不需要创建新的试卷
if ($source['fromCourseSetId'] === $config['newCourseSetId']) {
$activity = $this->getTestpaperActivityService()->getActivity($source['mediaId']);
return $this->getTestpaperService()->getTestpaperByIdAndType($activity['mediaId'], $source['mediaType']);
}
return $this->doCopyTestpaper($source, $config['newCourseSetId'], $config['newCourseId'], $config['isCopy']);
}
public function doCopyTestpaper($activity, $newCourseSetId, $newCourseId, $isCopy)
{
$mediaType = $activity['mediaType'];
$testpaperId = 0;
if ($mediaType === 'testpaper') {
$testpaperActivity = $this->getActivityConfig($mediaType)->get($activity['mediaId']);
$testpaperId = $testpaperActivity['mediaId'];
} elseif ($mediaType === 'homework' || $mediaType === 'exercise') {
$testpaperId = $activity['mediaId'];
}
if ($testpaperId <= 0) {
return null;
}
$testpaper = $this->getTestpaperService()->getTestpaperByIdAndType($testpaperId, $mediaType);
if (empty($testpaper)) {
return null;
}
$existed = $this->getTestpaperService()->getTestpaperByCopyIdAndCourseSetId($testpaperId, $newCourseSetId);
if (!empty($existed)) {
return $existed; //已复制过,不要重复复制
}
$newTestpaper = $this->baseCopyTestpaper($testpaper, $isCopy);
$newTestpaper['courseSetId'] = $newCourseSetId;
$newTestpaper['courseId'] = $newCourseId;
$newTestpaper = $this->getTestpaperService()->createTestpaper($newTestpaper);
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。