|
@@ -4,7 +4,6 @@ namespace App\Http\Controllers;
|
|
|
|
|
|
|
|
use App\Services\ExamPdfExportService;
|
|
use App\Services\ExamPdfExportService;
|
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Http\Request;
|
|
|
-use Illuminate\Support\Facades\Storage;
|
|
|
|
|
|
|
|
|
|
class QuestionPreviewController extends Controller
|
|
class QuestionPreviewController extends Controller
|
|
|
{
|
|
{
|
|
@@ -34,19 +33,23 @@ class QuestionPreviewController extends Controller
|
|
|
// 过滤空选项
|
|
// 过滤空选项
|
|
|
$options = array_filter($request->input('options', []), fn($v) => !empty($v));
|
|
$options = array_filter($request->input('options', []), fn($v) => !empty($v));
|
|
|
|
|
|
|
|
- $pdfPath = $service->generatePreviewPdf(
|
|
|
|
|
- stem: $request->input('stem'),
|
|
|
|
|
- options: $options,
|
|
|
|
|
- answer: $request->input('answer'),
|
|
|
|
|
- solution: $request->input('solution')
|
|
|
|
|
- );
|
|
|
|
|
|
|
+ // 构建题目数据数组
|
|
|
|
|
+ $questionData = [
|
|
|
|
|
+ 'stem' => $request->input('stem'),
|
|
|
|
|
+ 'options' => $options,
|
|
|
|
|
+ 'answer' => $request->input('answer'),
|
|
|
|
|
+ 'solution' => $request->input('solution'),
|
|
|
|
|
+ ];
|
|
|
|
|
|
|
|
- // 返回可访问的 URL
|
|
|
|
|
- $url = Storage::disk('public')->url($pdfPath);
|
|
|
|
|
|
|
+ $result = $service->generatePreviewPdf($questionData);
|
|
|
|
|
+
|
|
|
|
|
+ if (!$result || empty($result['url'])) {
|
|
|
|
|
+ throw new \Exception('PDF 生成失败');
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
return response()->json([
|
|
return response()->json([
|
|
|
'success' => true,
|
|
'success' => true,
|
|
|
- 'url' => $url,
|
|
|
|
|
|
|
+ 'url' => $result['url'],
|
|
|
]);
|
|
]);
|
|
|
} catch (\Exception $e) {
|
|
} catch (\Exception $e) {
|
|
|
return response()->json([
|
|
return response()->json([
|