引入 CurrencyResolver,用于在 DrawCurrentController、DrawResultShowController 与 DrawResultsIndexController 中统一处理币种代码解析。 更新 DrawHallSnapshotBuilder 与 DrawResultViewService 的构建方法,新增币种代码参数支持,确保开奖相关功能中的币种处理一致性。 增强 SettingIndexController:新增允许访问的 KV 配置分组校验。 在 OddsStreamService、PlayConfigStreamService 与 RiskCapStreamService 中新增广播功能,用于在玩法目录变更时推送更新通知。 新增测试用例,验证风险限额发布的广播行为。
49 lines
1.4 KiB
PHP
49 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Api\V1\Setting;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\LotterySetting;
|
|
use App\Lottery\ErrorCode;
|
|
use App\Support\ApiResponse;
|
|
use Illuminate\Http\JsonResponse;
|
|
use Illuminate\Http\Request;
|
|
|
|
/**
|
|
* 玩家端/公开:读取 KV 配置(公开访问;仅允许白名单分组)。
|
|
*/
|
|
final class SettingIndexController extends Controller
|
|
{
|
|
/** @var list<string> */
|
|
private const PUBLIC_GROUPS = [
|
|
'frontend',
|
|
];
|
|
|
|
public function __invoke(Request $request): JsonResponse
|
|
{
|
|
$group = $request->query('group');
|
|
|
|
if (! is_string($group) || $group === '' || ! in_array($group, self::PUBLIC_GROUPS, true)) {
|
|
return ApiResponse::error(
|
|
'invalid_settings_group',
|
|
ErrorCode::ClientHttpError->value,
|
|
['allowed_groups' => self::PUBLIC_GROUPS],
|
|
400,
|
|
);
|
|
}
|
|
|
|
$items = LotterySetting::query()
|
|
->where('group_name', $group)
|
|
->orderBy('setting_key')
|
|
->get()
|
|
->map(fn (LotterySetting $s): array => [
|
|
'key' => $s->setting_key,
|
|
'value' => $s->value_json,
|
|
'group' => $s->group_name,
|
|
'description' => $s->description_zh,
|
|
]);
|
|
|
|
return ApiResponse::success(['items' => $items]);
|
|
}
|
|
}
|