Fix duplicate mystery box config fields
This commit is contained in:
@@ -66,6 +66,23 @@ class GameConfigController extends Controller
|
||||
$current = $gameConfig->params ?? [];
|
||||
$updated = array_merge($current, $request->input('params'));
|
||||
|
||||
if ($gameConfig->game_key === 'mystery_box') {
|
||||
$legacyMap = [
|
||||
'min_reward' => 'normal_reward_min',
|
||||
'max_reward' => 'normal_reward_max',
|
||||
'rare_min_reward' => 'rare_reward_min',
|
||||
'rare_max_reward' => 'rare_reward_max',
|
||||
];
|
||||
|
||||
foreach ($legacyMap as $legacyKey => $newKey) {
|
||||
if (! array_key_exists($newKey, $updated) && array_key_exists($legacyKey, $updated)) {
|
||||
$updated[$newKey] = $updated[$legacyKey];
|
||||
}
|
||||
|
||||
unset($updated[$legacyKey]);
|
||||
}
|
||||
}
|
||||
|
||||
$gameConfig->update(['params' => $updated]);
|
||||
$gameConfig->clearCache();
|
||||
|
||||
|
||||
@@ -93,12 +93,31 @@
|
||||
@php
|
||||
$params = $game->params ?? [];
|
||||
$labels = gameParamLabels($game->game_key);
|
||||
$hiddenLegacyKeys = $game->game_key === 'mystery_box'
|
||||
? ['min_reward', 'max_reward', 'rare_min_reward', 'rare_max_reward']
|
||||
: [];
|
||||
$paramKeys = array_values(array_unique(array_merge(array_keys($labels), array_keys($params))));
|
||||
$paramKeys = array_values(array_filter($paramKeys, fn ($key) => ! in_array($key, $hiddenLegacyKeys, true)));
|
||||
@endphp
|
||||
|
||||
<div class="grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4">
|
||||
@foreach ($paramKeys as $paramKey)
|
||||
@php $paramValue = $params[$paramKey] ?? ($labels[$paramKey]['default'] ?? '') @endphp
|
||||
@php
|
||||
$paramValue = $params[$paramKey] ?? ($labels[$paramKey]['default'] ?? '');
|
||||
|
||||
if ($game->game_key === 'mystery_box') {
|
||||
$legacyFallbackMap = [
|
||||
'normal_reward_min' => 'min_reward',
|
||||
'normal_reward_max' => 'max_reward',
|
||||
'rare_reward_min' => 'rare_min_reward',
|
||||
'rare_reward_max' => 'rare_max_reward',
|
||||
];
|
||||
|
||||
if (($paramValue === '' || $paramValue === null) && isset($legacyFallbackMap[$paramKey])) {
|
||||
$paramValue = $params[$legacyFallbackMap[$paramKey]] ?? $paramValue;
|
||||
}
|
||||
}
|
||||
@endphp
|
||||
@php $meta = $labels[$paramKey] ?? ['label' => $paramKey, 'type' => 'number', 'unit' => ''] @endphp
|
||||
<div>
|
||||
<label class="block text-xs font-bold text-gray-600 mb-1">
|
||||
|
||||
Reference in New Issue
Block a user