feat: 在管理后台针对superlevel级别用户新增全局金币流水查询页面

This commit is contained in:
2026-03-28 17:20:33 +08:00
parent f0618aad4b
commit 60bafe7bc4
4 changed files with 258 additions and 0 deletions

View File

@@ -0,0 +1,70 @@
<?php
/**
* 文件功能:用户金币/积分流水日志查询
* 对应超级管理员级别的查询页面。可以按用户、增减、货币类型等筛选所有的账目流动。
*
* @author ChatRoom Laravel
*
* @version 1.0.0
*/
namespace App\Http\Controllers\Admin;
use App\Enums\CurrencySource;
use App\Http\Controllers\Controller;
use App\Models\UserCurrencyLog;
use Illuminate\Http\Request;
use Illuminate\View\View;
class CurrencyLogController extends Controller
{
/**
* 显示流水日志列表
* 支持多条件检索,仅 superlevel 以及上可以访问此页面
*/
public function index(Request $request): View
{
$query = UserCurrencyLog::query()->with('user');
// 查询条件过滤
if ($request->filled('username')) {
$query->where('username', 'like', '%'.$request->input('username').'%');
}
if ($request->filled('currency')) {
$query->where('currency', $request->input('currency'));
}
if ($request->filled('source')) {
$query->where('source', $request->input('source'));
}
if ($request->filled('remark')) {
$query->where('remark', 'like', '%'.$request->input('remark').'%');
}
if ($request->filled('direction')) {
if ($request->input('direction') === 'in') {
$query->where('amount', '>', 0);
} elseif ($request->input('direction') === 'out') {
$query->where('amount', '<', 0);
}
}
if ($request->filled('date_start')) {
$query->whereDate('created_at', '>=', $request->input('date_start'));
}
if ($request->filled('date_end')) {
$query->whereDate('created_at', '<=', $request->input('date_end'));
}
// 默认按时间倒序
$logs = $query->latest('id')->paginate(50)->withQueryString();
$allSources = CurrencySource::cases();
return view('admin.currency-logs.index', compact('logs', 'allSources'));
}
}