generated from liutk/owl-admin-base
添加猜胜负逻辑
parent
09f9309b3a
commit
f2b05925e4
|
|
@ -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}'),
|
||||
]),
|
||||
|
|
|
|||
|
|
@ -0,0 +1,19 @@
|
|||
<?php
|
||||
|
||||
namespace App\Enums;
|
||||
|
||||
enum ScoreMin: string
|
||||
{
|
||||
case WIN = '胜';
|
||||
case DRAW = '平';
|
||||
case LOSE = '负';
|
||||
|
||||
public static function options()
|
||||
{
|
||||
$options = [];
|
||||
foreach(self::cases() as $score){
|
||||
$options[$score->value] = $score->value;
|
||||
}
|
||||
return $options;
|
||||
}
|
||||
}
|
||||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ class ActivityGame extends Model
|
|||
];
|
||||
|
||||
protected $fillable = [
|
||||
'state', 'score',
|
||||
'state', 'score', 'score_type'
|
||||
];
|
||||
|
||||
public function scopeShow($q)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,30 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::table('activity_games', function (Blueprint $table) {
|
||||
//
|
||||
$table->unsignedTinyInteger('score_type')->default(1)->nullable();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::table('activity_games', function (Blueprint $table) {
|
||||
//
|
||||
$table->dropColumn(['score_type']);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
|
@ -351,7 +351,8 @@ return [
|
|||
'game_at' => '比赛时间',
|
||||
'mark' => '奖励',
|
||||
'score' => '比分',
|
||||
'state' => '状态'
|
||||
'state' => '状态',
|
||||
'score_type' => '竞猜方式'
|
||||
],
|
||||
'activity_gifts' => [
|
||||
'name' => '奖品名称',
|
||||
|
|
|
|||
Loading…
Reference in New Issue