From 7ed59ddfd218bf2fa32b498496be9f47c88057a8 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Sun, 10 Jul 2022 16:44:30 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E5=85=85=E4=BA=BF=E7=82=B9=E5=86=85?= =?UTF-8?q?=E5=AE=B9=EF=BC=8C=E9=A1=BA=E4=BE=BF=E7=AB=8BFlag?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/DanmakuQueryController.php | 13 +++ .../Controllers/ProgramQueryController.php | 19 +++++ app/Models/ProgramAppends.php | 10 +++ app/Models/ProgramTags.php | 18 +++++ app/Models/ProgramVideos.php | 27 +++++++ app/Models/Programs.php | 28 +++++++ app/Models/Tags.php | 13 +++ app/Models/Videos.php | 5 ++ resources/views/header.blade.php | 8 +- resources/views/index.blade.php | 4 +- resources/views/program.blade.php | 80 +++++++++++++++++++ resources/views/under_construct.blade.php | 11 +++ routes/web.php | 2 + 13 files changed, 235 insertions(+), 3 deletions(-) create mode 100644 app/Http/Controllers/DanmakuQueryController.php create mode 100644 app/Http/Controllers/ProgramQueryController.php create mode 100644 app/Models/ProgramAppends.php create mode 100644 app/Models/ProgramTags.php create mode 100644 app/Models/ProgramVideos.php create mode 100644 app/Models/Programs.php create mode 100644 app/Models/Tags.php create mode 100644 resources/views/program.blade.php create mode 100644 resources/views/under_construct.blade.php diff --git a/app/Http/Controllers/DanmakuQueryController.php b/app/Http/Controllers/DanmakuQueryController.php new file mode 100644 index 0000000..90a7dd9 --- /dev/null +++ b/app/Http/Controllers/DanmakuQueryController.php @@ -0,0 +1,13 @@ +get("keyword", ""); + $programs = Programs::query()->with(["appends", "tags", "video_pivots.video"])->limit(15)->orderByDesc("created_at")->get(); + return view("program", [ + "keyword" => $keyword, + "programs"=>$programs, + ]); + } +} diff --git a/app/Models/ProgramAppends.php b/app/Models/ProgramAppends.php new file mode 100644 index 0000000..45a53c8 --- /dev/null +++ b/app/Models/ProgramAppends.php @@ -0,0 +1,10 @@ +belongsTo(Tags::class, "tag_id", "id"); + } + + public function program(): \Illuminate\Database\Eloquent\Relations\BelongsTo + { + return $this->belongsTo(Programs::class, "program_id", "id"); + } +} diff --git a/app/Models/ProgramVideos.php b/app/Models/ProgramVideos.php new file mode 100644 index 0000000..5c40b4c --- /dev/null +++ b/app/Models/ProgramVideos.php @@ -0,0 +1,27 @@ +belongsTo(Programs::class, "program_id", "id"); + } + + public function video(): \Illuminate\Database\Eloquent\Relations\BelongsTo + { + return $this->belongsTo(Videos::class, "video_bvid", "bvid"); + } + + public function startSec(): Attribute + { + return Attribute::get(function ($_, $attributes) { + return Carbon::createFromFormat("H:i:s", $attributes['start_time'])->secondsSinceMidnight(); + }); + } +} diff --git a/app/Models/Programs.php b/app/Models/Programs.php new file mode 100644 index 0000000..2a8c624 --- /dev/null +++ b/app/Models/Programs.php @@ -0,0 +1,28 @@ +hasMany(ProgramAppends::class, "program_id", "id")->orderByDesc("is_original"); + } + + public function tags(): \Illuminate\Database\Eloquent\Relations\HasManyThrough + { + return $this->hasManyThrough(Tags::class, ProgramTags::class, "program_id", "id", "id", "tag_id"); + } + + public function video_pivots(): \Illuminate\Database\Eloquent\Relations\HasMany + { + return $this->hasMany(ProgramVideos::class, "program_id", "id"); + } + + public function videos(): \Illuminate\Database\Eloquent\Relations\HasManyThrough + { + return $this->hasManyThrough(Videos::class, ProgramVideos::class, "program_id", "bvid", "id", "video_bvid"); + } +} diff --git a/app/Models/Tags.php b/app/Models/Tags.php new file mode 100644 index 0000000..df43ee6 --- /dev/null +++ b/app/Models/Tags.php @@ -0,0 +1,13 @@ +hasManyThrough(Programs::class, ProgramTags::class, "tag_id", "id", "id", "program_id"); + } +} diff --git a/app/Models/Videos.php b/app/Models/Videos.php index a397480..e9d62fe 100644 --- a/app/Models/Videos.php +++ b/app/Models/Videos.php @@ -10,4 +10,9 @@ class Videos extends Model { return $this->hasMany(VideoComments::class, "aid", "id"); } + + public function programs(): \Illuminate\Database\Eloquent\Relations\HasManyThrough + { + return $this->hasManyThrough(Programs::class, ProgramVideos::class, "video_bvid", "bvid", "id", "program_id"); + } } diff --git a/resources/views/header.blade.php b/resources/views/header.blade.php index 759a334..9b0a480 100644 --- a/resources/views/header.blade.php +++ b/resources/views/header.blade.php @@ -1,4 +1,10 @@

