Fix duplicate mystery box config fields
This commit is contained in:
@@ -66,6 +66,23 @@ class GameConfigController extends Controller
|
|||||||
$current = $gameConfig->params ?? [];
|
$current = $gameConfig->params ?? [];
|
||||||
$updated = array_merge($current, $request->input('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->update(['params' => $updated]);
|
||||||
$gameConfig->clearCache();
|
$gameConfig->clearCache();
|
||||||
|
|
||||||
|
|||||||
@@ -93,12 +93,31 @@
|
|||||||
@php
|
@php
|
||||||
$params = $game->params ?? [];
|
$params = $game->params ?? [];
|
||||||
$labels = gameParamLabels($game->game_key);
|
$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_unique(array_merge(array_keys($labels), array_keys($params))));
|
||||||
|
$paramKeys = array_values(array_filter($paramKeys, fn ($key) => ! in_array($key, $hiddenLegacyKeys, true)));
|
||||||
@endphp
|
@endphp
|
||||||
|
|
||||||
<div class="grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4">
|
<div class="grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4">
|
||||||
@foreach ($paramKeys as $paramKey)
|
@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
|
@php $meta = $labels[$paramKey] ?? ['label' => $paramKey, 'type' => 'number', 'unit' => ''] @endphp
|
||||||
<div>
|
<div>
|
||||||
<label class="block text-xs font-bold text-gray-600 mb-1">
|
<label class="block text-xs font-bold text-gray-600 mb-1">
|
||||||
|
|||||||
Reference in New Issue
Block a user