getParams(); if (!empty($params['category_id'])) { $categoryService = new CategoryService(); $childNodeIds = $categoryService->getChildNodeIds($params['category_id']); $params['category_id'] = $childNodeIds; } $params['published'] = 1; $params['deleted'] = 0; $sort = $pagerQuery->getSort(); $page = $pagerQuery->getPage(); $limit = $pagerQuery->getLimit(); $courseRepo = new CourseRepo(); $pager = $courseRepo->paginate($params, $sort, $page, $limit); return $this->handleCourses($pager); } protected function handleCourses($pager) { if ($pager->total_items == 0) { return $pager; } $courses = $pager->items->toArray(); $items = []; $imgBaseUrl = kg_img_base_url(); foreach ($courses as $course) { $course['cover'] = $imgBaseUrl . $course['cover']; $course['attrs'] = json_decode($course['attrs'], true); $items[] = [ 'id' => $course['id'], 'title' => $course['title'], 'cover' => $course['cover'], 'summary' => $course['summary'], 'market_price' => $course['market_price'], 'vip_price' => $course['vip_price'], 'model' => $course['model'], 'level' => $course['level'], 'attrs' => $course['attrs'], 'user_count' => $course['user_count'], 'lesson_count' => $course['lesson_count'], 'review_count' => $course['review_count'], 'favorite_count' => $course['favorite_count'], ]; } $pager->items = $items; return $pager; } }