src/Biz/Live/Job/UpdateLiveStatusJob.php

(开头部分) 1KB

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

<?php

namespace Biz\Live\Job;

use Codeages\Biz\Framework\Scheduler\AbstractJob;
use AppBundle\Common\ArrayToolkit;
use Biz\Util\EdusohoLiveClient;
use Biz\Activity\Service\LiveActivityService;

class UpdateLiveStatusJob extends AbstractJob
{
    private $liveApi;

    public function execute()
    {
        $courseLives = $this->findLivesByActivity();
        $openCourseLives = $this->findLivesByOpenCourseLesson();

        $lives = array_merge($courseLives, $openCourseLives);

        $results = $this->checkLiveStatusFromCloud($lives);
        $this->updateLivesStatus($lives, $results);
    }

    private function findLivesByActivity()
    {
        $activities = $this->getActivityService()->findFinishedLivesWithinTwoHours();
        if (empty($activities)) {
            return array();
        }

        $mediaIds = ArrayToolkit::column($activities, 'mediaId');

        $conditions = array(
            'ids' => $mediaIds,
            'replayStatus' => 'ungenerated',
            'progressStatusNotEqual' => EdusohoLiveClient::LIVE_STATUS_CLOSED,
        );
        $liveActivities = $this->getLiveActivityService()->search($conditions, null, 0, PHP_INT_MAX);

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

        $lives = array();
        foreach ($liveActivities as $live) {
            $lives[] = array('id' => $live['id'], 'type' => 'course', 'liveId' => $live['liveId'], 'liveProvider' => $live['liveProvider']);
        }

        return $lives;
    }

    private function findLivesByOpenCourseLesson()
    {
        $lessons = $this->getOpenCourseService()->findFinishedLivesWithinTwoHours();

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

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

AI 解读 AI

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

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