From cf9a99bd152bb8d33aca91ae1797f82dc8063d10 Mon Sep 17 00:00:00 2001 From: jsasg <735273025@qq.com> Date: Fri, 21 Feb 2025 10:56:28 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E8=A7=86=E9=A2=91?= =?UTF-8?q?=E5=9B=9E=E6=94=B6=E7=AB=99=E5=88=86=E9=A1=B5/=E6=81=A2?= =?UTF-8?q?=E5=A4=8D/=E5=88=A0=E9=99=A4=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/controller/v1/VideoTrash.php | 90 ++++++++++++++++++++++++++ app/admin/route/v1.php | 12 ++++ 2 files changed, 102 insertions(+) create mode 100644 app/admin/controller/v1/VideoTrash.php diff --git a/app/admin/controller/v1/VideoTrash.php b/app/admin/controller/v1/VideoTrash.php new file mode 100644 index 00000000..612f524b --- /dev/null +++ b/app/admin/controller/v1/VideoTrash.php @@ -0,0 +1,90 @@ +param([ + 'name', + 'category_id', + 'page/d' => 1, + 'size/d' => 10, + ]); + + $videos = VideoModel::field([ + 'id', + 'category_id', + 'name', + 'image', + 'video', + 'sort', + 'recommend', + 'status', + 'created_at', + ]) + ->with(['category' => function($query) { + $query->field(['id', 'name' => 'category_name']); + }]) + ->withSearch(['name'], [ + 'name' => $params['name']??null + ]) + ->categoryId($params['category_id']??null) + ->onlyTrashed() + ->order(['sort' => 'asc', 'id' => 'desc']) + ->paginate([ + 'list_rows' => $params['size'], + 'page' => $params['page'], + ]) + ->bindAttr('category', ['category_name']) + ->hidden(['category_id', 'category']); + + return success('获取成功', $videos); + } + + /** + * 恢复操作 + */ + public function restore() + { + $id = request()->param('id'); + + $video = VideoModel::onlyTrashed()->bypk($id)->find(); + if (empty($video)) { + return error('请确认操作对象是否存在'); + } + + if (!$video->restore()) { + return error('操作失败'); + } + return success('操作成功'); + } + + /** + * 删除操作 + */ + public function delete() + { + $id = request()->param('id'); + + $video = VideoModel::onlyTrashed()->bypk($id)->find(); + if (empty($video)) { + return error('请确认操作对象是否存在'); + } + + if (!$video->force()->delete()) { + return error('操作失败'); + } + return success('操作成功'); + } +} diff --git a/app/admin/route/v1.php b/app/admin/route/v1.php index 107fa336..b604667b 100644 --- a/app/admin/route/v1.php +++ b/app/admin/route/v1.php @@ -87,6 +87,18 @@ Route::group('v1', function () { // 视频分类删除 Route::delete('delete/:id', 'VideoCategory/delete'); }); + + // 视频回收站 + Route::group('trash', function () { + // 视频回收站分页列表 + Route::get('index', 'VideoTrash/index'); + + // 视频回收站还原 + Route::get('restore/:id', 'VideoTrash/restore'); + + // 视频回收站删除 + Route::delete('delete/:id', 'VideoTrash/delete'); + }); }); // 文章模块