This commit is contained in:
2026-02-17 13:55:30 +08:00
parent f90afaddca
commit 6623c656f4
17 changed files with 1464 additions and 569 deletions

View File

@@ -85,7 +85,7 @@ class Department extends Controller
{
$validated = $request->validate([
'name' => 'required|string|max:50',
'parent_id' => 'nullable|integer|exists:auth_departments,id',
'parent_id' => 'nullable|integer',
'leader' => 'nullable|string|max:50',
'phone' => 'nullable|string|max:20',
'sort' => 'nullable|integer|min:0',
@@ -108,7 +108,7 @@ class Department extends Controller
{
$validated = $request->validate([
'name' => 'nullable|string|max:50',
'parent_id' => 'nullable|integer|exists:auth_departments,id',
'parent_id' => 'nullable|integer',
'leader' => 'nullable|string|max:50',
'phone' => 'nullable|string|max:20',
'sort' => 'nullable|integer|min:0',

View File

@@ -5,6 +5,7 @@ namespace App\Http\Controllers\System\Admin;
use App\Http\Controllers\Controller;
use App\Http\Requests\LogRequest;
use App\Services\System\LogService;
use Illuminate\Http\Request;
use Maatwebsite\Excel\Facades\Excel;
use App\Exports\GenericExport;
@@ -30,39 +31,9 @@ class Log extends Controller
public function export(LogRequest $request)
{
$params = $request->validated();
$pageSize = $params['page_size'] ?? 10000; // 导出时默认获取更多数据
$filePath = $this->logService->export($params);
// 获取所有符合条件的日志(不分页)
$query = $this->logService->getListQuery($params);
$logs = $query->limit($pageSize)->get();
// 准备导出数据
$headers = [
'ID', '用户名', '模块', '操作', '请求方法', 'URL', 'IP地址',
'状态码', '状态', '错误信息', '执行时间(ms)', '创建时间'
];
$data = [];
foreach ($logs as $log) {
$data[] = [
$log->id,
$log->username,
$log->module,
$log->action,
$log->method,
$log->url,
$log->ip,
$log->status_code,
$log->status === 'success' ? '成功' : '失败',
$log->error_message ?? '-',
$log->execution_time,
$log->created_at->format('Y-m-d H:i:s'),
];
}
$filename = '系统操作日志_' . date('YmdHis') . '.xlsx';
return Excel::download(new GenericExport($headers, $data), $filename);
return response()->download($filePath)->deleteFileAfterSend(true);
}
public function show(int $id)
@@ -93,7 +64,7 @@ class Log extends Controller
]);
}
public function batchDelete(Request $request)
public function batchDelete(\Illuminate\Http\Request $request)
{
$this->logService->batchDelete($request->input('ids', []));
return response()->json([

View File

@@ -9,7 +9,7 @@ use Illuminate\Http\Exceptions\HttpResponseException;
class LogRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
* Determine if user is authorized to make this request.
*
* @return bool
*/
@@ -19,7 +19,7 @@ class LogRequest extends FormRequest
}
/**
* Get the validation rules that apply to the request.
* Get validation rules that apply to request.
*
* @return array
*/
@@ -34,6 +34,7 @@ class LogRequest extends FormRequest
'username' => 'nullable|string|max:50',
'module' => 'nullable|string|max:50',
'action' => 'nullable|string|max:100',
'method' => 'nullable|in:GET,POST,PUT,DELETE,PATCH',
'status' => 'nullable|in:success,error',
'start_date' => 'nullable|date',
'end_date' => 'nullable|date|after_or_equal:start_date',
@@ -77,6 +78,7 @@ class LogRequest extends FormRequest
'username.max' => '用户名最多50个字符',
'module.max' => '模块名最多50个字符',
'action.max' => '操作名最多100个字符',
'method.in' => '请求方式必须是 GET、POST、PUT、DELETE 或 PATCH',
'status.in' => '状态值必须是 success 或 error',
'start_date.date' => '开始日期格式不正确',
'end_date.date' => '结束日期格式不正确',
@@ -121,7 +123,7 @@ class LogRequest extends FormRequest
}
/**
* Prepare the data for validation.
* Prepare for validation.
*
* @return void
*/