public function entryAction(Request $request, $courseId, $lessonId = 0) { $lesson_id = $request->query->get('lesson'); if (!empty($lesson_id)) { $lessonId = $lesson_id; } $user = $this->getCurrentUser(); if (!$user->isLogin()) { return $this->createMessageResponse('info', '你好像忘了登录哦?', null, 3000, $this->generateUrl('login')); } $lesson = $this->getCourseService()->getCourseLesson($courseId, $lessonId); if (empty($lesson)) { return $this->createMessageResponse('info', '课时不存在!'); } if (empty($lesson['mediaId'])) { return $this->createMessageResponse('info', '直播教室不存在!'); } if ($lesson['startTime'] - time() > 7200) { return $this->createMessageResponse('info', '直播还没开始!'); } if ($lesson['endTime'] < time()) { return $this->createMessageResponse('info', '直播已结束!'); } $params = array('liveId' => $lesson['mediaId'], 'provider' => $lesson['liveProvider'], 'user' => $user['email'], 'nickname' => $user['nickname']); if ($this->getCourseService()->isCourseTeacher($courseId, $user['id'])) { $params['role'] = 'teacher'; } else { if ($this->getCourseService()->isCourseStudent($courseId, $user['id'])) { $params['role'] = 'student'; } else { return $this->createMessageResponse('info', '您不是课程学员,不能参加直播!'); } } if ($this->setting("developer.cloud_api_failover", 0)) { $client = new EdusohoLiveClient(); $result = $client->entryLive($params); if (empty($result) || isset($result['error'])) { // return $this->createMessageResponse('info', $result['errorMsg']); } } // $url = $this->generateUrl('live_classroom_url',array( // 'courseId' => $courseId, // 'lessonId' => $lessonId // )); $url = ''; $course = $this->getCourseService()->getCourse($courseId); $course['type'] = 'video'; //$tpl='TopxiaWebBundle:LiveCourse:classroom.html.twig'; $tpl = 'TopxiaWebBundle:LiveCourse:zc-live-learn.html.twig'; $assignBox = array(); $assignBox['course'] = $course; return $this->render($tpl, $assignBox); }
public function entryAction(Request $request, $courseId, $lessonId) { $user = $this->getCurrentUser(); if (!$user->isLogin()) { return $this->createMessageResponse('info', '你好像忘了登录哦?', null, 3000, $this->generateUrl('login')); } $lesson = $this->getCourseService()->getCourseLesson($courseId, $lessonId); if (empty($lesson)) { return $this->createMessageResponse('info', '课时不存在!'); } if (empty($lesson['mediaId'])) { return $this->createMessageResponse('info', '直播教室不存在!'); } if ($lesson['startTime'] - time() > 7200) { return $this->createMessageResponse('info', '直播还没开始!'); } if ($lesson['endTime'] < time()) { return $this->createMessageResponse('info', '直播已结束!'); } $params = array(); if ($this->getCourseService()->isCourseTeacher($courseId, $user['id'])) { $teachers = $this->getCourseService()->findCourseTeachers($courseId); $teacher = array_shift($teachers); if ($teacher['userId'] == $user['id']) { $params['role'] = 'teacher'; } else { $params['role'] = 'speaker'; } } elseif ($this->getCourseService()->isCourseStudent($courseId, $user['id'])) { $params['role'] = 'student'; } else { return $this->createMessageResponse('info', '您不是课程学员,不能参加直播!'); } $liveAccount = CloudAPIFactory::create('leaf')->get('/me/liveaccount'); $params['id'] = $user['id']; $params['nickname'] = $user['nickname']; return $this->forward('TopxiaWebBundle:Liveroom:_entry', array('id' => $lesson['mediaId']), $params); $params['liveId'] = $lesson['mediaId']; $params['provider'] = $lesson['liveProvider']; $params['user'] = $user['email']; $params['nickname'] = $user['nickname']; $client = new EdusohoLiveClient(); $result = $client->entryLive($params); if (empty($result) || isset($result['error'])) { return $this->createMessageResponse('info', $result['errorMsg']); } return $this->render("TopxiaWebBundle:LiveCourse:classroom.html.twig", array('courseId' => $courseId, 'lessonId' => $lessonId, 'lesson' => $lesson, 'url' => $this->generateUrl('live_classroom_url', array('courseId' => $courseId, 'lessonId' => $lessonId)))); }