src/Biz/Course/Copy/Chain/ActivityCopy.php

(开头部分) 2KB

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

<?php

namespace Biz\Course\Copy\Chain;

use Biz\Activity\Config\Activity;
use Biz\Activity\Dao\ActivityDao;
use Biz\Course\Copy\AbstractEntityCopy;

class ActivityCopy extends AbstractEntityCopy
{
    protected function copyEntity($source, $config = array())
    {
        $courseId = $source['id'];
        $newCourseId = $config['newCourse']['id'];
        if (empty($config['newCourseSetId'])) {
            $courseSetId = $config['newCourse']['courseSetId'];
        } else {
            $courseSetId = $config['newCourseSetId'];
        }
        $isCopy = $config['isCopy'];
        // 查询出course下所有activity,新增并保留新旧activity id,用于填充newTask的activityId
        $activities = $this->getActivityDao()->findByCourseId($courseId);

        if (empty($activities)) {
            return array();
        }

        $activityMap = array();
        foreach ($activities as $activity) {
            $newActivity = $this->filterFields($activity);

            $newActivity['fromUserId'] = $this->biz['user']['id'];
            $newActivity['fromCourseId'] = $newCourseId;
            $newActivity['fromCourseSetId'] = $courseSetId;
            $newActivity['copyId'] = $isCopy ? $activity['id'] : 0;

            //create testpaper
            $testId = 0;
            if (in_array($activity['mediaType'], array('testpaper'))) {
                $activityTestpaperCopy = new ActivityTestpaperCopy($this->biz);

                $testpaper = $activityTestpaperCopy->copy($activity, array(
                    'newCourseId' => $newCourseId,
                    'newCourseSetId' => $courseSetId,
                    'isCopy' => $isCopy,
                ));
                $testId = empty($testpaper['id']) ? 0 : $testpaper['id'];
            }

            //create activity config
            $config = $this->getActivityConfig($activity['mediaType']);

            $ext = $config->copy($activity, array(
                'refLiveroom' => $activity['fromCourseSetId'] != $courseSetId,
                'testId' => $testId,
                'newActivity' => $newActivity,
                'isCopy' => $isCopy,
            ));
            //对于testpaper,mediaId指向testpaper_activity.id
            if (!empty($ext)) {

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

AI 解读 AI

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

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