diff --git a/app/Http/Web/Controllers/CourseController.php b/app/Http/Web/Controllers/CourseController.php index a49a8e00..bc35e100 100644 --- a/app/Http/Web/Controllers/CourseController.php +++ b/app/Http/Web/Controllers/CourseController.php @@ -14,6 +14,7 @@ use App\Services\Frontend\Course\RelatedList as CourseRelatedListService; use App\Services\Frontend\Course\ReviewList as CourseReviewListService; use App\Services\Frontend\Course\TeacherList as CourseTeacherListService; use App\Services\Frontend\Course\TopicList as CourseTopicListService; +use App\Services\Frontend\Reward\OptionList as RewardOptionList; use Phalcon\Mvc\View; /** @@ -61,66 +62,24 @@ class CourseController extends Controller $service = new CourseQueryService(); - $categoryPaths = $service->handleCategoryPaths($course['category_id']); + $course['category_paths'] = $service->handleCategoryPaths($course['category_id']); $service = new CourseChapterListService(); $chapters = $service->handle($id); - $service = new CoursePackageListService(); - - $packages = $service->handle($id); - - $service = new CourseReviewListService(); - - $reviews = $service->handle($id); - - $reviews->items = kg_array_object($reviews->items); - - $service = new CourseConsultListService(); - - $consults = $service->handle($id); - - $consults->items = kg_array_object($consults->items); - $service = new CourseTeacherListService(); $teachers = $service->handle($id); - $service = new CourseTopicListService(); + $service = new RewardOptionList(); - $topics = $service->handle($id); - - $service = new CourseRecommendedListService(); - - $recommendedCourses = $service->handle($id); - - $service = new CourseRelatedListService(); - - $relatedCourses = $service->handle($id); + $rewardOptions = $service->handle(); $this->view->setVar('course', $course); $this->view->setVar('chapters', $chapters); - $this->view->setVar('packages', $packages); - $this->view->setVar('consults', $consults); - $this->view->setVar('reviews', $reviews); $this->view->setVar('teachers', $teachers); - $this->view->setVar('topics', $topics); - $this->view->setVar('recommended_courses', $recommendedCourses); - $this->view->setVar('related_courses', $relatedCourses); - $this->view->setVar('category_paths', $categoryPaths); - } - - /** - * @Get("/{id:[0-9]+}/chapters", name="web.course.chapters") - */ - public function chaptersAction($id) - { - $service = new CourseChapterListService(); - - $chapters = $service->handle($id); - - return $this->jsonSuccess(['chapters' => $chapters]); + $this->view->setVar('reward_options', $rewardOptions); } /** @@ -132,22 +91,23 @@ class CourseController extends Controller $packages = $service->handle($id); - return $this->jsonSuccess(['packages' => $packages]); + $this->view->setRenderLevel(View::LEVEL_ACTION_VIEW); + $this->view->setVar('packages', $packages); } - /** * @Get("/{id:[0-9]+}/consults", name="web.course.consults") */ public function consultsAction($id) { + $target = $this->request->get('target', 'trim', 'tab-consults'); + $service = new CourseConsultListService(); $pager = $service->handle($id); - $pager->target = $this->request->get('target', 'trim', 'tab-consults'); - $pager->items = kg_array_object($pager->items); + $pager->target = $target; $this->view->setRenderLevel(View::LEVEL_ACTION_VIEW); $this->view->setVar('pager', $pager); @@ -158,30 +118,19 @@ class CourseController extends Controller */ public function reviewsAction($id) { + $target = $this->request->get('target', 'trim', 'tab-reviews'); + $service = new CourseReviewListService(); $pager = $service->handle($id); - $pager->target = $this->request->get('target', 'trim', 'tab-reviews'); - $pager->items = kg_array_object($pager->items); + $pager->target = $target; $this->view->setRenderLevel(View::LEVEL_ACTION_VIEW); $this->view->setVar('pager', $pager); } - /** - * @Get("/{id:[0-9]+}/teachers", name="web.course.teachers") - */ - public function teachersAction($id) - { - $service = new CourseTeacherListService(); - - $teachers = $service->handle($id); - - return $this->jsonSuccess(['teachers' => $teachers]); - } - /** * @Get("/{id:[0-9]+}/recommended", name="web.course.recommended") */ @@ -191,7 +140,8 @@ class CourseController extends Controller $courses = $service->handle($id); - return $this->jsonSuccess(['courses' => $courses]); + $this->view->setRenderLevel(View::LEVEL_ACTION_VIEW); + $this->view->setVar('courses', $courses); } /** @@ -203,7 +153,8 @@ class CourseController extends Controller $courses = $service->handle($id); - return $this->jsonSuccess(['courses' => $courses]); + $this->view->setRenderLevel(View::LEVEL_ACTION_VIEW); + $this->view->setVar('courses', $courses); } /** @@ -215,7 +166,20 @@ class CourseController extends Controller $topics = $service->handle($id); - return $this->jsonSuccess(['topics' => $topics]); + $this->view->setRenderLevel(View::LEVEL_ACTION_VIEW); + $this->view->setVar('topics', $topics); + } + + /** + * @Get("/{id:[0-9]+}/reward", name="web.course.reward") + */ + public function rewardAction($id) + { + $service = new RewardOptionList(); + + $options = $service->handle(); + + $this->view->setVar('options', $options); } /** diff --git a/app/Http/Web/Controllers/OrderController.php b/app/Http/Web/Controllers/OrderController.php index 0549c921..0cc2d93f 100644 --- a/app/Http/Web/Controllers/OrderController.php +++ b/app/Http/Web/Controllers/OrderController.php @@ -23,9 +23,9 @@ class OrderController extends Controller $service = new OrderConfirmService(); - $info = $service->handle($itemId, $itemType); + $confirm = $service->handle($itemId, $itemType); - $this->view->setVar('info', $info); + $this->view->setVar('confirm', $confirm); } /** diff --git a/app/Http/Web/Views/course/chapters.volt b/app/Http/Web/Views/course/chapters.volt new file mode 100644 index 00000000..b2543859 --- /dev/null +++ b/app/Http/Web/Views/course/chapters.volt @@ -0,0 +1,65 @@ +{%- macro vod_lesson_info(lesson) %} + {% set url = lesson.me.owned ? url({'for':'web.chapter.show','id':lesson.id}) : 'javascript:' %} + + + {{ lesson.title }} + {% if lesson.free == 1 %} + 免费 + {% endif %} + {% if lesson.me.duration > 0 %} + + {% endif %} + {{ lesson.attrs.duration|total_duration }} + +{%- endmacro %} + +{%- macro live_lesson_info(lesson) %} + {% set url = lesson.me.owned ? url({'for':'web.chapter.show','id':lesson.id}) : 'javascript:' %} + {% set over_flag = lesson.attrs.end_time < time() ? '已结束' : '' %} + + + {{ lesson.title }} + {% if lesson.free == 1 %} + 免费 + {% endif %} + {% if lesson.me.duration > 0 %} + + {% endif %} + {{ date('m月d日',lesson.attrs.start_time) }} {{ date('H:i',lesson.attrs.start_time) }}~{{ date('H:i',lesson.attrs.end_time) }} {{ over_flag }} + +{%- endmacro %} + +{%- macro read_lesson_info(lesson) %} + {% set url = lesson.me.owned ? url({'for':'web.chapter.show','id':lesson.id}) : 'javascript:' %} + + + {{ lesson.title|e }} + {% if lesson.free == 1 %} + 免费 + {% endif %} + {% if lesson.me.duration > 0 %} + + {% endif %} + +{%- endmacro %} + +
课程时长:{{ course.attrs.duration|total_duration }}
-- 学习期限:{{ course.study_expiry }}个月 - 退款期限:{{ course.refund_expiry }}天 + {% if course.model == 'vod' %} +
课程时长 {{ course.attrs.duration|total_duration }}
+ {% elseif course.model == 'live' %} +直播时间 {{ course.attrs.start_date }} ~ {{ course.attrs.end_date }}
+ {% endif %} + {% if course.market_price > 0 %} ++ 学习期限 {{ course.study_expiry }}个月 + 退款期限 {{ course.refund_expiry }}天 +
+ {% endif %} ++ {% if course.market_price > 0 %} + 市场价格 ¥{{ course.market_price }} + {% else %} + 市场价格 免费 + {% endif %} + {% if course.vip_price > 0 %} + 会员价格 ¥{{ course.vip_price }} + {% else %} + 会员价格 免费 + {% endif %}
-- 市场价格:¥{{ course.market_price }} - 会员价格:¥{{ course.vip_price }} -
-- {{ course.user_count }}次学习 - {{ course.review_count }}次评价 - {{ course.favorite_count }}次收藏 +
+ 难度 {{ level_info(course.level) }} + 课时 {{ course.lesson_count }} + 学员 {{ course.user_count }} + 收藏 {{ course.favorite_count }} + 评分 {{ course.rating }}
+