- 新增后台 RBAC 相关文档,提供权限目录与维护命令说明。 - 移除不必要的角色资源同步检查,简化权限审计命令。 - 更新权限描述与同步逻辑,确保一致性与可维护性。 - 统一权限注册表,替换过时的权限别名,增强代码可读性。
58 lines
1.8 KiB
PHP
58 lines
1.8 KiB
PHP
<?php
|
||
|
||
namespace App\Http\Controllers\Api\V1\Admin;
|
||
|
||
use App\Http\Controllers\Controller;
|
||
use App\Http\Requests\Admin\AdminSettingIndexRequest;
|
||
use App\Http\Requests\Admin\AdminSettingUpdateRequest;
|
||
use App\Models\LotterySetting;
|
||
use App\Support\ApiResponse;
|
||
use App\Services\LotterySettings;
|
||
use Illuminate\Http\JsonResponse;
|
||
|
||
/**
|
||
* 后台:运营配置(KV 设置)读写。
|
||
*/
|
||
final class AdminSettingController extends Controller
|
||
{
|
||
public function index(AdminSettingIndexRequest $request): JsonResponse
|
||
{
|
||
$validated = $request->validated();
|
||
$query = LotterySetting::query()->orderBy('setting_key');
|
||
|
||
if (! empty($validated['group'])) {
|
||
$query->where('group_name', $validated['group']);
|
||
}
|
||
|
||
$items = $query->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]);
|
||
}
|
||
|
||
public function update(AdminSettingUpdateRequest $request, string $key): JsonResponse
|
||
{
|
||
$setting = LotterySetting::query()->where('setting_key', $key)->first();
|
||
|
||
LotterySettings::put(
|
||
$key,
|
||
$request->validated('value'),
|
||
$setting ? $setting->group_name : (explode('.', $key)[0] ?? 'general'),
|
||
$setting ? $setting->description_zh : null,
|
||
);
|
||
|
||
$fresh = LotterySetting::query()->where('setting_key', $key)->first();
|
||
|
||
return ApiResponse::success([
|
||
'key' => $fresh->setting_key,
|
||
'value' => $fresh->value_json,
|
||
'group' => $fresh->group_name,
|
||
'description' => $fresh->description_zh,
|
||
]);
|
||
}
|
||
}
|