非专业人士,制作不易,请大家多多谅解

-

有任何意见或建议可以直接联系我

+
有任何意见或建议可以直接联系我
+
+ 导航: + 节目单查询 + 节目查询 + 直播弹幕查询 +
diff --git a/resources/views/index.blade.php b/resources/views/index.blade.php index 9550c27..255f552 100644 --- a/resources/views/index.blade.php +++ b/resources/views/index.blade.php @@ -24,8 +24,8 @@ {{$comment->video->title}} {{$comment->content}} - B站主页 - {{$comment->video->bvid}} + B站主页 + {{$comment->video->bvid}} @endforeach diff --git a/resources/views/program.blade.php b/resources/views/program.blade.php new file mode 100644 index 0000000..4f573f1 --- /dev/null +++ b/resources/views/program.blade.php @@ -0,0 +1,80 @@ + + + + 录播节目查询 + + + @include("header") +

搜索功能待开放,数据待补充完整

+ + + + + + + + + + + + @foreach($programs as $program) + + + + + + + @endforeach + +
节目名称节目标签点播及追加视频地址及位置
{{$program->name}} + @foreach($program->tags as $tag) +
{{$tag->name}}
+ @endforeach +
+ @foreach($program->appends as $append) + @if($append->is_original) +
+ @if($append->from_mid) + {{$append->from}} + @else + {{$append->from}} + @endif + 老板点播 + {{$append->price}}分 + @if($append->append) + ({{$append->append}}) + @endif +
+ @else +
+ @if($append->from_mid) + {{$append->from}} + @else + {{$append->from}} + @endif + 老板追加:{{$append->name}} + {{$append->price}}分 + @if($append->append) + ({{$append->append}}) + @endif +
+ @endif + @endforeach +
+ @foreach($program->video_pivots as $video_pivot) + + 节目开始位置 + + @endforeach +
+@include("footer") + + diff --git a/resources/views/under_construct.blade.php b/resources/views/under_construct.blade.php new file mode 100644 index 0000000..6a30f70 --- /dev/null +++ b/resources/views/under_construct.blade.php @@ -0,0 +1,11 @@ + + + + 正在建设中 + + + @include("header") +

正在建设中

+ @include("footer") + + diff --git a/routes/web.php b/routes/web.php index 60367e5..ed19e45 100644 --- a/routes/web.php +++ b/routes/web.php @@ -14,3 +14,5 @@ use Illuminate\Support\Facades\Route; */ Route::get('/', "\\App\\Http\\Controllers\\CommentQueryController@index"); +Route::get('/programs', "\\App\\Http\\Controllers\\ProgramQueryController@index"); +Route::get('/danmakus', "\\App\\Http\\Controllers\\DanmakuQueryController@index");