Files
chatroom/app/Http/Controllers/Admin/SystemController.php
lkddi ea06328885 功能:字体颜色持久化、等级体系升级至99级、钓鱼小游戏、补充系统参数
- 字体颜色:s_color 改为 varchar,发消息时保存颜色,进入聊天室自动恢复
- 等级体系:maxlevel 15→99,superlevel 16→100,99级经验阶梯(幂次曲线)
- 管理权限等级按比例调整:禁言50、踢人60、设公告60、封号80、封IP90
- 钓鱼小游戏:FishingController(抛竿扣金币+收竿随机结果+广播)
- 补充6个缺失的 sysparam 参数 + 4个钓鱼参数
- 用户列表点击用户名后自动聚焦输入框
- Pint 格式化
2026-02-26 21:10:34 +08:00

64 lines
1.7 KiB
PHP

<?php
/**
* 文件功能:系统参数配置控制器
* (替代原版 VIEWSYS.ASP / SetSYS.ASP)
*
* @author ChatRoom Laravel
*
* @version 1.0.0
*/
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\SysParam;
use App\Services\ChatStateService;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\View\View;
class SystemController extends Controller
{
public function __construct(
private readonly ChatStateService $chatState
) {}
/**
* 显示全局参数配置表单
*/
public function edit(): View
{
// 读取数据库中最新的参数
$params = SysParam::all()->pluck('body', 'alias')->toArray();
// 为后台界面准备的文案对照 (可动态化或硬编码)
$descriptions = SysParam::all()->pluck('guidetxt', 'alias')->toArray();
return view('admin.system.edit', compact('params', 'descriptions'));
}
/**
* 更新全局参数,并刷新全站 Cache 缓存
*/
public function update(Request $request): RedirectResponse
{
$data = $request->except(['_token', '_method']);
foreach ($data as $alias => $body) {
SysParam::updateOrCreate(
['alias' => $alias],
['body' => $body]
);
// 写入 Cache 保证极速读取
$this->chatState->setSysParam($alias, $body);
// 同时清除 Sysparam 模型的内部缓存
SysParam::clearCache($alias);
}
return redirect()->route('admin.system.edit')->with('success', '系统参数已成功更新并生效!');
}
}