You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
137 lines
8.4 KiB
137 lines
8.4 KiB
<?php
|
|
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Route;
|
|
use App\Http\Controllers\Api\AuthController;
|
|
use App\Http\Controllers\Api\AdminUserController;
|
|
use App\Http\Controllers\Api\ReservationVerifyController;
|
|
use App\Http\Controllers\Api\VenueController;
|
|
use App\Http\Controllers\Api\VenueImportController;
|
|
use App\Http\Controllers\Api\AdminMenuController;
|
|
use App\Http\Controllers\Api\ActivityController;
|
|
use App\Http\Controllers\Api\ActivityBookingController;
|
|
use App\Http\Controllers\Api\ActivityRegistrationController;
|
|
use App\Http\Controllers\Api\BlacklistController;
|
|
use App\Http\Controllers\Api\DashboardController;
|
|
use App\Http\Controllers\Api\RolePermissionController;
|
|
use App\Http\Controllers\Api\RoleMenuPermissionController;
|
|
use App\Http\Controllers\Api\DictItemController;
|
|
use App\Http\Controllers\Api\UploadController;
|
|
use App\Http\Controllers\Api\MapController;
|
|
use App\Http\Controllers\Api\StudyTourController;
|
|
use App\Http\Controllers\Api\AuditLogController;
|
|
use App\Http\Controllers\Api\H5HomeController;
|
|
use App\Http\Controllers\Api\H5ContentController;
|
|
use App\Http\Controllers\Api\H5ReservationController;
|
|
use App\Http\Controllers\Api\H5WechatController;
|
|
use App\Http\Controllers\Api\H5ProfileController;
|
|
use App\Http\Controllers\Api\H5UploadController;
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| API Routes
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Here is where you can register API routes for your application. These
|
|
| routes are loaded by the RouteServiceProvider and all of them will
|
|
| be assigned to the "api" middleware group. Make something great!
|
|
|
|
|
*/
|
|
|
|
Route::post('/auth/login', [AuthController::class, 'login']);
|
|
Route::get('/h5/home', [H5HomeController::class, 'index']);
|
|
Route::post('/h5/wechat/oauth', [H5WechatController::class, 'oauth']);
|
|
Route::get('/wechat/jssdk-signature', [H5WechatController::class, 'jssdkSignature']);
|
|
|
|
Route::middleware('auth:sanctum')->group(function () {
|
|
Route::get('/h5/me/profile', [H5ProfileController::class, 'show']);
|
|
Route::put('/h5/me/profile', [H5ProfileController::class, 'update']);
|
|
Route::post('/h5/upload', [H5UploadController::class, 'store']);
|
|
});
|
|
Route::get('/h5/venue-dicts', [H5ContentController::class, 'venueDicts']);
|
|
Route::get('/h5/activities', [H5ContentController::class, 'activities']);
|
|
Route::get('/h5/activities/{id}', [H5ContentController::class, 'activityDetail']);
|
|
Route::get('/h5/venues', [H5ContentController::class, 'venues']);
|
|
Route::get('/h5/venues/{id}', [H5ContentController::class, 'venueDetail']);
|
|
Route::get('/h5/study-tours', [H5ContentController::class, 'studyTours']);
|
|
Route::get('/h5/study-tours/{id}', [H5ContentController::class, 'studyTourDetail']);
|
|
Route::get('/h5/activities/{id}/booking-info', [H5ReservationController::class, 'bookingInfo']);
|
|
Route::post('/h5/activities/{id}/reservations', [H5ReservationController::class, 'create']);
|
|
Route::get('/h5/my/reservations', [H5ReservationController::class, 'myReservations']);
|
|
Route::get('/h5/my/reservations/{id}', [H5ReservationController::class, 'detail']);
|
|
Route::post('/h5/my/reservations/{id}/cancel', [H5ReservationController::class, 'cancel']);
|
|
|
|
Route::middleware(['auth:sanctum', 'audit.log'])->group(function () {
|
|
Route::post('/auth/logout', [AuthController::class, 'logout']);
|
|
Route::get('/me', function (Request $request) {
|
|
return $request->user()->load('venues:id,name');
|
|
});
|
|
|
|
Route::get('/admin-users', [AdminUserController::class, 'index']);
|
|
Route::post('/admin-users', [AdminUserController::class, 'store']);
|
|
Route::put('/admin-users/{user}', [AdminUserController::class, 'update']);
|
|
Route::get('/admin-menus', [AdminMenuController::class, 'index']);
|
|
Route::get('/admin-menus/all', [AdminMenuController::class, 'listAll']);
|
|
Route::post('/admin-menus', [AdminMenuController::class, 'store']);
|
|
Route::put('/admin-menus/{adminMenu}', [AdminMenuController::class, 'update']);
|
|
Route::delete('/admin-menus/{adminMenu}', [AdminMenuController::class, 'destroy']);
|
|
Route::get('/role-permissions', [RolePermissionController::class, 'index']);
|
|
Route::put('/role-permissions/{rolePermission}', [RolePermissionController::class, 'update']);
|
|
Route::post('/role-permissions/batch-update', [RolePermissionController::class, 'batchUpdate']);
|
|
Route::get('/role-menu-permissions', [RoleMenuPermissionController::class, 'index']);
|
|
Route::put('/role-menu-permissions/{role}', [RoleMenuPermissionController::class, 'update']);
|
|
Route::get('/dict-items', [DictItemController::class, 'index']);
|
|
Route::post('/dict-items', [DictItemController::class, 'store']);
|
|
Route::put('/dict-items/{dictItem}', [DictItemController::class, 'update']);
|
|
Route::delete('/dict-items/{dictItem}', [DictItemController::class, 'destroy']);
|
|
Route::post('/upload', [UploadController::class, 'store']);
|
|
Route::get('/map/search', [MapController::class, 'search']);
|
|
Route::get('/map/reverse-geocode', [MapController::class, 'reverseGeocode']);
|
|
Route::get('/study-tours', [StudyTourController::class, 'index']);
|
|
Route::post('/study-tours', [StudyTourController::class, 'store']);
|
|
Route::put('/study-tours/{studyTour}', [StudyTourController::class, 'update']);
|
|
Route::delete('/study-tours/{studyTour}', [StudyTourController::class, 'destroy']);
|
|
|
|
Route::get('/venues', [VenueController::class, 'index']);
|
|
Route::post('/venues', [VenueController::class, 'store']);
|
|
Route::get('/venues/import/template', [VenueImportController::class, 'template']);
|
|
Route::post('/venues/import/preview', [VenueImportController::class, 'preview']);
|
|
Route::post('/venues/import/confirm', [VenueImportController::class, 'confirm']);
|
|
Route::put('/venues/{id}', [VenueController::class, 'update'])->whereNumber('id');
|
|
Route::post('/venues/{id}/audit/approve', [VenueController::class, 'approve'])->whereNumber('id');
|
|
Route::post('/venues/{id}/audit/reject', [VenueController::class, 'reject'])->whereNumber('id');
|
|
|
|
Route::get('/activities', [ActivityController::class, 'index']);
|
|
Route::post('/activities', [ActivityController::class, 'store']);
|
|
Route::put('/activities/{activity}', [ActivityController::class, 'update']);
|
|
Route::post('/activities/{activity}/audit/approve', [ActivityController::class, 'approve']);
|
|
Route::post('/activities/{activity}/audit/reject', [ActivityController::class, 'reject']);
|
|
Route::post('/activities/{activity}/toggle', [ActivityController::class, 'toggle']);
|
|
Route::delete('/activities/{activity}', [ActivityController::class, 'destroy']);
|
|
Route::post('/activities/{activity}/restore', [ActivityController::class, 'restore']);
|
|
Route::get('/activities/{activity}/booking-settings', [ActivityBookingController::class, 'show']);
|
|
Route::put('/activities/{activity}/booking-settings', [ActivityBookingController::class, 'update']);
|
|
|
|
Route::get('/activity-registrations', [ActivityRegistrationController::class, 'index']);
|
|
Route::get('/activity-registrations/export', [ActivityRegistrationController::class, 'export']);
|
|
Route::post('/activity-registrations/{reservation}/quick-blacklist', [ActivityRegistrationController::class, 'quickBlacklist']);
|
|
Route::post('/activity-registrations/quick-blacklist/batch', [ActivityRegistrationController::class, 'batchQuickBlacklist']);
|
|
|
|
Route::get('/blacklists', [BlacklistController::class, 'index']);
|
|
Route::get('/user-management/users', [BlacklistController::class, 'users']);
|
|
Route::post('/user-management/blacklist', [BlacklistController::class, 'batchBlacklist']);
|
|
Route::post('/user-management/unblacklist', [BlacklistController::class, 'batchUnblacklist']);
|
|
Route::post('/blacklists', [BlacklistController::class, 'store']);
|
|
Route::post('/blacklists/batch-import', [BlacklistController::class, 'batchImport']);
|
|
Route::put('/blacklists/{blacklist}', [BlacklistController::class, 'update']);
|
|
Route::delete('/blacklists/{blacklist}', [BlacklistController::class, 'destroy']);
|
|
|
|
Route::get('/dashboard/stats', [DashboardController::class, 'stats']);
|
|
Route::get('/audit-logs', [AuditLogController::class, 'index']);
|
|
|
|
Route::get('/reservations/today-summary', [ReservationVerifyController::class, 'todaySummary']);
|
|
Route::get('/reservations', [ReservationVerifyController::class, 'index']);
|
|
Route::get('/reservations/preview', [ReservationVerifyController::class, 'preview']);
|
|
Route::post('/reservations/verify', [ReservationVerifyController::class, 'verifyByToken']);
|
|
});
|