1
0
mirror of https://gitee.com/koogua/course-tencent-cloud.git synced 2025-06-21 19:22:45 +08:00
2020-07-02 20:52:21 +08:00

75 lines
1.8 KiB
PHP

<?php
namespace App\Http\Web\Controllers;
use App\Services\Frontend\Search\CourseHotQuery as CourseHotQueryService;
use App\Services\Frontend\Search\CourseList as CourseListService;
use App\Services\Frontend\Search\CourseRelatedQuery as CourseRelatedQueryService;
use App\Traits\Response as ResponseTrait;
/**
* @RoutePrefix("/search")
*/
class SearchController extends Controller
{
use ResponseTrait;
/**
* @Get("/", name="web.search.list")
*/
public function listAction()
{
$query = $this->request->get('query', ['trim']);
if (empty($query)) {
return $this->response->redirect(['for' => 'web.course.list']);
}
$service = new CourseHotQueryService();
$hotQueries = $service->handle();
$service = new CourseRelatedQueryService();
$relatedQueries = $service->handle($query);
$service = new CourseListService();
$pager = $service->handle();
$pager->items = kg_array_object($pager->items);
$this->view->setVar('hot_queries', $hotQueries);
$this->view->setVar('related_queries', $relatedQueries);
$this->view->setVar('pager', $pager);
}
/**
* @Get("/queries/hot", name="web.search.hot_queries")
*/
public function hotQueriesAction()
{
$service = new CourseHotQueryService();
$queries = $service->handle();
return $this->jsonSuccess(['queries' => $queries]);
}
/**
* @Get("/queries/related", name="web.search.related_queries")
*/
public function relatedQueriesAction()
{
$query = $this->request->get('query', ['trim']);
$service = new CourseRelatedQueryService();
$queries = $service->handle($query);
return $this->jsonSuccess(['queries' => $queries]);
}
}