功能:字体颜色持久化、等级体系升级至99级、钓鱼小游戏、补充系统参数

- 字体颜色:s_color 改为 varchar,发消息时保存颜色,进入聊天室自动恢复
- 等级体系:maxlevel 15→99,superlevel 16→100,99级经验阶梯(幂次曲线)
- 管理权限等级按比例调整:禁言50、踢人60、设公告60、封号80、封IP90
- 钓鱼小游戏:FishingController(抛竿扣金币+收竿随机结果+广播)
- 补充6个缺失的 sysparam 参数 + 4个钓鱼参数
- 用户列表点击用户名后自动聚焦输入框
- Pint 格式化
This commit is contained in:
2026-02-26 21:10:34 +08:00
parent d884853968
commit ea06328885
652 changed files with 5013 additions and 1274 deletions

View File

@@ -2,6 +2,7 @@
/**
* 文件功能:用户等级权限验证中间件
* 支持传入固定数字等级 'super' 关键字(动态读取 sysparam superlevel
*
* @author ChatRoom Laravel
*
@@ -10,6 +11,7 @@
namespace App\Http\Middleware;
use App\Models\Sysparam;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
@@ -18,21 +20,26 @@ use Symfony\Component\HttpFoundation\Response;
class LevelRequired
{
/**
* Handle an incoming request.
* 校验当前登录用户的等级是否大于或等于要求等级。
* $level 'super' 时,动态从 sysparam 表读取 superlevel 值。
*
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
* @param int $level 要求达到的最低等级 (例如 15 为室主)
* @param string $level 要求的最低等级(数字 'super'
*/
public function handle(Request $request, Closure $next, int $level): Response
public function handle(Request $request, Closure $next, string $level = 'super'): Response
{
if (! Auth::check()) {
return redirect()->route('home');
}
// 动态解析等级要求:'super' → 从 sysparam 读取,数字 → 直接使用
$requiredLevel = ($level === 'super')
? (int) Sysparam::getValue('superlevel', '100')
: (int) $level;
$user = Auth::user();
if ($user->user_level < $level) {
if ($user->user_level < $requiredLevel) {
if ($request->expectsJson()) {
return response()->json(['message' => '权限不足', 'status' => 'error'], 403);
}