db_name . ' / ' . $row->now_time; } catch (Throwable $e) { $dbMsg = $e->getMessage(); } $redisOk = false; $redisMsg = '未检测'; try { $pong = Redis::ping(); $redisOk = true; $redisMsg = 'Redis PING => ' . var_export($pong, true); } catch (Throwable $e) { $redisMsg = $e->getMessage(); } return response()->view('welcome_status', [ 'phpVersion' => PHP_VERSION, 'dbOk' => $dbOk, 'dbMsg' => $dbMsg, 'redisOk' => $redisOk, 'redisMsg' => $redisMsg, ]); }); Route::prefix('admin')->group(function () { Route::get('/login', [AdminAuthController::class, 'showLogin']); Route::post('/login', [AdminAuthController::class, 'login']); Route::post('/logout', [AdminAuthController::class, 'logout']); Route::middleware('admin.auth')->group(function () { Route::get('/', [DashboardController::class, 'index']); Route::get('/merchants', [AdminMerchantController::class, 'index']); Route::post('/merchants', [AdminMerchantController::class, 'store']); Route::get('/products', [AdminProductController::class, 'index']); Route::get('/products/import-histories', [AdminProductController::class, 'importHistories']); Route::get('/products/import-histories/export', [AdminProductController::class, 'exportImportHistories']); Route::get('/products/export', [AdminProductController::class, 'export']); Route::get('/products/import-template', [AdminProductController::class, 'downloadImportTemplate']); Route::post('/products/import', [AdminProductController::class, 'import']); Route::get('/products/import-failures/{file}', [AdminProductController::class, 'downloadImportFailures']); Route::post('/products/batch', [AdminProductController::class, 'batchUpdate']); Route::post('/products', [AdminProductController::class, 'store']); Route::post('/products/{id}', [AdminProductController::class, 'update']); Route::post('/products/{id}/delete', [AdminProductController::class, 'destroy']); Route::get('/product-categories', [AdminProductCategoryController::class, 'index']); Route::post('/product-categories', [AdminProductCategoryController::class, 'store']); Route::post('/product-categories/{id}', [AdminProductCategoryController::class, 'update']); Route::post('/product-categories/{id}/delete', [AdminProductCategoryController::class, 'destroy']); Route::get('/orders', [AdminOrderController::class, 'index']); Route::get('/orders/export', [AdminOrderController::class, 'export']); Route::get('/orders/{id}', [AdminOrderController::class, 'show']); Route::post('/orders/{id}/status', [AdminOrderController::class, 'updateStatus']); Route::get('/platform-orders', [PlatformOrderController::class, 'index']); Route::get('/platform-orders/export', [PlatformOrderController::class, 'export']); Route::get('/platform-orders/create', [PlatformOrderController::class, 'create']); Route::post('/platform-orders', [PlatformOrderController::class, 'store']); Route::post('/platform-orders/batch-activate-subscriptions', [PlatformOrderController::class, 'batchActivateSubscriptions']); Route::post('/platform-orders/batch-mark-activated', [PlatformOrderController::class, 'batchMarkActivated']); Route::post('/platform-orders/clear-sync-errors', [PlatformOrderController::class, 'clearSyncErrors']); Route::get('/platform-orders/{order}', [PlatformOrderController::class, 'show']); Route::post('/platform-orders/{order}/activate-subscription', [PlatformOrderController::class, 'activateSubscription']); Route::post('/platform-orders/{order}/mark-paid-and-activate', [PlatformOrderController::class, 'markPaidAndActivate']); Route::post('/platform-orders/{order}/add-payment-receipt', [PlatformOrderController::class, 'addPaymentReceipt']); Route::post('/platform-orders/{order}/add-refund-receipt', [PlatformOrderController::class, 'addRefundReceipt']); Route::post('/platform-orders/{order}/mark-activated', [PlatformOrderController::class, 'markActivated']); Route::get('/site-subscriptions', [SiteSubscriptionController::class, 'index']); Route::get('/site-subscriptions/export', [SiteSubscriptionController::class, 'export']); Route::get('/site-subscriptions/{subscription}', [SiteSubscriptionController::class, 'show']); Route::get('/plans', [PlanController::class, 'index']); Route::get('/plans/export', [PlanController::class, 'export']); Route::get('/plans/create', [PlanController::class, 'create']); Route::post('/plans', [PlanController::class, 'store']); Route::get('/plans/{plan}/edit', [PlanController::class, 'edit']); Route::post('/plans/{plan}', [PlanController::class, 'update']); Route::post('/plans/{plan}/set-status', [PlanController::class, 'setStatus']); Route::get('/settings/system', [PlatformSettingController::class, 'system']); Route::post('/settings/system/{id}', [PlatformSettingController::class, 'updateSystem']); Route::get('/settings/channels', [PlatformSettingController::class, 'channels']); Route::post('/settings/channels/{id}', [PlatformSettingController::class, 'updateChannel']); Route::post('/settings/payments/{id}', [PlatformSettingController::class, 'updatePayment']); }); }); Route::prefix('merchant-admin')->group(function () { Route::get('/login', [MerchantAdminAuthController::class, 'showLogin']); Route::post('/login', [MerchantAdminAuthController::class, 'login']); Route::post('/logout', [MerchantAdminAuthController::class, 'logout']); Route::middleware('merchant.admin.auth')->group(function () { Route::get('/', [MerchantDashboardController::class, 'index']); Route::get('/products', [MerchantProductController::class, 'index']); Route::get('/products/import-histories', [MerchantProductController::class, 'importHistories']); Route::get('/products/import-histories/export', [MerchantProductController::class, 'exportImportHistories']); Route::get('/products/export', [MerchantProductController::class, 'export']); Route::get('/products/import-template', [MerchantProductController::class, 'downloadImportTemplate']); Route::post('/products/import', [MerchantProductController::class, 'import']); Route::get('/products/import-failures/{file}', [MerchantProductController::class, 'downloadImportFailures']); Route::post('/products/batch', [MerchantProductController::class, 'batchUpdate']); Route::post('/products', [MerchantProductController::class, 'store']); Route::post('/products/{id}', [MerchantProductController::class, 'update']); Route::post('/products/{id}/delete', [MerchantProductController::class, 'destroy']); Route::get('/product-categories', [MerchantProductCategoryController::class, 'index']); Route::post('/product-categories', [MerchantProductCategoryController::class, 'store']); Route::post('/product-categories/{id}', [MerchantProductCategoryController::class, 'update']); Route::post('/product-categories/{id}/delete', [MerchantProductCategoryController::class, 'destroy']); Route::get('/users', [MerchantUserController::class, 'index']); Route::get('/orders', [MerchantOrderController::class, 'index']); Route::get('/orders/export', [MerchantOrderController::class, 'export']); Route::get('/orders/{id}', [MerchantOrderController::class, 'show']); Route::post('/orders/{id}/status', [MerchantOrderController::class, 'updateStatus']); }); }); Route::prefix('site-admin')->group(function () { Route::get('/login', [SiteAdminAuthController::class, 'showLogin']); Route::post('/login', [SiteAdminAuthController::class, 'login']); Route::post('/logout', [SiteAdminAuthController::class, 'logout']); Route::middleware('site.admin.auth')->group(function () { Route::get('/', [SiteDashboardController::class, 'index']); Route::get('/merchants', [SiteMerchantController::class, 'index']); Route::get('/merchants/export', [SiteMerchantController::class, 'export']); Route::get('/products', [SiteProductController::class, 'index']); Route::get('/products/export', [SiteProductController::class, 'export']); Route::get('/orders', [SiteOrderController::class, 'index']); Route::get('/orders/export', [SiteOrderController::class, 'export']); }); });