getParams(); $page = $pagerQuery->getPage(); $limit = $pagerQuery->getLimit(); $courseSearcher = new CourseSearcherService(); $paginator = new XunSearchPaginator([ 'xs' => $courseSearcher->getXS(), 'highlight' => $courseSearcher->getHighlightFields(), 'query' => $params['query'], 'page' => $page, 'limit' => $limit, ]); $pager = $paginator->getPaginate(); return $this->handleCourses($pager); } public function handleCourses($pager) { if ($pager->total_items == 0) { return $pager; } $items = []; foreach ($pager->items as $course) { $items[] = [ 'id' => (int)$course['id'], 'title' => $course['title'], 'cover' => $course['cover'], 'summary' => $course['summary'], 'market_price' => (float)$course['market_price'], 'vip_price' => (float)$course['vip_price'], 'model' => $course['model'], 'level' => $course['level'], 'user_count' => (int)$course['user_count'], 'lesson_count' => (int)$course['lesson_count'], 'review_count' => (int)$course['review_count'], 'favorite_count' => (int)$course['favorite_count'], 'teacher' => json_decode($course['teacher']), 'category' => json_decode($course['category']), ]; } $pager->items = $items; return $pager; } }