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