| 1234567891011121314151617181920212223242526272829303132333435 |
- <?php
- namespace App\Http\Controllers\Api;
- use App\Http\Controllers\Controller;
- use App\Models\Question;
- use Illuminate\Http\JsonResponse;
- use Illuminate\Http\Request;
- class PaperAssembleController extends Controller
- {
- public function __invoke(Request $request): JsonResponse
- {
- $count = max(1, min(200, (int) $request->input('count', 10)));
- $kpCodes = (array) $request->input('kp_codes', []);
- $types = (array) $request->input('question_types', []);
- $query = Question::query();
- if (!empty($kpCodes)) {
- $query->whereIn('kp_code', $kpCodes);
- }
- if (!empty($types)) {
- $query->whereIn('question_type', $types);
- }
- $questions = $query->inRandomOrder()->limit($count)->get();
- return response()->json([
- 'count' => $questions->count(),
- 'data' => $questions,
- ]);
- }
- }
|