counter = new CacheCourseCounter(); } public function incrUserCount(Event $event, $source, CourseModel $course) { $this->counter->hIncrBy($course->id, 'user_count'); $this->syncCourseCounter($course); $this->syncCourseIndex($course); } public function decrUserCount(Event $event, $source, CourseModel $course) { $this->counter->hDecrBy($course->id, 'user_count'); $this->syncCourseCounter($course); $this->syncCourseIndex($course); } public function incrConsultCount(Event $event, $source, CourseModel $course) { $this->counter->hIncrBy($course->id, 'consult_count'); $this->syncCourseCounter($course); } public function decrConsultCount(Event $event, $source, CourseModel $course) { $this->counter->hDecrBy($course->id, 'consult_count'); $this->syncCourseCounter($course); } public function incrReviewCount(Event $event, $source, CourseModel $course) { $this->counter->hIncrBy($course->id, 'review_count'); $this->syncCourseCounter($course); } public function decrReviewCount(Event $event, $source, CourseModel $course) { $this->counter->hDecrBy($course->id, 'review_count'); $this->syncCourseCounter($course); } public function incrCommentCount(Event $event, $source, CourseModel $course) { $this->counter->hIncrBy($course->id, 'comment_count'); $this->syncCourseCounter($course); } public function decrCommentCount(Event $event, $source, CourseModel $course) { $this->counter->hDecrBy($course->id, 'comment_count'); $this->syncCourseCounter($course); } public function incrFavoriteCount(Event $event, $source, CourseModel $course) { $this->counter->hIncrBy($course->id, 'favorite_count'); $this->syncCourseCounter($course); } public function decrFavoriteCount(Event $event, $source, CourseModel $course) { $this->counter->hDecrBy($course->id, 'favorite_count'); $this->syncCourseCounter($course); } protected function syncCourseCounter(CourseModel $course) { $syncer = new CourseCounterSyncer(); $syncer->addItem($course->id); } protected function syncCourseIndex(CourseModel $course) { $syncer = new CourseIndexSyncer(); $syncer->addItem($course->id); } }