一、基础设施
- 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
125 行
6.6 KiB
PHP
可执行文件
125 行
6.6 KiB
PHP
可执行文件
<?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',
|
||
];
|