src/Biz/OpenCourse/Service/Impl/OpenCourseDeleteServiceImpl.php

(开头部分) 1KB

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

<?php

namespace Biz\OpenCourse\Service\Impl;

use Biz\BaseService;
use Biz\Common\CommonException;
use Biz\OpenCourse\Dao\OpenCourseLessonDao;
use Biz\OpenCourse\Dao\OpenCourseMemberDao;
use Biz\OpenCourse\Dao\RecommendedCourseDao;
use Biz\OpenCourse\Service\OpenCourseDeleteService;

class OpenCourseDeleteServiceImpl extends BaseService implements OpenCourseDeleteService
{
    public function delete($courseId, $type)
    {
        try {
            $this->beginTransaction();
            $types = array('lessons', 'members', 'course', 'recommend', 'materials');

            if (!in_array($type, $types)) {
                $this->createNewException(CommonException::ERROR_PARAMETER());
            }

            $method = 'delete'.ucwords($type);
            $course = $this->getOpenCourseService()->getCourse($courseId);
            $result = $this->$method($course);
            $this->commit();

            return $result;
        } catch (\Exception $e) {
            $this->rollback();
            throw $e;
        }
    }

    protected function deleteLessons($course)
    {
        $lessonCount = $this->getOpenCourseLessonDao()->count(array('courseId' => $course['id']));

        $count = 0;

        if ($lessonCount > 0) {
            $lessons = $this->getOpenCourseLessonDao()->search(array('courseId' => $course['id']), array('createdTime' => 'desc'), 0, 500);

            foreach ($lessons as $lesson) {
                if (!empty($lesson['mediaId'])) {
                    $this->getUploadFileService()->waveUploadFile($lesson['mediaId'], 'usedCount', -1);
                }

                $result = $this->getOpenCourseLessonDao()->delete($lesson['id']);

                $this->dispatchEvent('open.course.lesson.delete', array('lesson' => $lesson));

                $count += $result;
            }

            $lessonLog = "删除公开课《{$course['title']}》(#{$course['id']})的所有课时";
            $this->getLogService()->info('open_course', 'delete_lesson', $lessonLog);
        }

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

AI 解读 AI

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

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