## GitHub 同步说明 | 项 | 内容 | |:---|:---| | 仓库 | https://github.com/fnvtk/cunkebao_v3 | | 分支 | develop | | 方向 | 本地 → GitHub(单向 push) | | 是否拉取远程 | 否(未 fetch / pull / merge) | | 是否改本地源文件 | 否(仅 git add/commit,未编辑业务/文档正文) | | 远程基准 | origin/develop @b5b40e8b| | 本批工作区变更 | 999 files, +47622 / -4007 lines | ## 一并推送的本地已有 commit(此前未 push) 1.3aa7ecf8deploy: 官网 ckb.quwanzhi.com 宝塔上线 DNS+SSL+验收文档 2.16a70045fix(官网): 桌面导航仅保留一个留资 CTA 并重新上线 3.dbe7b7aafix(官网): Hero 改为主 CTA 按钮并去掉重复 1200+ 数据条 4.ac82726echore(部署): 五端上线验收46项并统一留资与缓存版本 ## 本 commit 目录统计 | 目录 | 文件数 | 说明 | |:---|---:|:---| | 开发文档/ | 639 | 10、项目管理、未完成项跨仓汇总、五端需求/部署/接口 | | Server/ | 129 | 后端 API、迁移、部署相关 | | Touchkebao/ | 80 | PC 工作台、获客、算力 | | 官网/ | 61 | ckb.quwanzhi.com 静态站与 CTA 迭代 | | Cunkebao/ | 49 | 移动端场景/设置/流量池 | | SuperAdmin/ | 26 | 超管后台 | | .cursor/ | 11 | 规则与 Skill | | 其他 | 14 | docker-compose、.obsidian、.codegraph 等 | ## 重点文件(本地为准) - 开发文档/1、需求/修改/未完成项与跨仓验收汇总.md - 开发文档/10、项目管理/账号密码与登录环境一览.md - 开发文档/10、项目管理/(新建项目管理目录与截图) - 官网/ 全站 + 宝塔上线文档 - 五端上线验收 46 项(见 ac82726e) ## 刻意未上传 - node_modules/、.DS_Store、.smart-env/ - .开发文档_nested_git_backup/ - **/__pycache__/ ## 验收 - 提交页(含本说明): https://github.com/fnvtk/cunkebao_v3/commit/HEAD - 分支树: https://github.com/fnvtk/cunkebao_v3/tree/develop Co-authored-by: Cursor <cursoragent@cursor.com>
178 lines
13 KiB
PHP
178 lines
13 KiB
PHP
<?php
|
||
|
||
use think\facade\Route;
|
||
|
||
// 超级管理员认证相关路由(不需要鉴权)
|
||
Route::post('v1/admin/auth/login', 'app\superadmin\controller\auth\AuthLoginController@index');
|
||
|
||
// 需要登录认证的路由组(使用通用 JWT 中间件)
|
||
Route::group('v1/admin', function () {
|
||
// 仪表盘概述
|
||
Route::group('dashboard', function () {
|
||
Route::get('base', 'app\superadmin\controller\dashboard\GetBasestatisticsController@index');
|
||
Route::get('overview', 'app\superadmin\controller\dashboard\GetDashboardOverviewController@index');
|
||
});
|
||
|
||
// 菜单管理相关路由
|
||
Route::group('menu', function () {
|
||
Route::get('tree', 'app\superadmin\controller\Menu\GetMenuTreeController@index');
|
||
Route::get('toplevel', 'app\superadmin\controller\Menu\GetTopLevelForPermissionController@index');
|
||
});
|
||
|
||
// 管理员相关路由
|
||
Route::group('administrator', function () {
|
||
Route::get('list', 'app\superadmin\controller\administrator\GetAdministratorListController@index');
|
||
Route::get('detail/:id', 'app\superadmin\controller\administrator\GetAdministratorDetailController@index');
|
||
Route::post('update', 'app\superadmin\controller\administrator\UpdateAdministratorController@index');
|
||
Route::post('add', 'app\superadmin\controller\administrator\AddAdministratorController@index');
|
||
Route::post('delete', 'app\superadmin\controller\administrator\DeleteAdministratorController@index');
|
||
});
|
||
|
||
// 客户池管理路由
|
||
Route::group('trafficPool', function () {
|
||
Route::get('list', 'app\superadmin\controller\traffic\GetPoolListController@index');
|
||
Route::get('summary', 'app\superadmin\controller\traffic\GetPoolSummaryController@index');
|
||
Route::get('detail', 'app\superadmin\controller\traffic\GetPoolDetailController@index');
|
||
Route::get('wechat-filters', 'app\superadmin\controller\traffic\GetPoolWechatFiltersController@index');
|
||
Route::post('migrate', 'app\superadmin\controller\traffic\PostPoolMigrateController@index');
|
||
});
|
||
|
||
// 微信号检测回填(§6.2)
|
||
Route::post('wechat/sync-detect', 'app\superadmin\controller\wechat\PostSyncDetectController@index');
|
||
|
||
// 全平台内容库(按项目分组)
|
||
Route::get('content-library/grouped', 'app\superadmin\controller\content\GetPlatformContentLibraryController@index');
|
||
// 内容库多项目分配 + 素材预览(§6.4)
|
||
Route::get('content-library/:id/materials', 'app\superadmin\controller\content\GetLibraryMaterialsController@index');
|
||
Route::get('content-library/:id/assignments', 'app\superadmin\controller\content\GetLibraryAssignmentsController@index');
|
||
Route::post('content-library/assign', 'app\superadmin\controller\content\PostLibraryAssignController@index');
|
||
Route::put('content-library/assign/:id', 'app\superadmin\controller\content\PutLibraryAssignController@index');
|
||
|
||
// 算力规则中心(power-billing)· 全平台算力配置真源
|
||
Route::group('power-billing', function () {
|
||
Route::get('settings', 'app\superadmin\controller\powerbilling\GetSettingsController@index');
|
||
Route::put('settings', 'app\superadmin\controller\powerbilling\PutSettingsController@index');
|
||
Route::put('daily-free', 'app\superadmin\controller\powerbilling\PutDailyFreeController@index'); // REQ-SA-99 每日赠送算力
|
||
Route::get('catalog', 'app\superadmin\controller\powerbilling\GetCatalogController@index');
|
||
Route::put('catalog/:slug', 'app\superadmin\controller\powerbilling\PutCatalogController@index');
|
||
Route::post('catalog/reset/:slug', 'app\superadmin\controller\powerbilling\PostCatalogResetController@index');
|
||
Route::post('catalog', 'app\superadmin\controller\powerbilling\PostCatalogController@index'); // 新增自定义收费项(§六 V12)
|
||
Route::get('packages', 'app\superadmin\controller\powerbilling\GetPackagesController@index');
|
||
Route::post('packages', 'app\superadmin\controller\powerbilling\PostPackageController@index');
|
||
Route::post('packages/recalc', 'app\superadmin\controller\powerbilling\PostRecalcPackagesController@index');
|
||
Route::get('insights', 'app\superadmin\controller\powerbilling\GetInsightsController@index');
|
||
});
|
||
|
||
// AI 中心 · 全平台大模型接口配置真源(§二 2.6)
|
||
Route::group('ai-center', function () {
|
||
Route::get('config', 'app\superadmin\controller\aicenter\GetConfigController@index');
|
||
Route::get('providers', 'app\superadmin\controller\aicenter\GetProvidersController@index');
|
||
Route::post('providers', 'app\superadmin\controller\aicenter\PostProviderController@index');
|
||
Route::put('providers/:id', 'app\superadmin\controller\aicenter\PutProviderController@index');
|
||
Route::delete('providers/:id', 'app\superadmin\controller\aicenter\DeleteProviderController@index');
|
||
Route::get('tiers', 'app\superadmin\controller\aicenter\GetTiersController@index');
|
||
Route::put('tiers', 'app\superadmin\controller\aicenter\PutTiersController@index');
|
||
Route::get('routing', 'app\superadmin\controller\aicenter\GetRoutingController@index');
|
||
Route::put('routing', 'app\superadmin\controller\aicenter\PutRoutingController@index');
|
||
Route::post('test', 'app\superadmin\controller\aicenter\PostTestController@index');
|
||
});
|
||
|
||
// SEO 运营中心(REQ-WEB-41/42 · 与 AI 中心平级 · /v1/admin/seo/*)
|
||
Route::group('seo', function () {
|
||
Route::get('overview', 'app\superadmin\controller\seo\SeoOverviewController@index');
|
||
// 页面 SEO
|
||
Route::get('pages', 'app\superadmin\controller\seo\SeoPageController@index');
|
||
Route::get('pages/export', 'app\superadmin\controller\seo\SeoPageController@export');
|
||
Route::post('pages', 'app\superadmin\controller\seo\SeoPageController@save');
|
||
Route::delete('pages/:id', 'app\superadmin\controller\seo\SeoPageController@delete');
|
||
// 关键词库
|
||
Route::get('keywords', 'app\superadmin\controller\seo\SeoKeywordController@index');
|
||
Route::post('keywords', 'app\superadmin\controller\seo\SeoKeywordController@save');
|
||
Route::post('keywords/import', 'app\superadmin\controller\seo\SeoKeywordController@import');
|
||
Route::delete('keywords/:id', 'app\superadmin\controller\seo\SeoKeywordController@delete');
|
||
// 内链矩阵
|
||
Route::get('internal-links', 'app\superadmin\controller\seo\SeoInternalLinkController@index');
|
||
Route::post('internal-links', 'app\superadmin\controller\seo\SeoInternalLinkController@save');
|
||
Route::delete('internal-links/:id', 'app\superadmin\controller\seo\SeoInternalLinkController@delete');
|
||
// 站外互链矩阵
|
||
Route::get('external-sites', 'app\superadmin\controller\seo\SeoExternalSiteController@index');
|
||
Route::get('external-sites/snippet', 'app\superadmin\controller\seo\SeoExternalSiteController@snippet');
|
||
Route::post('external-sites', 'app\superadmin\controller\seo\SeoExternalSiteController@save');
|
||
Route::delete('external-sites/:id', 'app\superadmin\controller\seo\SeoExternalSiteController@delete');
|
||
// 收录看板
|
||
Route::get('index-logs', 'app\superadmin\controller\seo\SeoIndexLogController@index');
|
||
Route::post('index-logs', 'app\superadmin\controller\seo\SeoIndexLogController@save');
|
||
// 站外发稿任务单(SEO-P1-03)
|
||
Route::get('publish-tasks', 'app\superadmin\controller\seo\SeoPublishTaskController@index');
|
||
Route::post('publish-tasks', 'app\superadmin\controller\seo\SeoPublishTaskController@save');
|
||
Route::delete('publish-tasks/:id', 'app\superadmin\controller\seo\SeoPublishTaskController@delete');
|
||
});
|
||
|
||
// 设备管理
|
||
Route::group('devices', function () {
|
||
Route::get('list', 'app\superadmin\controller\devices\GetDeviceListController@index');
|
||
Route::post('sync', 'app\superadmin\controller\devices\PostSyncDevicesController@index');
|
||
Route::post('sync-all', 'app\superadmin\controller\devices\PostSyncAllDevicesController@index');
|
||
Route::post('qrcode', 'app\superadmin\controller\devices\PostDeviceQrCodeController@index');
|
||
Route::get('add-results', 'app\superadmin\controller\devices\GetAddResultedDevicesController@index');
|
||
Route::post('transfer', 'app\superadmin\controller\devices\TransferDeviceController@index');
|
||
// 批量迁移到指定项目(§6.3)
|
||
Route::get('migrate/preview', 'app\superadmin\controller\devices\GetDevicesMigratePreviewController@index');
|
||
Route::post('migrate', 'app\superadmin\controller\devices\PostDevicesMigrateController@index');
|
||
});
|
||
|
||
// 全局提示词模板库(REQ-CKB-70 · PromptMergeService 第 7 层真源)
|
||
Route::group('prompt-template', function () {
|
||
Route::get('list', 'app\superadmin\controller\prompt\GetTemplateListController@index');
|
||
Route::post('save', 'app\superadmin\controller\prompt\PostTemplateSaveController@index');
|
||
Route::post('delete', 'app\superadmin\controller\prompt\PostTemplateDeleteController@index');
|
||
Route::post('set-default', 'app\superadmin\controller\prompt\PostTemplateSetDefaultController@index');
|
||
});
|
||
|
||
// 场景获客功能开关
|
||
Route::group('planScene', function () {
|
||
Route::get('list', 'app\superadmin\controller\plan\GetPlanSceneListController@index');
|
||
Route::post('updateStatus', 'app\superadmin\controller\plan\PostPlanSceneUpdateStatusController@index');
|
||
});
|
||
|
||
// 工作台功能开关
|
||
Route::group('workbenchFunction', function () {
|
||
Route::get('list', 'app\superadmin\controller\workbench\GetWorkbenchFunctionListController@index');
|
||
Route::post('updateStatus', 'app\superadmin\controller\workbench\PostWorkbenchFunctionUpdateStatusController@index');
|
||
});
|
||
|
||
// 项目工作台(以项目为中心 · 只读 BFF)
|
||
Route::group('project', function () {
|
||
Route::get('workspace/:id', 'app\superadmin\controller\project\GetProjectWorkspaceController@index');
|
||
Route::get('traffic/:id', 'app\superadmin\controller\project\GetProjectTrafficController@index');
|
||
Route::get('content-library/:id', 'app\superadmin\controller\project\GetProjectContentLibraryController@index');
|
||
Route::post('content-library/save/:id', 'app\superadmin\controller\project\PostProjectContentLibraryController@index');
|
||
Route::post('content-library/migrate/:id', 'app\superadmin\controller\project\PostProjectContentMigrateController@index');
|
||
Route::get('plan-scenes/:id', 'app\superadmin\controller\project\GetProjectPlanScenesController@index');
|
||
Route::post('plan-scenes/update/:id', 'app\superadmin\controller\project\PostProjectPlanSceneStatusController@index');
|
||
Route::get('workbench-functions/:id', 'app\superadmin\controller\project\GetProjectWorkbenchFunctionsController@index');
|
||
Route::post('workbench-functions/update/:id', 'app\superadmin\controller\project\PostProjectWorkbenchFunctionStatusController@index');
|
||
Route::get('tokens/:id', 'app\superadmin\controller\project\GetProjectTokensController@index');
|
||
Route::post('tokens/adjust/:id', 'app\superadmin\controller\project\PostProjectTokensAdjustController@index');
|
||
Route::post('traffic/migrate/:id', 'app\superadmin\controller\project\PostProjectTrafficMigrateController@index');
|
||
Route::post('wechat/migrate/:id', 'app\superadmin\controller\project\PostProjectWechatMigrateController@index');
|
||
});
|
||
|
||
// 公司路由
|
||
Route::group('company', function () {
|
||
Route::post('add', 'app\superadmin\controller\company\CreateCompanyController@index');
|
||
Route::post('update', 'app\superadmin\controller\company\UpdateCompanyController@index');
|
||
Route::post('delete', 'app\superadmin\controller\company\DeleteCompanyController@index');
|
||
Route::get('list', 'app\superadmin\controller\company\GetCompanyListController@index');
|
||
Route::get('options', 'app\superadmin\controller\company\GetCompanyOptionsController@index');
|
||
Route::get('detail/:id', 'app\superadmin\controller\company\GetCompanyDetailForUpdateController@index');
|
||
Route::get('profile/:id', 'app\superadmin\controller\company\GetCompanyDetailForProfileController@index');
|
||
Route::get('accounts/:id', 'app\superadmin\controller\company\GetCompanyUnifiedAccountsController@index');
|
||
Route::post('accounts/save', 'app\superadmin\controller\company\PostCompanyUnifiedAccountsController@index');
|
||
Route::get('devices', 'app\superadmin\controller\company\GetCompanyDevicesForProfileController@index');
|
||
Route::get('subusers', 'app\superadmin\controller\company\GetCompanySubusersForProfileController@index');
|
||
// 工作手机对接方案 A/B(§一 R2)
|
||
Route::get('workphone-provider', 'app\superadmin\controller\company\GetWorkphoneProviderController@index');
|
||
Route::post('workphone-provider', 'app\superadmin\controller\company\PostWorkphoneProviderController@index');
|
||
});
|
||
})->middleware(['jwt']); |