public function onTestpaperCreate(ServiceEvent $event) { $testpaper = $event->getSubject(); $items = $event->getArgument('items'); $id = $testpaper['id']; $testpaperTarget = explode('-', $testpaper['target']); $courseId = $testpaperTarget[1]; $courseIds = ArrayToolkit::column($this->getCourseService()->findCoursesByParentIdAndLocked($courseId, 1), 'id'); if ($courseIds) { $testpaper['pId'] = $testpaper['id']; unset($testpaper['id']); foreach ($courseIds as $courseId) { $testpaper['target'] = "course-" . $courseId; $addtestpaper = $this->getTestpaperService()->addTestpaper($testpaper); foreach ($items as $item) { $item['pId'] = $item['id']; unset($item['id']); $item['testId'] = $addtestpaper['id']; $this->getTestpaperService()->createTestpaperItem($item); } } $lockedTarget = ''; foreach ($courseIds as $courseId) { $lockedTarget .= "'course-" . $courseId . "',"; } $lockedTarget = "(" . trim($lockedTarget, ',') . ")"; $testpaperIds = ArrayToolkit::column($this->getTestpaperService()->findTestpapersByPIdAndLockedTarget($id, $lockedTarget), 'id'); $testpaper = $this->getTestpaperService()->getTestpaper($id); $fields = array("score" => $testpaper['score'], "itemCount" => $testpaper['itemCount'], "metas" => $testpaper['metas']); foreach ($testpaperIds as $testpaperId) { $this->getTestpaperService()->editTestpaper($testpaperId, $fields); } } }
public function onPostDelete(ServiceEvent $event) { $post = $event->getSubject(); $this->getClassroomService()->waveClassroom($post['targetId'], 'postNum', 0 - $event->getArgument('deleted')); $adoptedPostCount = $this->getThreadService()->searchPostsCount(array('threadId' => $post['threadId'], 'adopted' => 1)); if (empty($adoptedPostCount)) { $this->getThreadService()->cancelThreadSolved($post['threadId']); } }
public function onTestpaperFinish(ServiceEvent $event) { $testpaper = $event->getSubject(); $testpaperResult = $event->getArgument('testpaperResult'); //TODO need to use targetHelper class for consistency $target = explode('-', $testpaper['target']); $course = $this->getCourseService()->getCourse($target[1]); $this->getStatusService()->publishStatus(array('type' => 'finished_testpaper', 'objectType' => 'testpaper', 'objectId' => $testpaper['id'], 'private' => $course['status'] == 'published' ? 0 : 1, 'properties' => array('testpaper' => $this->simplifyTestpaper($testpaper), 'result' => $this->simplifyTestpaperResult($testpaperResult)))); }
public function onTestPaperFinished(ServiceEvent $event) { $testpaper = $event->getSubject(); $testpaperResult = $event->getArgument('testpaperResult'); $target = explode('-', $testpaperResult['target']); if (isset($target[3])) { $lesson = $this->getCourseService()->getLesson($target[3]); $targetObject = array('id' => $lesson['id'], 'type' => 'testpaper', 'passedStatus' => $testpaperResult['passedStatus'], 'userId' => $testpaperResult['userId']); $this->_finishTask('studyplan', $targetObject); } }
public function onTestpaperFinish(ServiceEvent $event) { $testpaper = $event->getSubject(); $testpaperResult = $event->getArgument('testpaperResult'); //TODO need to use targetHelper class for consistency $target = explode('-', $testpaper['target']); $course = $this->getCourseService()->getCourse($target[1]); if ($course['parentId']) { $classroom = $this->getClassroomService()->findClassroomByCourseId($course['id']); $classroom = $this->getClassroomService()->getClassroom($classroom['classroomId']); if (array_key_exists('showable', $classroom) && $classroom['showable'] == 1) { $private = 0; } else { $private = 1; } } $this->getStatusService()->publishStatus(array('type' => 'finished_testpaper', 'objectType' => 'testpaper', 'objectId' => $testpaper['id'], 'private' => $course['status'] == 'published' ? 0 : 1, 'private' => $private == 0 ? 0 : 1, 'properties' => array('testpaper' => $this->simplifyTestpaper($testpaper), 'result' => $this->simplifyTestpaperResult($testpaperResult)))); }
public function onCourseNoteUpdate(ServiceEvent $event) { $note = $event->getSubject(); $preStatus = $event->getArgument('preStatus'); $classroom = $this->getClassroomService()->findClassroomByCourseId($note['courseId']); $course = $this->getCourseService()->getCourse($note['courseId']); if ($classroom && $note['status'] && !$preStatus) { $this->getClassroomService()->waveClassroom($classroom['classroomId'], 'noteNum', +1); } if ($classroom && !$note['status'] && $preStatus) { $this->getClassroomService()->waveClassroom($classroom['classroomId'], 'noteNum', -1); } if ($course && $note['status'] && !$preStatus) { $this->getCourseService()->waveCourse($note['courseId'], 'noteNum', +1); } if ($course && !$note['status'] && $preStatus) { $this->getCourseService()->waveCourse($note['courseId'], 'noteNum', -1); } }
public function onOrderPaySuccess(ServiceEvent $event) { $order = $event->getSubject(); $targetType = $event->getArgument('targetType'); $smsType = 'sms_' . $targetType . '_buy_notify'; if ($this->getSmsService()->isOpen($smsType)) { $userId = $order['userId']; $user = $this->getUserService()->getUser($userId); $parameters = array(); $parameters['order_title'] = $order['title']; $parameters['order_title'] = StringToolkit::cutter($parameters['order_title'], 20, 15, 4); if ($targetType == 'coin') { $parameters['totalPrice'] = $order['amount'] . '元'; } else { $parameters['totalPrice'] = $order['totalPrice'] . '元'; } $description = $parameters['order_title'] . '成功回执'; if (strlen($user['verifiedMobile']) != 0) { $this->getSmsService()->smsSend($smsType, array($userId), $description, $parameters); } } }
public function onClassroomGuest(ServiceEvent $event) { $classroom = $event->getSubject(); $userId = $event->getArgument('userId'); $this->getStatusService()->publishStatus(array('type' => 'become_auditor', 'classroomId' => $classroom['id'], 'objectType' => 'classroom', 'objectId' => $classroom['id'], 'private' => $classroom['status'] == 'published' ? 0 : 1, 'userId' => $userId, 'properties' => array('classroom' => $this->simplifyClassroom($classroom)))); }
public function onLessonFinish(ServiceEvent $event) { $lesson = $event->getSubject(); $course = $event->getArgument('course'); $private = $course['status'] == 'published' ? 0 : 1; if ($course['parentId']) { $classroom = $this->getClassroomService()->findClassroomByCourseId($course['id']); $classroom = $this->getClassroomService()->getClassroom($classroom['classroomId']); if (array_key_exists('showable', $classroom) && $classroom['showable'] == 1) { $private = 0; } else { $private = 1; } } $this->getStatusService()->publishStatus(array('type' => 'learned_lesson', 'courseId' => $course['id'], 'objectType' => 'lesson', 'objectId' => $lesson['id'], 'private' => $private, 'properties' => array('course' => $this->simplifyCousrse($course), 'lesson' => $this->simplifyLesson($lesson)))); }
public function onCourseLessonStart(ServiceEvent $event) { $lesson = $event->getSubject(); $course = $event->getArgument('course'); $learn = $event->getArgument('learn'); $target = $this->getTarget('course', $learn['courseId']); $from = array('type' => 'course', 'id' => $learn['courseId'], 'image' => $target['image']); $to = array('type' => 'user', 'id' => $learn['userId']); $body = array('type' => 'lesson.start', 'lessonId' => $learn['lessonId'], 'courseId' => $learn['courseId'], 'learnStartTime' => $learn['startTime']); $this->push($course['title'], $lesson['title'], $from, $to, $body); }
public function onCourseQuit(ServiceEvent $event) { $course = $event->getSubject(); $userId = $event->getArgument('userId'); $this->deleteGroupMember('course', $course['id'], $userId); }
public function onLessonFinish(ServiceEvent $event) { $lesson = $event->getSubject(); $course = $event->getArgument('course'); $this->getStatusService()->publishStatus(array('type' => 'learned_lesson', 'courseId' => $course['id'], 'objectType' => 'lesson', 'objectId' => $lesson['id'], 'private' => $course['status'] == 'published' ? 0 : 1, 'properties' => array('course' => $this->simplifyCousrse($course), 'lesson' => $this->simplifyLesson($lesson)))); }