[游戏管理]游戏奖励配置-优化样式
This commit is contained in:
55
app/common/library/GameRewardConfigTemplate.php
Normal file
55
app/common/library/GameRewardConfigTemplate.php
Normal file
@@ -0,0 +1,55 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace app\common\library;
|
||||
|
||||
/**
|
||||
* 游戏奖励配置:默认模板(与 resource/game_reward_config_template.json 一致)
|
||||
*/
|
||||
class GameRewardConfigTemplate
|
||||
{
|
||||
private static ?array $cached = null;
|
||||
|
||||
public static function templatePath(): string
|
||||
{
|
||||
return dirname(__DIR__, 3) . DIRECTORY_SEPARATOR . 'resource' . DIRECTORY_SEPARATOR . 'game_reward_config_template.json';
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array{tier_reward_form: string, bigwin_form: string}
|
||||
*/
|
||||
public static function getDefaultJsonColumns(): array
|
||||
{
|
||||
if (self::$cached !== null) {
|
||||
return self::$cached;
|
||||
}
|
||||
$path = self::templatePath();
|
||||
if (!is_file($path)) {
|
||||
throw new \RuntimeException('game_reward_config_template.json missing: ' . $path);
|
||||
}
|
||||
$raw = file_get_contents($path);
|
||||
if ($raw === false || trim($raw) === '') {
|
||||
throw new \RuntimeException('game_reward_config_template.json read failed');
|
||||
}
|
||||
$decoded = json_decode($raw, true);
|
||||
if (!is_array($decoded)) {
|
||||
throw new \RuntimeException('game_reward_config_template.json invalid JSON');
|
||||
}
|
||||
$tier = $decoded['tier_reward_form'] ?? null;
|
||||
$big = $decoded['bigwin_form'] ?? null;
|
||||
if (!is_array($tier) || !is_array($big)) {
|
||||
throw new \RuntimeException('game_reward_config_template.json missing tier_reward_form or bigwin_form');
|
||||
}
|
||||
$tierJson = json_encode($tier, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
|
||||
$bigJson = json_encode($big, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
|
||||
if (!is_string($tierJson) || !is_string($bigJson)) {
|
||||
throw new \RuntimeException('game_reward_config_template encode failed');
|
||||
}
|
||||
self::$cached = [
|
||||
'tier_reward_form' => $tierJson,
|
||||
'bigwin_form' => $bigJson,
|
||||
];
|
||||
return self::$cached;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user