with('user'); $allSources = CurrencySource::cases(); $allowedSources = collect($allSources)->map(fn (CurrencySource $source) => $source->value)->all(); $selectedSources = collect($request->array('sources')) ->filter(fn (string $source) => in_array($source, $allowedSources, true)) ->values() ->all(); // 查询条件过滤 if ($request->filled('username')) { $query->where('username', 'like', '%'.$request->input('username').'%'); } if ($request->filled('currency')) { $query->where('currency', $request->input('currency')); } if ($selectedSources !== []) { $query->whereIn('source', $selectedSources); } 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(); return view('admin.currency-logs.index', compact('logs', 'allSources', 'selectedSources')); } }