From 58e16f9b081138bcd67202af84a5d157aa6419d9 Mon Sep 17 00:00:00 2001 From: jsasg <735273025@qq.com> Date: Sat, 18 Jan 2025 10:48:34 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E6=96=87=E7=AB=A0?= =?UTF-8?q?=E5=9B=9E=E6=94=B6=E7=AB=99=E5=88=86=E9=A1=B5=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E3=80=81=E6=81=A2=E5=A4=8D=E3=80=81=E5=88=A0=E9=99=A4=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/controller/v1/ArticleTrash.php | 83 ++++++++++++++++++++++++ app/admin/route/v1.php | 12 ++++ 2 files changed, 95 insertions(+) create mode 100644 app/admin/controller/v1/ArticleTrash.php diff --git a/app/admin/controller/v1/ArticleTrash.php b/app/admin/controller/v1/ArticleTrash.php new file mode 100644 index 00000000..62f1cf9c --- /dev/null +++ b/app/admin/controller/v1/ArticleTrash.php @@ -0,0 +1,83 @@ +get([ + 'title', + 'category_id', + 'page/a' => 1, + 'size/a' => 20 + ]); + $data = ArticleModel::field([ + 'id', + 'category_id', + 'title', + 'image', + 'sort', + 'recommend', + 'release_time', + 'enabled', + ]) + ->with('category') + ->language(request()->lang_id) + ->categoryNullable($param['category_id']??null) + ->withSearch(['title'], ['title' => $param['title']??null]) + ->onlyTrashed() + ->order(['sort' => 'desc', 'id' => 'desc']) + ->paginate([ + 'page' => $param['page'], + 'list_rows' => $param['size'] + ]) + ->hidden(['category_id', 'category']) + ->bindAttr('category', ['category_name' => 'name']); + + return success('获取成功', $data); + } + + // 恢复 + public function restore() + { + $id = request()->param('id'); + if (empty($id)) { + return error('参数错误'); + } + + $article = ArticleModel::onlyTrashed()->id($id)->find(); + if (is_null($article)) { + return error('请确认操作对象'); + } + if (!$article->restore()) { + return error('操作失败'); + + } + + return success('操作成功'); + } + + // 删除 + public function delete() + { + $id = request()->param('id'); + if (empty($id)) { + return error('参数错误'); + } + + $article = ArticleModel::onlyTrashed()->id($id)->find(); + if (is_null($article)) { + return error('请确认操作对象'); + } + if (!$article->force()->delete()) { + return error('操作失败'); + } + + return success('操作成功'); + } +} diff --git a/app/admin/route/v1.php b/app/admin/route/v1.php index 339c02dd..cccb9108 100644 --- a/app/admin/route/v1.php +++ b/app/admin/route/v1.php @@ -87,6 +87,18 @@ Route::group('v1', function () { // 导出 Route::get('export', 'ArticleLeaveMessage/export'); }); + + // 文章回收站 + Route::group('trash', function () { + // 文章回收站列表 + Route::get('index', 'ArticleTrash/index'); + + // 文章回收站还原 + Route::get('restore/:id', 'ArticleTrash/restore'); + + // 文章回收站删除 + Route::delete('delete/:id', 'ArticleTrash/delete'); + }); }); })->prefix('v1.');