all(); $list = Book::where(function ($query) use ($all) { if (isset($all['keyword'])) { $query->where(function ($q) use ($all) { $q->where('title', 'like', '%' . $all['keyword'] . '%') ->orWhere('author', 'like', '%' . $all['keyword'] . '%') ->orWhere('isbn', 'like', '%' . $all['keyword'] . '%'); }); } })->orderBy($all['sort_name'] ?? 'id', $all['sort_type'] ?? 'desc') ->paginate($all['page_size'] ?? 20); return $this->success($list); } /** * @OA\Get( * path="/api/mobile/book/detail", * tags={"小程序-图书"}, * summary="图书详情", * @OA\Parameter(name="id", in="query", @OA\Schema(type="integer"), required=true, description="id"), * @OA\Response( * response=200, * description="操作成功" * ) * ) */ public function detail() { $all = \request()->all(); $messages = [ 'id.required' => 'Id必填', ]; $validator = Validator::make($all, [ 'id' => 'required' ], $messages); if ($validator->fails()) { return $this->fail([ResponseCode::ERROR_PARAMETER, implode(',', $validator->errors()->all())]); } $book = Book::with('cover')->find($all['id']); return $this->success($book); } }