1
0
mirror of https://gitee.com/koogua/course-tencent-cloud.git synced 2025-06-22 03:32:47 +08:00
2020-05-07 20:18:37 +08:00

96 lines
2.6 KiB
PHP

<?php
namespace App\Http\Web\Controllers;
use App\Http\Web\Services\Course as CourseService;
use App\Services\Frontend\Course\ConsultList as CourseConsultListService;
use App\Services\Frontend\Course\CourseFavorite as CourseFavoriteService;
use App\Services\Frontend\Course\CourseInfo as CourseInfoService;
use App\Services\Frontend\Course\CourseList as CourseListService;
use App\Services\Frontend\Course\CourseRelated as CourseRelatedService;
use App\Services\Frontend\Course\ReviewList as CourseReviewListService;
/**
* @RoutePrefix("/course")
*/
class CourseController extends Controller
{
/**
* @Get("/list", name="web.course.list")
*/
public function listAction()
{
$courseListService = new CourseListService();
$pager = $courseListService->handle();
$courseService = new CourseService();
$topCategories = $courseService->handleTopCategories();
$subCategories = $courseService->handleSubCategories();
$levels = $courseService->handleLevels();
dd($topCategories, $subCategories, $levels);
$this->view->setVar('top_categories', $topCategories);
$this->view->setVar('sub_categories', $subCategories);
$this->view->setVar('levels', $levels);
$this->view->setVar('pager', $pager);
}
/**
* @Get("/{id:[0-9]+}", name="web.course.show")
*/
public function showAction($id)
{
$courseInfoService = new CourseInfoService();
$courseInfo = $courseInfoService->handle($id);
$courseRelatedService = new CourseRelatedService();
$relatedCourses = $courseRelatedService->handle($id);
$this->view->setVar('course_info', $courseInfo);
$this->view->setVar('related_courses', $relatedCourses);
}
/**
* @Get("/{id:[0-9]+}/consults", name="web.course.consults")
*/
public function consultsAction($id)
{
$consultListService = new CourseConsultListService();
$pager = $consultListService->handle($id);
$this->view->setVar('pager', $pager);
}
/**
* @Get("/{id:[0-9]+}/reviews", name="web.course.reviews")
*/
public function reviewsAction($id)
{
$reviewListService = new CourseReviewListService();
$pager = $reviewListService->handle($id);
$this->view->setVar('pager', $pager);
}
/**
* @Post("/{id:[0-9]+}/favorite", name="web.course.favorite")
*/
public function favoriteAction($id)
{
$favoriteService = new CourseFavoriteService();
$favoriteService->handle($id);
return $this->jsonSuccess(['msg' => '收藏课程成功']);
}
}