From f2b05925e478d1cdbabd862f201db0dd9380ee27 Mon Sep 17 00:00:00 2001 From: liutk <961510893@qq.com> Date: Mon, 8 Jul 2024 16:24:54 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=8C=9C=E8=83=9C=E8=B4=9F?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Admin/Controllers/ActivityController.php | 15 ++++++++-- app/Enums/ScoreMin.php | 19 ++++++++++++ .../Resources/Api/ActivityGameResource.php | 1 + app/Models/ActivityGame.php | 2 +- ...22414_add_score_type_to_activity_games.php | 30 +++++++++++++++++++ lang/zh_CN/admin.php | 3 +- 6 files changed, 66 insertions(+), 4 deletions(-) create mode 100644 app/Enums/ScoreMin.php create mode 100644 database/migrations/2024_07_08_122414_add_score_type_to_activity_games.php diff --git a/app/Admin/Controllers/ActivityController.php b/app/Admin/Controllers/ActivityController.php index 007800f..1a0faca 100644 --- a/app/Admin/Controllers/ActivityController.php +++ b/app/Admin/Controllers/ActivityController.php @@ -12,7 +12,7 @@ use Slowlyo\OwlAdmin\Controllers\AdminController; use App\Services\Admin\ActivityService; use App\Traits\CustomActionTrait; use App\Admin\Components; -use App\Enums\Score; +use App\Enums\{Score, ScoreMin}; use App\Models\Activity; use Illuminate\Http\Request; @@ -156,6 +156,7 @@ class ActivityController extends AdminController 'away_logo'=>'${away_logo}', 'game_at'=>'${game_at}', 'mark'=>'${mark}', + 'score_type'=>'${score_type}', ], ]) ->body([ @@ -170,6 +171,10 @@ class ActivityController extends AdminController Components::make()->imageControl('away_logo', __('admin.activity_games.away_logo')), ]), amis()->DateTimeControl('game_at', __('admin.activity_games.game_at'))->format('YYYY-MM-DD HH:mm:ss')->required(true), + amis()->RadiosControl('score_type', __('admin.activity_games.score_type'))->options([ + 1=>'猜比分', + 2=>'猜胜负', + ])->selectFirst()->required(), Components::make()->sortControl('mark', __('admin.activity_games.mark'))->required(true), ]) ])->size('lg') @@ -210,6 +215,10 @@ class ActivityController extends AdminController Components::make()->cropImageControl('away_logo', __('admin.activity_games.away_logo')), ]), amis()->DateTimeControl('game_at', __('admin.activity_games.game_at'))->format('YYYY-MM-DD HH:mm:ss')->required(true), + amis()->RadiosControl('score_type', __('admin.activity_games.score_type'))->options([ + 1=>'猜比分', + 2=>'猜胜负', + ])->selectFirst()->required()->disabledOn('${state > 0}'), Components::make()->sortControl('mark', __('admin.activity_games.mark'))->required(true), ]) ])->size('lg')) @@ -239,7 +248,9 @@ class ActivityController extends AdminController ->api('post:' .admin_url('activity_games/${id}/finish')) ->body([ amis()->SelectControl('score', __('admin.activity_games.score')) - ->options(Score::options())->required(), + ->options(Score::options())->required()->visibleOn('${score_type == 1}'), + amis()->SelectControl('score', __('admin.activity_games.score')) + ->options(ScoreMin::options())->required()->visibleOn('${score_type == 2}'), ]) ]))->visibleOn('${state == 1}'), ]), diff --git a/app/Enums/ScoreMin.php b/app/Enums/ScoreMin.php new file mode 100644 index 0000000..5fcd37f --- /dev/null +++ b/app/Enums/ScoreMin.php @@ -0,0 +1,19 @@ +value] = $score->value; + } + return $options; + } +} \ No newline at end of file diff --git a/app/Http/Resources/Api/ActivityGameResource.php b/app/Http/Resources/Api/ActivityGameResource.php index e641347..40bd5de 100644 --- a/app/Http/Resources/Api/ActivityGameResource.php +++ b/app/Http/Resources/Api/ActivityGameResource.php @@ -28,6 +28,7 @@ class ActivityGameResource extends JsonResource 'game_day' => $this->game_at->format('Y-m-d'), 'game_at_comparison_now' => $this->state < 2 ? now()->gte($this->game_at) : true, 'mark' => $this->mark, + 'score_type' => $this->score_type ?? 1,//1为猜比分,2为猜胜负 'game_score' => $this->score, 'has_guess' => !$this->logs->isEmpty() ? ($this->logs[0]->score):false, 'has_guess_right' => !$this->logs->isEmpty() ? ($this->logs[0]->is_right):false, diff --git a/app/Models/ActivityGame.php b/app/Models/ActivityGame.php index af93de6..319c372 100644 --- a/app/Models/ActivityGame.php +++ b/app/Models/ActivityGame.php @@ -15,7 +15,7 @@ class ActivityGame extends Model ]; protected $fillable = [ - 'state', 'score', + 'state', 'score', 'score_type' ]; public function scopeShow($q) diff --git a/database/migrations/2024_07_08_122414_add_score_type_to_activity_games.php b/database/migrations/2024_07_08_122414_add_score_type_to_activity_games.php new file mode 100644 index 0000000..24323f0 --- /dev/null +++ b/database/migrations/2024_07_08_122414_add_score_type_to_activity_games.php @@ -0,0 +1,30 @@ +unsignedTinyInteger('score_type')->default(1)->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('activity_games', function (Blueprint $table) { + // + $table->dropColumn(['score_type']); + }); + } +}; diff --git a/lang/zh_CN/admin.php b/lang/zh_CN/admin.php index b812840..0d9ac03 100644 --- a/lang/zh_CN/admin.php +++ b/lang/zh_CN/admin.php @@ -351,7 +351,8 @@ return [ 'game_at' => '比赛时间', 'mark' => '奖励', 'score' => '比分', - 'state' => '状态' + 'state' => '状态', + 'score_type' => '竞猜方式' ], 'activity_gifts' => [ 'name' => '奖品名称',