public function liveCapacityAction(Request $request, $id) { $course = $this->getCourseService()->tryManageCourse($id); $client = new EdusohoLiveClient(); $liveCapacity = $client->getCapacity(); return $this->createJsonResponse($liveCapacity); }
public function liveCourseSettingAction(Request $request) { $courseSetting = $this->getSettingService()->get('course', array()); $liveCourseSetting = $this->getSettingService()->get('live-course', array()); $client = new EdusohoLiveClient(); $capacity = $client->getCapacity(); $default = array('live_course_enabled' => '0'); $this->getSettingService()->set('course', $courseSetting); $this->getSettingService()->set('live-course', $liveCourseSetting); $setting = array_merge($default, $liveCourseSetting); if ($request->getMethod() == 'POST') { $liveCourseSetting = $request->request->all(); $liveCourseSetting['live_student_capacity'] = empty($capacity['capacity']) ? 0 : $capacity['capacity']; $setting = array_merge($courseSetting, $liveCourseSetting); $this->getSettingService()->set('live-course', $liveCourseSetting); $this->getSettingService()->set('course', $setting); $hiddenMenus = $this->getSettingService()->get('menu_hiddens', array()); if ($liveCourseSetting['live_course_enabled']) { unset($hiddenMenus['admin_live_course_add']); unset($hiddenMenus['admin_live_course']); } else { $hiddenMenus['admin_live_course_add'] = true; $hiddenMenus['admin_live_course'] = true; } $this->getSettingService()->set('menu_hiddens', $hiddenMenus); $this->getLogService()->info('system', 'update_settings', "更新课程设置", $setting); $this->setFlashMessage('success', '课程设置已保存!'); } $setting['live_student_capacity'] = empty($capacity['capacity']) ? 0 : $capacity['capacity']; return $this->render('TopxiaAdminBundle:System:live-course-setting.html.twig', array('courseSetting' => $setting, 'capacity' => $capacity)); }
public function calculateLiveCourseLeftCapacityInTimeRange($startTime, $endTime, $excludeLessonId) { $client = new EdusohoLiveClient(); $liveStudentCapacity = $client->getCapacity(); $liveStudentCapacity = empty($liveStudentCapacity['capacity']) ? 0 : $liveStudentCapacity['capacity']; $lessons = $this->getLessonDao()->findTimeSlotOccupiedLessons($startTime, $endTime, $excludeLessonId); $courseIds = ArrayToolkit::column($lessons, 'courseId'); $courseIds = array_unique($courseIds); $courseIds = array_values($courseIds); $courses = $this->getCourseDao()->findCoursesByIds($courseIds); $maxStudentNum = ArrayToolkit::column($courses, 'maxStudentNum'); $timeSlotOccupiedStuNums = array_sum($maxStudentNum); return $liveStudentCapacity - $timeSlotOccupiedStuNums; }
public function createAction(Request $request) { $user = $this->getUserService()->getCurrentUser(); $userProfile = $this->getUserService()->getUserProfile($user['id']); $isLive = $request->query->get('flag'); $type = $isLive == "isLive" ? 'live' : 'normal'; if ($type == 'live') { $courseSetting = $this->setting('course', array()); if (!empty($courseSetting['live_course_enabled'])) { $client = new EdusohoLiveClient(); $capacity = $client->getCapacity(); } else { $capacity = array(); } if (empty($courseSetting['live_course_enabled'])) { return $this->createMessageResponse('info', '请前往后台开启直播,尝试创建!'); } if (empty($capacity['capacity']) && !empty($courseSetting['live_course_enabled'])) { return $this->createMessageResponse('info', '请联系EduSoho官方购买直播教室,然后才能开启直播功能!'); } } if (false === $this->get('security.context')->isGranted('ROLE_TEACHER')) { throw $this->createAccessDeniedException(); } if ($request->getMethod() == 'POST') { $course = $request->request->all(); $course = $this->getCourseService()->createCourse($course); return $this->redirect($this->generateUrl('course_manage', array('id' => $course['id']))); } return $this->render('TopxiaWebBundle:Course:create.html.twig', array('userProfile' => $userProfile, 'type' => $type)); }
public function courseSettingAction(Request $request) { $courseSetting = $this->getSettingService()->get('course', array()); $client = new EdusohoLiveClient(); $capacity = $client->getCapacity(); $default = array('welcome_message_enabled' => '0', 'welcome_message_body' => '{{nickname}},欢迎加入课程{{course}}', 'buy_fill_userinfo' => '0', 'teacher_modify_price' => '1', 'teacher_search_order' => '0', 'teacher_manage_student' => '0', 'teacher_export_student' => '0', 'student_download_media' => '0', 'free_course_nologin_view' => '1', 'relatedCourses' => '0', 'coursesPrice' => '0', 'allowAnonymousPreview' => '1', 'live_course_enabled' => '0', 'userinfoFields' => array(), "userinfoFieldNameArray" => array(), "copy_enabled" => '0'); $this->getSettingService()->set('course', $courseSetting); $courseSetting = array_merge($default, $courseSetting); if ($request->getMethod() == 'POST') { $courseSetting = $request->request->all(); if (!isset($courseSetting['userinfoFields'])) { $courseSetting['userinfoFields'] = array(); } if (!isset($courseSetting['userinfoFieldNameArray'])) { $courseSetting['userinfoFieldNameArray'] = array(); } $courseSetting['live_student_capacity'] = empty($capacity['capacity']) ? 0 : $capacity['capacity']; $this->getSettingService()->set('course', $courseSetting); $this->getLogService()->info('system', 'update_settings', "更新课程设置", $courseSetting); $this->setFlashMessage('success', '课程设置已保存!'); } $courseSetting['live_student_capacity'] = empty($capacity['capacity']) ? 0 : $capacity['capacity']; $userFields = $this->getUserFieldService()->getAllFieldsOrderBySeqAndEnabled(); if ($courseSetting['userinfoFieldNameArray']) { foreach ($userFields as $key => $fieldValue) { if (!in_array($fieldValue['fieldName'], $courseSetting['userinfoFieldNameArray'])) { $courseSetting['userinfoFieldNameArray'][] = $fieldValue['fieldName']; } } } return $this->render('TopxiaAdminBundle:System:course-setting.html.twig', array('courseSetting' => $courseSetting, 'capacity' => $capacity, 'userFields' => $userFields, 'capacity' => $capacity)); }