'=', ]; protected array $quickSearchField = ['title']; /** 轮播图列表(默认按排序升序) */ #[GetRoute(authorize: 'query')] public function query(Request $request): JsonResponse { $params = $request->all(); $pageSize = $params['pageSize'] ?? 10; $data = $this->buildSearch($params, HomeBannerModel::query()) ->orderBy('sort') ->orderBy('id') ->paginate($pageSize) ->toArray(); return $this->success($data); } /** 上传轮播图片(文件分组:客户端配置) */ #[PostRoute('/upload', 'create')] public function uploadImage(Request $request, SysFileService $service): JsonResponse { $data = $request->validate(['file' => 'required|file']); $result = $service->upload( $data['file'], 12, 20, Auth::id() ); return $this->success($result); } /** 新增轮播图 */ #[PostRoute(authorize: 'create')] public function create(BannerFormRequest $request): JsonResponse { HomeBannerModel::create($request->validated()); return $this->success(); } /** 编辑轮播图 */ #[PutRoute(route: '/{id}', authorize: 'update', where: ['id' => '[0-9]+'])] public function update(int $id, BannerFormRequest $request): JsonResponse { $model = HomeBannerModel::find($id); if (empty($model)) { throw new RepositoryException('轮播图不存在'); } $model->update($request->validated()); return $this->success(); } /** 删除轮播图 */ #[DeleteRoute(route: '/{id}', authorize: 'delete', where: ['id' => '[0-9]+'])] public function delete(int $id): JsonResponse { $model = HomeBannerModel::find($id); if (empty($model)) { throw new RepositoryException('轮播图不存在'); } $model->delete(); return $this->success(); } }