文件
fenleixinxi/application/route.php
linda a09a0a10be feat(api): 新增小程序用户端与后台管理端 v1 业务接口(62 端点)
一、基础设施
- route.php:58 条路由覆盖 /api/v1/**;:id 用 \d+ 约束、长路径优先
- api/controller/V1.php:响应适配为 {code,message,data}(FastAdmin 原生 {code,msg,time,data} 不兼容);
  Authorization Bearer 鉴权;统一分页;业务公共 userInfo/ext/flow/notify/adminLog
- admin/command/FcInstall.php:19 张 fa_fc_* 表 + 种子数据,幂等可重跑

二、控制器 17 个
- 用户端 Auth/Home/Post/Member/Distribution/Message/Setting
- 后台端 AdminDashboard/AdminMerchant/AdminMember/AdminPost/AdminComment/
  AdminDist/AdminOrder/AdminFinance/AdminRbac/AdminSetting

三、契约一致性
- 字段与小程序 common/mock/data.js 逐字段对齐,Mock 与真实接口可对拍
- 实现 BR-01~BR-12,错误文案与前端 mock 完全一致
- 详情联系方式强制脱敏,付费/会员方可解锁

四、验证
- tools/verify-api.mjs:63 端点契约 + 12 条业务规则 + 8 步双端闭环
- docs/05-后端实现规范.md
2026-10-15 14:36:26 +08:00

125 行
6.6 KiB
PHP
可执行文件

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006~2016 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------
// | 同城分类信息 · v1 业务路由表
// | 契约:docs/03-接口文档.md (小程序 /api/v1/... ,后台 PC /api/v1/admin/...)
// |
// | 说明:
// | 1) Nginx 已把 ^(.*)$ 重写到 /index.php?s=$1,pathinfo_depr 为 '/'
// | 2) TP 5.0 按「注册顺序」匹配,故长路径(:id/xxx)必须写在短路径(:id)之前
// | 3) :id 统一用 \d+ 约束,避免 /post/create、/post/drafts 被 :id 误吞
// | 4) 路由不限制请求方法,动作内部按 isPost() 分支(含 GET/POST 同路径的 4 处)
// +----------------------------------------------------------------------
return [
// 变量规则
'__pattern__' => [
'id' => '\d+',
],
//别名配置,别名只能是映射到控制器且访问时必须加上请求的方法
'__alias__' => [],
/* =============== 一、用户端 · 认证与登录(Module-AUTH) =============== */
'api/v1/auth/wx-login' => 'api/Auth/wxLogin',
'api/v1/auth/bind-phone' => 'api/Auth/bindPhone',
'api/v1/auth/switch-type' => 'api/Auth/switchType',
'api/v1/auth/profile' => 'api/Auth/profile',
/* =============== 二、用户端 · 首页与展示(Module-HOME) =============== */
'api/v1/home/banners' => 'api/Home/banners',
'api/v1/home/categories' => 'api/Home/categories',
'api/v1/home/search/hot' => 'api/Home/hotKeywords',
'api/v1/home/feed' => 'api/Home/feed',
/* =============== 三、用户端 · 信息发布与详情(长路径优先) =============== */
'api/v1/post/:id/pay-view' => 'api/Post/payView',
'api/v1/post/:id/comment' => 'api/Post/comment',
'api/v1/post/create' => 'api/Post/create',
'api/v1/post/drafts' => 'api/Post/drafts',
'api/v1/post/draft' => 'api/Post/saveDraft',
'api/v1/post/:id' => 'api/Post/detail',
/* =============== 四、用户端 · 会员中心(Module-MEMBER) =============== */
'api/v1/member/plans' => 'api/Member/plans',
'api/v1/member/benefits' => 'api/Member/benefits',
'api/v1/member/open' => 'api/Member/open',
'api/v1/member/orders' => 'api/Member/orders',
'api/v1/member/assets' => 'api/Member/assets',
/* =============== 五、用户端 · 分销中心(Module-DIST) =============== */
'api/v1/distribution/overview' => 'api/Distribution/overview',
'api/v1/distribution/team' => 'api/Distribution/team',
'api/v1/distribution/withdraw' => 'api/Distribution/withdraw',
'api/v1/distribution/withdraw-records' => 'api/Distribution/withdrawRecords',
/* =============== 六、用户端 · 消息中心(Module-MESSAGE) =============== */
'api/v1/message/list' => 'api/Message/list',
'api/v1/message/:id/read' => 'api/Message/read',
/* =============== 七、站点 UI 配置(用户端读取、后台写入) =============== */
'api/v1/setting/ui' => 'api/Setting/ui',
/* =============== 八、后台 · 数据总览(Module-ADM-DASHBOARD) =============== */
'api/v1/admin/dashboard/overview' => 'api/AdminDashboard/overview',
'api/v1/admin/dashboard/trend' => 'api/AdminDashboard/trend',
/* =============== 九、后台 · 商家管理(Module-ADM-MERCHANT) =============== */
'api/v1/admin/merchant/:id/audit' => 'api/AdminMerchant/audit',
'api/v1/admin/merchants' => 'api/AdminMerchant/index',
/* =============== 十、后台 · 会员管理(Module-ADM-MEMBER) =============== */
'api/v1/admin/member/benefit' => 'api/AdminMember/saveBenefit',
'api/v1/admin/users' => 'api/AdminMember/users',
/* =============== 十一、后台 · 信息审核(Module-ADM-AUDIT) =============== */
'api/v1/admin/post/:id/audit' => 'api/AdminPost/audit',
'api/v1/admin/post/:id/offline' => 'api/AdminPost/offline',
'api/v1/admin/posts/pending' => 'api/AdminPost/pending',
/* =============== 十二、后台 · 评价管理(Module-ADM-COMMENT) =============== */
'api/v1/admin/comment/:id/reply' => 'api/AdminComment/reply',
'api/v1/admin/comments' => 'api/AdminComment/index',
'api/v1/admin/reports' => 'api/AdminComment/reports',
/* =============== 十三、后台 · 分销管理(Module-ADM-DIST) =============== */
'api/v1/admin/dist/withdraw/:id/pay' => 'api/AdminDist/handleWithdraw',
'api/v1/admin/dist/setting' => 'api/AdminDist/setting',
'api/v1/admin/dist/withdraws' => 'api/AdminDist/withdraws',
/* =============== 十四、后台 · 订单管理(Module-ADM-ORDER) =============== */
'api/v1/admin/order/:id/refund' => 'api/AdminOrder/refund',
'api/v1/admin/order/supplement' => 'api/AdminOrder/supplement',
'api/v1/admin/orders' => 'api/AdminOrder/index',
/* =============== 十五、后台 · 财务管理(Module-ADM-FINANCE) =============== */
'api/v1/admin/finance/flows' => 'api/AdminFinance/flows',
'api/v1/admin/finance/report' => 'api/AdminFinance/report',
/* =============== 十六、后台 · 权限管理(Module-ADM-RBAC) =============== */
'api/v1/admin/role' => 'api/AdminRbac/saveRole',
'api/v1/admin/roles' => 'api/AdminRbac/roles',
'api/v1/admin/accounts' => 'api/AdminRbac/accounts',
'api/v1/admin/logs' => 'api/AdminRbac/logs',
/* =============== 十七、后台 · 系统设置(Module-ADM-SETTING) ===============
* /setting/ui/reset 必须排在 /setting/ui 之前
*/
'api/v1/admin/setting/ui/reset' => 'api/AdminSetting/uiReset',
'api/v1/admin/setting/ui' => 'api/AdminSetting/ui',
'api/v1/admin/setting/base' => 'api/AdminSetting/base',
'api/v1/admin/setting/pay' => 'api/AdminSetting/pay',
'api/v1/admin/setting/fee' => 'api/AdminSetting/fee',
'api/v1/admin/setting/areas' => 'api/AdminSetting/areas',
'api/v1/admin/setting/area' => 'api/AdminSetting/saveArea',
'api/v1/admin/upload' => 'api/AdminSetting/upload',
];