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);
 }
예제 #2
0
 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))));
 }