feat: 更新玩法配置管理,简化字段并增强功能
- 将玩法相关的显示名称字段统一为 `display_name`,移除多语言字段。 - 在 `PlayTypePatchController` 中新增即时切换玩法开关的功能,并推送大厅更新。 - 优化多个控制器和服务中的权限检查与数据处理逻辑,提升代码可读性与维护性。
This commit is contained in:
@@ -80,9 +80,7 @@ test('§12.6 published play limits are visible on public effective catalog witho
|
||||
'category' => $t->category,
|
||||
'dimension' => $t->dimension,
|
||||
'bet_mode' => $t->bet_mode,
|
||||
'display_name_zh' => $t->display_name_zh ?? $t->play_code,
|
||||
'display_name_en' => $t->display_name_en,
|
||||
'display_name_ne' => $t->display_name_ne,
|
||||
'display_name' => $t->display_name ?? $t->play_code,
|
||||
'is_enabled' => true,
|
||||
'min_bet_amount' => 777,
|
||||
'max_bet_amount' => 400_000_000,
|
||||
@@ -271,9 +269,7 @@ test('§12.6 published play config controls master_enabled on public catalog wit
|
||||
'category' => $r['category'],
|
||||
'dimension' => $r['dimension'],
|
||||
'bet_mode' => $r['bet_mode'],
|
||||
'display_name_zh' => $r['display_name_zh'],
|
||||
'display_name_en' => $r['display_name_en'],
|
||||
'display_name_ne' => $r['display_name_ne'],
|
||||
'display_name' => $r['display_name'],
|
||||
'is_enabled' => $r['is_enabled'],
|
||||
'min_bet_amount' => (int) $r['min_bet_amount'],
|
||||
'max_bet_amount' => (int) $r['max_bet_amount'],
|
||||
@@ -381,9 +377,7 @@ test('§5 play_config publish is audited', function (): void {
|
||||
'category' => $t->category,
|
||||
'dimension' => $t->dimension,
|
||||
'bet_mode' => $t->bet_mode,
|
||||
'display_name_zh' => $t->display_name_zh ?? $t->play_code,
|
||||
'display_name_en' => $t->display_name_en,
|
||||
'display_name_ne' => $t->display_name_ne,
|
||||
'display_name' => $t->display_name ?? $t->play_code,
|
||||
'is_enabled' => true,
|
||||
'min_bet_amount' => 100,
|
||||
'max_bet_amount' => 500_000_000,
|
||||
@@ -404,6 +398,35 @@ test('§5 play_config publish is audited', function (): void {
|
||||
)->toBeTrue();
|
||||
});
|
||||
|
||||
test('play type patch toggles active config and broadcasts instantly', function (): void {
|
||||
Event::fake([PlayToggleBroadcast::class]);
|
||||
config([
|
||||
'broadcasting.default' => 'reverb',
|
||||
'broadcasting.connections.reverb.driver' => 'reverb',
|
||||
]);
|
||||
|
||||
$token = acceptanceMintAdminToken();
|
||||
$auth = ['Authorization' => 'Bearer '.$token];
|
||||
|
||||
$this->patchJson('/api/v1/admin/play-types/big', ['is_enabled' => false], $auth)
|
||||
->assertOk()
|
||||
->assertJsonPath('data.play_code', 'big')
|
||||
->assertJsonPath('data.is_enabled', false);
|
||||
|
||||
Event::assertDispatched(
|
||||
PlayToggleBroadcast::class,
|
||||
fn (PlayToggleBroadcast $event): bool => $event->playCode === 'big' && $event->enabled === false,
|
||||
);
|
||||
|
||||
expect(
|
||||
AuditLog::query()
|
||||
->where('module_code', 'play_config')
|
||||
->where('action_code', 'toggle_active')
|
||||
->where('target_id', 'big')
|
||||
->exists(),
|
||||
)->toBeTrue();
|
||||
});
|
||||
|
||||
test('§9 play_config publish broadcasts changed play toggles', function (): void {
|
||||
Event::fake([PlayToggleBroadcast::class]);
|
||||
config([
|
||||
|
||||
Reference in New Issue
Block a user