repository = $repository; $this->validator = $validator; } public function index() { $courses = $this->repository->paginate(request('per_page', self::PAGE_NUM)); return Response::success($courses); } public function show($id) { $information = $this->repository->find($id); Article::query()->where('id', $information['id'])->increment('view_count'); $last = Article::query()->where('category_id', $information['category_id'])->where('published_at', '<=', Carbon::now())->where('status', ModelStatusEnum::OK)->where('id', '<', $information['id'])->orderByDesc('sort')->latest('id')->select(['id', 'title'])->first(); $next = Article::query()->where('category_id', $information['category_id'])->where('published_at', '<=', Carbon::now())->where('status', ModelStatusEnum::OK)->where('id', '>', $information['id'])->orderByDesc('sort')->oldest('id')->select(['id', 'title'])->first(); return Response::success(compact('information', 'last', 'next')); } public function lists(Request $request) { $lists = Article::query()->where('category_id', $request->get('category_id'))->orderByDesc('published_at')->limit(6)->get(); $lists = $this->repository->setPresenter(ArticlePresenter::class)->parserResult($lists); return Response::success($lists); } public function article(Request $request) { $id = $request->get('category_id'); $category = Category::query()->where('id', $id)->where('status', ModelStatusEnum::OK)->first(); if (!$category) { return Response::fail('分类id不能为空!'); } if ($category->is_single == 0) { $article = Article::query()->where('category_id', $category->id)->where('published_at', '<=', Carbon::now())->where('status', ModelStatusEnum::OK)->orderByDesc('sort')->orderByDesc('published_at')->orderByDesc('id')->first(); if (!$article) { return Response::success(null); } return Response::success($this->repository->parserResult($article)); } $articles = Article::query()->where('category_id', $category->id)->where('published_at', '<=', Carbon::now())->where('status', ModelStatusEnum::OK)->orderByDesc('sort')->orderByDesc('published_at')->orderByDesc('id')->paginate(request('per_page', self::PAGE_NUM)); return Response::success($this->repository->parserResult($articles)); } }