From 9ed3db42f2bf6c46d1feede79605d7f5501ff4db Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Mon, 1 Aug 2022 13:45:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BB=BA=E8=AE=BE=E7=9B=B8=E5=85=B3=E7=9A=84?= =?UTF-8?q?=E8=B7=AF=E7=94=B1=EF=BC=8C=E5=8F=8A=E5=A4=A7=E9=83=A8=E5=88=86?= =?UTF-8?q?=E6=8F=90=E4=BA=A4=E7=9A=84=E9=AA=8C=E8=AF=81=EF=BC=8C=E5=8F=8A?= =?UTF-8?q?=E8=A7=86=E9=A2=91=E5=AF=B9=E5=BA=94=E7=9A=84=E7=9C=9F=C2=B7?= =?UTF-8?q?=E8=8A=82=E7=9B=AE=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProgramAppendConstructController.php | 7 +- .../ProgramConstructController.php | 67 ++++++- .../ProgramVideoConstructController.php | 45 +++++ app/Http/Controllers/VideoQueryController.php | 18 ++ public/css/app.css | 2 +- public/mix-manifest.json | 2 +- resources/lang/zh/validation.php | 163 ++++++++++++++++++ resources/views/common/header.blade.php | 2 +- resources/views/index.blade.php | 2 +- .../program/construct/append/create.blade.php | 13 +- .../program/construct/append/index.blade.php | 2 +- .../program/construct/batch_add.blade.php | 38 ++++ .../views/program/construct/create.blade.php | 9 + .../views/program/construct/index.blade.php | 6 + .../program/construct/video/create.blade.php | 4 +- .../program/construct/video/index.blade.php | 4 + resources/views/video/index.blade.php | 66 +++++++ routes/web.php | 18 +- 18 files changed, 452 insertions(+), 16 deletions(-) create mode 100644 app/Http/Controllers/VideoQueryController.php create mode 100644 resources/lang/zh/validation.php create mode 100644 resources/views/program/construct/batch_add.blade.php create mode 100644 resources/views/video/index.blade.php diff --git a/app/Http/Controllers/ProgramAppendConstructController.php b/app/Http/Controllers/ProgramAppendConstructController.php index 23bdda6..f1aa311 100644 --- a/app/Http/Controllers/ProgramAppendConstructController.php +++ b/app/Http/Controllers/ProgramAppendConstructController.php @@ -9,7 +9,7 @@ use Illuminate\Routing\Controller as BaseController; class ProgramAppendConstructController extends BaseController { - public function construct(Request $request, Programs $program) { + public function index(Request $request, Programs $program) { return view("program.construct.append.index", [ "program" => $program, "appends" => $program->appends, @@ -28,6 +28,11 @@ class ProgramAppendConstructController extends BaseController } public function create(Request $request, Programs $program) { + $request->validate([ + "name" => ["required_without:foo:is_original"], + "from" => ["required"], + "price" => ["required", "numeric"], + ]); $createPayload = $request->only(["name", "from", "price", "append"]); $append = $program->appends()->create($createPayload); $append->is_original = $request->post("is_original", 0); diff --git a/app/Http/Controllers/ProgramConstructController.php b/app/Http/Controllers/ProgramConstructController.php index 0bba9f4..13a63d2 100644 --- a/app/Http/Controllers/ProgramConstructController.php +++ b/app/Http/Controllers/ProgramConstructController.php @@ -3,12 +3,13 @@ namespace App\Http\Controllers; use App\Models\Programs; +use App\Models\ProgramVideos; use Illuminate\Http\Request; use Illuminate\Routing\Controller as BaseController; class ProgramConstructController extends BaseController { - public function construct(Request $request) { + public function index(Request $request) { $status = $request->get("status", "0"); $query = Programs::query()->with(["appends", "video_pivots.video"])->where("status", $status, 0)->orderByDesc("created_at"); $programs = $query->paginate(10)->withQueryString();; @@ -17,6 +18,67 @@ class ProgramConstructController extends BaseController ]); } + public function add(Request $request) { + return view("program.construct.create", [ + "program"=>new Programs() + ]); + } + + public function create(Request $request) { + $request->validate([ + "name" => ["required"] + ]); + $program = new Programs(); + $createPayload = $request->only(["name", "difficulty", "desc"]); + $program->fill($createPayload); + $program->status = $request->post("status", 0); + $program->save(); + return redirect(route("program.construct.edit", ["program"=>$program->id])); + } + + public function batch_add(Request $request) { + return view("program.construct.batch_add"); + } + + public function batch_create(Request $request) { + $request->validate([ + 'bvid' => ['required'], + 'content' => ['required'], + ]); + $bvid = $request->post("bvid"); + $content = $request->post("content"); + $count = ProgramVideos::query()->where("video_bvid", "=", $bvid)->count(); + if ($count > 0) { + return view("program.construct.batch_add", [ + "content" => $content, + "bvid" => $bvid, + "message" => "该BVID下已有{$count}个节目关联,请手动添加", + ]); + } + $regex = "/^p(?P\d{1,2})[-# _:,)]+(?P