97 lines
5.6 KiB
PHP
97 lines
5.6 KiB
PHP
<?php
|
|
|
|
use Webman\Route;
|
|
|
|
// 全局 API 中间件(语言设置)
|
|
$apiMiddleware = [app\middleware\LanguageMiddleware::class];
|
|
$authMiddleware = array_merge($apiMiddleware, [app\middleware\AuthMiddleware::class]);
|
|
|
|
// 认证路由(不需要认证)
|
|
Route::group('/api/v1', function () {
|
|
Route::post('/auth/login', [app\controller\AuthController::class, 'login']);
|
|
Route::post('/auth/feishu-login', [app\controller\AuthController::class, 'feishuLogin']);
|
|
Route::post('/auth/qrcode-login', [app\controller\AuthController::class, 'qrcodeLogin']);
|
|
Route::get('/auth/qrcode-login/status', [app\controller\AuthController::class, 'qrcodeLoginStatus']);
|
|
Route::get('/auth/feishu-config', [app\controller\AuthController::class, 'feishuConfig']);
|
|
|
|
// 测试接口
|
|
Route::get('/test/notification', [app\controller\TestController::class, 'notification']);
|
|
})->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']);
|
|
});
|