public function onUserUnfollowed(ServiceEvent $event) { $friend = $event->getSubject(); $user = $this->getUserService()->getUser($friend['fromId']); $message = array('userId' => $user['id'], 'userName' => $user['nickname'], 'opration' => 'unfollow'); $this->getNotificationService()->notify($friend['toId'], 'user-follow', $message); }
public function onPostDelete(ServiceEvent $event) { $post = $event->getSubject(); if ($post['parentId'] == 0) { $this->getArticleService()->count($post['targetId'], 'postNum', -1); } }
public function onAnnouncementCreated(ServiceEvent $event) { $announcement = $event->getSubject(); if ($announcement['targetType'] == 'global') { $tuiClient = new EdusohoTuiClient(); $result = $tuiClient->sendAnnouncement($announcement); } }
public function onCourseTeacherUpdate(ServiceEvent $event) { $context = $event->getSubject(); $courseId = $context["courseId"]; $findClassroomsByCourseId = $this->getClassroomService()->findClassroomIdsByCourseId($courseId); foreach ($findClassroomsByCourseId as $key => $value) { $this->getClassroomService()->updateClassroomTeachers($value); } }
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 onMessageSended(ServiceEvent $event) { $message = $event->getSubject(); $user = $this->getUserService()->getUser($message['fromId']); $largeAvatar = empty($user['largeAvatar']) ? '' : $this->getFileService()->parseFileUri($user['largeAvatar']); $message['title'] = $user['nickname']; $host = 'http://' . $_SERVER['HTTP_HOST']; $message['custom'] = json_encode(array('fromId' => $message['fromId'], 'nickname' => $user['nickname'], 'imgUrl' => empty($largeAvatar) ? $host . '/assets/img/default/avatar.png' : $host . '/files/' . $largeAvatar['path'], 'typeMsg' => $message['type'], 'typeBusiness' => in_array('ROLE_TEACHER', $user['roles']) ? 'teacher' : 'friend', 'createdTime' => time())); $tuiClient = new EdusohoTuiClient(); $result = $tuiClient->sendMessage($message); }
public function onOrderPaid(ServiceEvent $event) { $order = $event->getSubject(); if ($order['coinAmount'] > 0 || $order['amount'] > 0) { $record = $this->getInviteRecordService()->getRecordByInvitedUserId($order['userId']); if (!empty($record) && $record['inviteUserCardId'] == null) { $inviteCoupon = $this->getCouponService()->generateInviteCoupon($record['inviteUserId'], 'pay'); if (!empty($inviteCoupon)) { $this->getInviteRecordService()->addInviteRewardRecordToInvitedUser($order['userId'], array('inviteUserCardId' => $inviteCoupon['id'])); } } } }
public function onCourseNoteCancelLike(ServiceEvent $event) { $note = $event->getSubject(); $this->getNoteService()->count($note['id'], 'likeNum', -1); }
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 onCourseLessonReplay(ServiceEvent $event) { $courseLessonReplay = $event->getSubject(); $courseIds = ArrayToolkit::column($this->getCourseService()->findCoursesByParentIdAndLocked($courseLessonReplay['courseId'], 1), 'id'); $lessonIds = ArrayToolkit::column($this->getCourseService()->findLessonsByParentIdAndLockedCourseIds($courseLessonReplay['lessonId'], $courseIds), 'id'); $courseLessonReplay = array('title' => $courseLessonReplay['title'], 'replayId' => $courseLessonReplay['replayId'], 'userId' => $courseLessonReplay['userId']); foreach ($courseIds as $key => $courseId) { $courseLessonReplay['courseId'] = $courseId; $courseLessonReplay['lessonId'] = $lessonIds[$key]; $courseLessonReplay['createdTime'] = time(); $this->getCourseService()->addCourseLessonReplay($courseLessonReplay); } }
public function onQuestionDelete(ServiceEvent $event) { $question = $event->getSubject(); $questionTarget = explode('/', $question['target']); $questionCourseTarget = explode('-', $questionTarget[0]); $courseId = $questionCourseTarget[1]; $courseIds = ArrayToolkit::column($this->getCourseService()->findCoursesByParentIdAndLocked($courseId, 1), 'id'); if ($courseIds) { $num = count(explode('/', $question['target'])); if ($num > 1) { $questionLessonTarget = explode('-', $questionTarget[1]); $lessonId = $questionLessonTarget[1]; $lessonIds = ArrayToolkit::column($this->getCourseService()->findLessonsByCopyIdAndLockedCourseIds($lessonId, $courseIds), 'id'); } $lockedTarget = ''; foreach ($courseIds as $key => $courseId) { if ($num > 1) { $lockedTarget .= "'course-" . $courseId . "/lesson-" . $lessonIds[$key] . "',"; } else { $lockedTarget .= "'course-" . $courseId . "',"; } } $lockedTarget = "(" . trim($lockedTarget, ',') . ")"; $questionIds = ArrayToolkit::column($this->getQuestionService()->findQuestionsByCopyIdAndLockedTarget($question['id'], $lockedTarget), 'id'); foreach ($questionIds as $questionId) { $this->getQuestionService()->deleteQuestion($questionId); } } }
public function onCourseMemberDelete(ServiceEvent $event) { $member = $event->getSubject(); $courseIds = ArrayToolkit::column($this->getCourseService()->findCoursesByParentIdAndLocked($member['courseId'], 1), 'id'); if ($courseIds) { foreach ($courseIds as $courseId) { $this->getCourseService()->deleteMemberByCourseIdAndUserId($courseId, $member['userId']); } } }
public function onChapterUpdate(ServiceEvent $event) { $context = $event->getSubject(); $argument = $context['argument']; if (isset($argument['parentId'])) { unset($argument['parentId']); } $chapter = $context['chapter']; $courseIds = ArrayToolkit::column($this->getCourseService()->findCoursesByParentIdAndLocked($chapter['courseId'], 1), 'id'); if ($courseIds) { $chapterIds = ArrayToolkit::column($this->getCourseService()->findChaptersByCopyIdAndLockedCourseIds($chapter['id'], $courseIds), 'id'); foreach ($chapterIds as $key => $chapterId) { $argument['courseId'] = $courseIds[$key]; $this->getCourseService()->updateChapter($courseIds[$key], $chapterId, $argument); } } }
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 onCourseLessonDelete(ServiceEvent $event) { $context = $event->getSubject(); $lesson = $context['lesson']; $jobs = $this->getCrontabService()->findJobByTargetTypeAndTargetId('lesson', $lesson['id']); if ($jobs) { $this->deleteJob($jobs); } }
public function onDiscountPass(ServiceEvent $event) { $discount = $event->getSubject(); $from = array('type' => 'global'); $to = array('type' => 'global'); $body = array('type' => 'discount.' . $discount['type']); $content; switch ($discount['type']) { case 'free': $content = "【限时免费】"; break; case 'discount': $content = "【限时打折】"; break; default: $content = "【全站打折】"; break; } $this->push('打折活动', $content . $discount['name'], $from, $to, $body); }
public function onTestpaperItemUpdate(ServiceEvent $event) { $context = $event->getSubject(); $argument = $context['argument']; $testpaper = $context['testpaper']; $testpaperTarget = explode('-', $testpaper['target']); $courseId = $testpaperTarget[1]; $courseIds = ArrayToolkit::column($this->getCourseService()->findCoursesByParentIdAndLocked($courseId, 1), 'id'); if ($courseIds) { $lockedTarget = ''; foreach ($courseIds as $courseId) { $lockedTarget .= "'course-" . $courseId . "',"; } $lockedTarget = "(" . trim($lockedTarget, ',') . ")"; $testpaperIds = ArrayToolkit::column($this->getTestpaperService()->findTestpapersByCopyIdAndLockedTarget($testpaper['id'], $lockedTarget), 'id'); foreach ($testpaperIds as $testpaperId) { $this->getTestpaperService()->updateTestpaperItems($testpaperId, $argument); } } }
public function onTestpaperItemDelete(ServiceEvent $event) { $context = $event->getSubject(); $item = $context['item']; $testpaper = $context['testpaper']; $testpaperTarget = explode('-', $testpaper['target']); $courseId = $testpaperTarget[1]; $courseIds = ArrayToolkit::column($this->getCourseService()->findCoursesByParentIdAndLocked($courseId, 1), 'id'); if ($courseIds) { $lockedTarget = ''; foreach ($courseIds as $courseId) { $lockedTarget .= "'course-" . $courseId . "',"; } $lockedTarget = "(" . trim($lockedTarget, ',') . ")"; $testpaperIds = ArrayToolkit::column($this->getTestpaperService()->findTestpapersByPIdAndLockedTarget($testpaper['id'], $lockedTarget), 'id'); //重新生题,删除试卷已存在的题目 if (!$item) { foreach ($testpaperIds as $testpaperId) { $this->getTestpaperService()->deleteTestpaperItemByTestId($testpaperId); } return; } $testpaperItemIds = ArrayToolkit::column($this->getTestpaperService()->findTestpaperItemsByPIdAndLockedTestIds($item['id'], $testpaperIds), 'id'); foreach ($testpaperItemIds as $testpaperItemId) { $this->getTestpaperService()->deleteTestpaperItem($testpaperItemId); } } }
public function onCoursePictureUpdate(ServiceEvent $event) { $context = $event->getSubject(); $argument = $context['argument']; $course = $context['course']; $courseIds = ArrayToolkit::column($this->getCourseService()->findCoursesByParentIdAndLocked($course['id'], 1), 'id'); if ($courseIds) { foreach ($courseIds as $courseId) { $this->getCourseService()->changeCoursePicture($courseId, $argument); } } }