middleware($apiMiddleware); // 飞书登录回调(不在 /api/v1 下,供飞书重定向使用) Route::get('/login/callback', [app\controller\AuthController::class, 'qrcodeLoginCallback'])->middleware($apiMiddleware); // 飞书卡片回调(不需要认证,飞书服务器直接调用) Route::post('/feishu/card/callback', [app\controller\FeishuCardController::class, 'callback']); // 调试接口(开发环境使用) Route::group('/debug', function () { Route::get('/message-logs', [app\controller\DebugController::class, 'messageLogs']); Route::post('/clear-logs', [app\controller\DebugController::class, 'clearLogs']); }); // 用户路由(需要认证) Route::group('/api/v1/user', function () { Route::get('/info', [app\controller\UserController::class, 'info']); Route::get('/menu', [app\controller\UserController::class, 'menu']); Route::get('/companies', [app\controller\UserController::class, 'companies']); Route::get('/list', [app\controller\UserController::class, 'list']); Route::post('/switch-company', [app\controller\UserController::class, 'switchCompany']); Route::post('/change-password', [app\controller\UserController::class, 'changePassword']); })->middleware($authMiddleware); // 审批路由(需要认证) Route::group('/api/v1/approval', function () { Route::get('/list', [app\controller\ApprovalController::class, 'list']); Route::get('/detail/{id}', [app\controller\ApprovalController::class, 'detail']); Route::post('/approve/{id}', [app\controller\ApprovalController::class, 'approve']); Route::post('/reject/{id}', [app\controller\ApprovalController::class, 'reject']); Route::post('/cancel/{id}', [app\controller\ApprovalController::class, 'cancel']); })->middleware($authMiddleware); // 出差审批路由(需要认证) Route::group('/api/v1/business-trip', function () { Route::get('/list', [app\controller\BusinessTripController::class, 'list']); Route::get('/detail/{id}', [app\controller\BusinessTripController::class, 'detail']); Route::get('/default-approvers', [app\controller\BusinessTripController::class, 'getDefaultApprovers']); Route::post('/create', [app\controller\BusinessTripController::class, 'create']); Route::post('/update/{id}', [app\controller\BusinessTripController::class, 'update']); Route::post('/submit/{id}', [app\controller\BusinessTripController::class, 'submit']); Route::post('/cancel/{id}', [app\controller\BusinessTripController::class, 'cancel']); Route::delete('/{id}', [app\controller\BusinessTripController::class, 'deleteDraft']); Route::post('/approve/{id}', [app\controller\BusinessTripController::class, 'approve']); })->middleware($authMiddleware); // 二手车路由(需要认证) Route::group('/api/v1/usedcar', function () { Route::get('/list', [app\controller\UsedCarController::class, 'list']); Route::get('/detail', [app\controller\UsedCarController::class, 'detail']); Route::post('/create', [app\controller\UsedCarController::class, 'create']); Route::post('/update', [app\controller\UsedCarController::class, 'update']); Route::post('/delete', [app\controller\UsedCarController::class, 'delete']); Route::post('/status', [app\controller\UsedCarController::class, 'updateStatus']); Route::post('/crawl/url', [app\controller\UsedCarController::class, 'crawlByUrl']); Route::post('/crawl/mobile', [app\controller\UsedCarController::class, 'crawlMobileUrl']); Route::post('/crawl/keyword', [app\controller\UsedCarController::class, 'crawlKeyword']); Route::post('/pdf/generate', [app\controller\UsedCarController::class, 'generatePdf']); Route::get('/pdf/download', [app\controller\UsedCarController::class, 'downloadPdf']); Route::get('/pdf/url', [app\controller\UsedCarController::class, 'getPdfUrl']); Route::get('/pdf/preview', [app\controller\UsedCarController::class, 'previewPdf']); })->middleware($authMiddleware); // 文件上传路由(不需要认证) Route::group('/api/v1/upload', function () { Route::post('/file', [app\controller\UploadController::class, 'upload']); Route::post('/image', [app\controller\UploadController::class, 'uploadImage']); Route::post('/usedcar', [app\controller\UploadController::class, 'uploadUsedCarImage']); Route::post('/batch', [app\controller\UploadController::class, 'batchUploadImages']); Route::post('/delete', [app\controller\UploadController::class, 'deleteFile']); Route::get('/info', [app\controller\UploadController::class, 'getFileInfo']); Route::get('/config', [app\controller\UploadController::class, 'getPartitionConfig']); })->middleware($apiMiddleware); // 默认路由 Route::fallback(function () { return json(['code' => 404, 'message' => 'Not Found']); });