feat: 为赔率项增加 dimension 字段并支持按维度配置佣金,调整后台配置导航权限

This commit is contained in:
2026-05-21 17:54:31 +08:00
parent 7a6048de10
commit c1c25e3143
7 changed files with 150 additions and 31 deletions

View File

@@ -0,0 +1,49 @@
<?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('odds_items', function (Blueprint $table) {
// 添加 dimension 字段用于按 2D/3D/4D 配置佣金
$table->unsignedTinyInteger('dimension')->nullable()->after('prize_scope')->comment('2/3/4 维度,佣金按维度配置');
// 删除旧的唯一约束
$table->dropUnique('uk_odds_items_version_play_prize_currency');
// 添加新的唯一约束:佣金按 dimension + currency_code 配置
// 赔率仍按 play_code + prize_scope + currency_code 配置
$table->unique(
['version_id', 'play_code', 'prize_scope', 'currency_code', 'dimension'],
'uk_odds_items_version_play_prize_currency_dimension'
);
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('odds_items', function (Blueprint $table) {
// 删除新的唯一约束
$table->dropUnique('uk_odds_items_version_play_prize_currency_dimension');
// 恢复旧的唯一约束
$table->unique(
['version_id', 'play_code', 'prize_scope', 'currency_code'],
'uk_odds_items_version_play_prize_currency'
);
// 删除 dimension 字段
$table->dropColumn('dimension');
});
}
};

View File

@@ -105,6 +105,7 @@ final class OperationalConfigV1Seeder extends Seeder
'version_id' => $oddsVersion->id,
'play_code' => $pt->play_code,
'prize_scope' => $scope,
'dimension' => $pt->dimension,
'odds_value' => $oddsValue,
'rebate_rate' => 0,
'commission_rate' => 0,