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'); + }); }); // 文章模块