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));
 }
예제 #3
0
 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;
 }
예제 #4
0
 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));
 }
예제 #5
0
 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));
 }