From b366c9888feca677a5aca165e5673f8ad5df8a91 Mon Sep 17 00:00:00 2001 From: lkddi Date: Fri, 27 Feb 2026 15:31:29 +0800 Subject: [PATCH] =?UTF-8?q?Feat:=20=E5=90=8E=E5=8F=B0=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E5=A2=9E=E5=8A=A0=E9=87=91=E5=B8=81/?= =?UTF-8?q?=E9=AD=85=E5=8A=9B=E5=88=97=EF=BC=8C=E8=A1=A8=E5=A4=B4=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E7=82=B9=E5=87=BB=E6=8E=92=E5=BA=8F=EF=BC=88=E7=AD=89?= =?UTF-8?q?=E7=BA=A7/=E7=BB=8F=E9=AA=8C/=E9=87=91=E5=B8=81/=E9=AD=85?= =?UTF-8?q?=E5=8A=9B=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Admin/UserManagerController.php | 12 +++-- resources/views/admin/users/index.blade.php | 44 ++++++++++++++++++- 2 files changed, 50 insertions(+), 6 deletions(-) diff --git a/app/Http/Controllers/Admin/UserManagerController.php b/app/Http/Controllers/Admin/UserManagerController.php index a1f6dad..9c58142 100644 --- a/app/Http/Controllers/Admin/UserManagerController.php +++ b/app/Http/Controllers/Admin/UserManagerController.php @@ -23,7 +23,7 @@ use Illuminate\View\View; class UserManagerController extends Controller { /** - * 显示拥护列表及搜索 + * 显示用户列表及搜索(支持按等级/经验/金币/魅力排序) */ public function index(Request $request): View { @@ -33,13 +33,17 @@ class UserManagerController extends Controller $query->where('username', 'like', '%'.$request->input('username').'%'); } - // 分页获取用户 - $users = $query->orderBy('id', 'desc')->paginate(20); + // 排序:允许的字段白名单,防止 SQL 注入 + $sortable = ['user_level', 'exp_num', 'jjb', 'meili', 'id']; + $sortBy = in_array($request->input('sort_by'), $sortable) ? $request->input('sort_by') : 'id'; + $sortDir = $request->input('sort_dir') === 'asc' ? 'asc' : 'desc'; + + $users = $query->orderBy($sortBy, $sortDir)->paginate(20)->withQueryString(); // VIP 等级选项列表(供编辑弹窗使用) $vipLevels = \App\Models\VipLevel::orderBy('sort_order')->get(); - return view('admin.users.index', compact('users', 'vipLevels')); + return view('admin.users.index', compact('users', 'vipLevels', 'sortBy', 'sortDir')); } /** diff --git a/resources/views/admin/users/index.blade.php b/resources/views/admin/users/index.blade.php index b714046..5e472b8 100644 --- a/resources/views/admin/users/index.blade.php +++ b/resources/views/admin/users/index.blade.php @@ -22,6 +22,22 @@
+ @php + /** + * 生成排序链接:点击同一列切换方向,点击新列默认倒序 + */ + $sortLink = function (string $col) use ($sortBy, $sortDir, $request): string { + $newDir = $sortBy === $col && $sortDir === 'desc' ? 'asc' : 'desc'; + $qs = http_build_query( + array_merge($request->except(['sort_by', 'sort_dir', 'page']), [ + 'sort_by' => $col, + 'sort_dir' => $newDir, + ]), + ); + return url('/admin/users?' . $qs); + }; + $arrow = fn(string $col): string => $sortBy === $col ? ($sortDir === 'desc' ? ' ↓' : ' ↑') : ''; + @endphp ID - - + + + + @@ -60,6 +94,12 @@ + +
注册名 性别等级经验 + + 等级{{ $arrow('user_level') }} + + + + 经验{{ $arrow('exp_num') }} + + + + 金币{{ $arrow('jjb') }} + + + + 魅力{{ $arrow('meili') }} + + 注册时间 管理操作
{{ number_format($user->exp_num ?? 0) }} + {{ number_format($user->jjb ?? 0) }} + + {{ number_format($user->meili ?? 0) }} + {{ $user->created_at->format('Y/m/d H:i') }}