From 246d89fef61dbbb05a2f16cbef6592780bcc8768 Mon Sep 17 00:00:00 2001 From: lkddi Date: Thu, 12 Mar 2026 08:39:02 +0800 Subject: [PATCH] =?UTF-8?q?fix(chat):=20=E4=BF=AE=E5=A4=8D=E4=BA=94?= =?UTF-8?q?=E5=AD=90=E6=A3=8B=E9=85=8D=E7=BD=AE=20Seeder=20=E7=9A=84?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E6=8A=A5=E9=94=99=EF=BC=8C=E6=92=A4=E9=94=80?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E7=9A=84=E8=A1=A8=E7=BB=93=E6=9E=84=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ..._083619_add_type_to_game_configs_table.php | 31 ------------- database/seeders/GomokuConfigSeeder.php | 43 +++++++++++-------- 2 files changed, 24 insertions(+), 50 deletions(-) delete mode 100644 database/migrations/2026_03_12_083619_add_type_to_game_configs_table.php diff --git a/database/migrations/2026_03_12_083619_add_type_to_game_configs_table.php b/database/migrations/2026_03_12_083619_add_type_to_game_configs_table.php deleted file mode 100644 index 05fe2df..0000000 --- a/database/migrations/2026_03_12_083619_add_type_to_game_configs_table.php +++ /dev/null @@ -1,31 +0,0 @@ -string('type', 20)->default('general')->after('id')->comment('配置分类:gomoku/general等'); - // 为了保证加速查询 - $table->index(['type', 'key']); - }); - } - - /** - * Reverse the migrations. - */ - public function down(): void - { - Schema::table('game_configs', function (Blueprint $table) { - $table->dropIndex(['type', 'key']); - $table->dropColumn('type'); - }); - } -}; diff --git a/database/seeders/GomokuConfigSeeder.php b/database/seeders/GomokuConfigSeeder.php index 266001b..20d7d2b 100644 --- a/database/seeders/GomokuConfigSeeder.php +++ b/database/seeders/GomokuConfigSeeder.php @@ -11,31 +11,36 @@ class GomokuConfigSeeder extends Seeder */ public function run(): void { - $configs = [ + $params = [ // PvP 配置 - ['type' => 'gomoku', 'key' => 'pvp_reward', 'value' => '80'], - ['type' => 'gomoku', 'key' => 'pvp_invite_timeout', 'value' => '60'], - ['type' => 'gomoku', 'key' => 'pvp_move_timeout', 'value' => '60'], - ['type' => 'gomoku', 'key' => 'pvp_ready_timeout', 'value' => '30'], + 'pvp_reward' => 80, + 'pvp_invite_timeout' => 60, + 'pvp_move_timeout' => 60, + 'pvp_ready_timeout' => 30, // PvE AI 难度入口费 - ['type' => 'gomoku', 'key' => 'pve_fee_level_1', 'value' => '0'], - ['type' => 'gomoku', 'key' => 'pve_fee_level_2', 'value' => '10'], - ['type' => 'gomoku', 'key' => 'pve_fee_level_3', 'value' => '30'], - ['type' => 'gomoku', 'key' => 'pve_fee_level_4', 'value' => '80'], + 'pve_fee_level_1' => 0, + 'pve_fee_level_2' => 10, + 'pve_fee_level_3' => 30, + 'pve_fee_level_4' => 80, // PvE AI 难度胜利奖励 - ['type' => 'gomoku', 'key' => 'pve_reward_level_1', 'value' => '20'], - ['type' => 'gomoku', 'key' => 'pve_reward_level_2', 'value' => '50'], - ['type' => 'gomoku', 'key' => 'pve_reward_level_3', 'value' => '120'], - ['type' => 'gomoku', 'key' => 'pve_reward_level_4', 'value' => '300'], + 'pve_reward_level_1' => 20, + 'pve_reward_level_2' => 50, + 'pve_reward_level_3' => 120, + 'pve_reward_level_4' => 300, ]; - foreach ($configs as $config) { - \App\Models\GameConfig::updateOrCreate( - ['type' => $config['type'], 'key' => $config['key']], - ['value' => $config['value']] - ); - } + $config = \App\Models\GameConfig::firstOrNew(['game_key' => 'gomoku']); + $config->name = '五子棋'; + $config->icon = '♟️'; + $config->description = '支持 PvP 玩家对战与 PvE 多难度人机对战,支持断线重连。'; + $config->enabled = true; + + // 合并已有配置,避免覆盖管理员在后台修改过的其他选项 + $existingParams = $config->params ?? []; + $config->params = array_merge($existingParams, $params); + + $config->save(); } }