lotteryAdmin(); abort_if($admin === null, 401); if (! AdminIntegrationSiteAccess::canAccess($admin, $admin_site)) { return ApiResponse::error('无权访问该站点', ErrorCode::AdminForbidden->value, null, 403); } $sheet = AdminIntegrationSitePresenter::parameterSheet($admin_site); $format = strtolower(trim((string) $request->query('format', 'json'))); if ($format === 'csv') { $filename = 'integration-'.$admin_site->code.'-'.now()->format('Ymd-His').'.csv'; return response()->streamDownload(function () use ($sheet): void { $out = fopen('php://output', 'w'); fputcsv($out, ['field', 'value']); foreach ($sheet as $key => $value) { if (is_array($value)) { $value = json_encode($value, JSON_UNESCAPED_UNICODE); } fputcsv($out, [(string) $key, is_scalar($value) || $value === null ? (string) $value : json_encode($value)]); } fclose($out); }, $filename, ['Content-Type' => 'text/csv; charset=UTF-8']); } return ApiResponse::success($sheet); } }