本文是后端管理系统和 App 接入前的接口草案。当前后端使用 RuoYi 默认响应格式,前端可在 service 层转换为页面使用的 camelCase。
{
"code": 200,
"msg": "操作成功",
"data": {}
}
分页接口通常返回 RuoYi 表格分页结构:
{
"code": 200,
"msg": "查询成功",
"rows": [],
"total": 100
}
amount_cent: 36600¥366.00longitude、latitude。"103.615097,30.995286",后续接接口时应转换为数值字段。{
"id": "dujiangyan",
"name": "都江堰",
"grade": "5A",
"city": "四川 成都",
"address": "都江堰",
"longitude": 103.616236,
"latitude": 31.000747,
"map_zoom": 16,
"enabled": true,
"sort": 10
}
{
"id": "dujiangyan-south",
"scenic_id": "dujiangyan",
"name": "都江堰南门",
"longitude": 103.615097,
"latitude": 30.995286,
"map_zoom": 17,
"is_primary": true,
"guide_count": 8,
"enabled": true,
"sort": 10
}
{
"id": "group_quick",
"name": "拼团 · 快讲",
"service_type": "group",
"duration_minutes": 30,
"min_people": 20,
"max_people": 25,
"price_cent": 3600,
"unit": "person",
"has_counter": true,
"enabled": true,
"sort": 10
}
服务类型:
group:拼团private:包团计价单位:
person:按人group:按团{
"id": "guide_001",
"name": "赵四",
"phone": "13800000000",
"avatar_url": "",
"license_no": "D-000001",
"rating": 5,
"status": "online",
"audit_status": "approved",
"service_scenic_ids": ["dujiangyan"],
"longitude": 103.6151,
"latitude": 30.9952,
"location_updated_at": "2026-06-13 10:00:00"
}
导游状态:
offlineonlinebusydisabled审核状态:
pendingapprovedrejected{
"id": "MJ20260612002",
"user_id": "user_001",
"guide_id": "guide_001",
"scenic_id": "dujiangyan",
"meeting_point_id": "dujiangyan-south",
"service_id": "group_quick",
"status": "pending_guide",
"family_group": {
"number": 1,
"color": "#278BFF"
},
"quantity": 4,
"unit_price_cent": 3600,
"discount_cent": 1800,
"payable_amount_cent": 36600,
"paid_amount_cent": 36600,
"payment_status": "paid",
"refund_status": "none",
"created_at": "2026-06-04 11:31:02",
"paid_at": "2026-06-04 11:31:10",
"accepted_at": "2026-06-04 11:32:00",
"started_at": null,
"ended_at": null,
"canceled_at": null
}
订单状态:
pending_paywaiting_acceptpending_guideservingpending_reviewcompletedcanceled支付状态:
unpaidpaidclosed退款状态:
nonerefundingrefundedfailed{
"id": "review_001",
"order_id": "MJ20260612002",
"guide_id": "guide_001",
"user_id": "user_001",
"rating": 5,
"content": "讲解很清楚",
"images": [],
"created_at": "2026-06-04 12:31:02"
}
| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /api/auth/wechat-phone-login |
微信小程序授权手机号登录,手机号作为游客唯一识别 |
| GET | /api/user/profile |
获取个人资料 |
| PUT | /api/user/profile |
修改昵称、头像等 |
| POST | /api/user/logout |
退出登录 |
| POST | /api/user/cancel-account |
注销账号 |
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/cities |
可用城市列表,支持 keyword 搜索 |
| GET | /api/scenics |
景区列表,支持关键词和定位排序 |
| GET | /api/scenics/{id} |
景区详情 |
| GET | /api/scenics/{id}/meeting-points |
景区汇合点列表 |
| GET | /api/scenics/nearest |
根据用户经纬度返回附近景区 |
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/scenics/{id}/services |
景区可售服务套餐 |
| POST | /api/orders/quote |
订单试算,返回优惠和应付金额 |
试算请求:
{
"scenic_id": "dujiangyan",
"service_id": "group_quick",
"meeting_point_id": "dujiangyan-south",
"quantity": 4
}
| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /api/orders |
创建订单 |
| GET | /api/orders |
我的订单列表 |
| GET | /api/orders/current |
首页进行中订单提示 |
| GET | /api/orders/{id} |
订单详情 |
| POST | /api/orders/{id}/pay |
创建微信支付参数 |
| POST | /api/orders/{id}/cancel |
用户取消订单 |
| GET | /api/orders/{id}/accept-status |
等待接单页轮询订单状态 |
| POST | /api/orders/{id}/review |
提交评价 |
| GET | /api/orders/{id}/review |
查看评价 |
微信支付参数响应建议直接返回 uni.requestPayment 所需字段:
{
"timeStamp": "1718180000",
"nonceStr": "abc",
"package": "prepay_id=xxx",
"signType": "RSA",
"paySign": "xxx"
}
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/agreements |
协议列表 |
| GET | /api/agreements/{type} |
协议详情 |
| POST | /api/feedback |
问题反馈 |
| POST | /api/invoices/apply |
申请发票 |
| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /api/guide/auth/login |
导游登录 |
| GET | /api/guide/profile |
导游资料 |
| PUT | /api/guide/status |
在线 / 离线 / 忙碌 |
| POST | /api/guide/location |
上报位置 |
| GET | /api/guide/orders/pending |
待接订单 |
| POST | /api/guide/orders/{id}/accept |
接单 |
| POST | /api/guide/orders/{id}/reject |
拒单 |
| GET | /api/guide/orders |
导游订单列表 |
| POST | /api/guide/orders/{id}/start |
开始讲解 |
| POST | /api/guide/orders/{id}/finish |
结束讲解 |
| GET | /api/guide/earnings |
收益明细 |
管理后台可按资源 REST 风格拆分:
/admin/scenics/admin/meeting-points/admin/services/admin/guides/admin/orders/admin/reviews/admin/refunds/admin/feedback/admin/agreements/admin/users/admin/roles/admin/logs后台订单详情建议包含完整时间线:
{
"timeline": [
{ "status": "pending_pay", "text": "订单创建", "time": "2026-06-04 11:31:02" },
{ "status": "paid", "text": "支付成功", "time": "2026-06-04 11:31:10" },
{ "status": "pending_guide", "text": "导游接单", "time": "2026-06-04 11:32:00" }
]
}
services/ 目录。services/guide.js 只有 getGuideServices() mock,可扩展为真实服务接口。constants/scenics.js、constants/meeting-points.js。services/order.js,再逐页替换。LOGIN_STORAGE_KEY = mingdao_login_state。/pages/feedback/index,当前只做前端提交成功态。/pages/customer-service/index,当前为静态联系方式展示。| 页面 | 推荐接口 |
|---|---|
/pages/home/index |
/api/scenics /api/scenics/{id}/meeting-points /api/scenics/{id}/services /api/orders/current /api/orders/quote /api/orders /api/orders/{id}/pay |
/pages/scenic-select/index |
/api/cities /api/scenics /api/scenics/nearest |
/pages/login/index |
/api/auth/wechat-phone-login |
/pages/mine/index |
/api/user/profile /api/orders |
/pages/orders/index |
/api/orders |
/pages/order-pending-pay/index |
/api/orders/{id} /api/orders/{id}/pay /api/orders/{id}/cancel |
/pages/order-waiting/index |
/api/orders/{id}/accept-status |
/pages/order-pending-guide/index |
/api/orders/{id} |
/pages/order-serving/index |
/api/orders/{id} |
/pages/order-pending-review/index |
/api/orders/{id} /api/orders/{id}/review |
/pages/order-completed/index |
/api/orders/{id} /api/orders/{id}/review |
/pages/order-review-detail/index |
/api/orders/{id}/review |
/pages/agreement-list/index |
/api/agreements |
/pages/agreement-detail/index |
/api/agreements/{type} |
/pages/feedback/index |
/api/feedback |
/pages/customer-service/index |
可静态配置,也可做 /api/settings/contact |
/pages/settings/index |
/api/user/logout /api/user/cancel-account |
pending_pay
├─ 支付成功 -> waiting_accept
├─ 支付超时 -> canceled
└─ 用户取消 -> canceled
waiting_accept
├─ 导游接单 -> pending_guide
├─ 等待超时 -> canceled + refunding
└─ 用户取消 -> canceled + refunding
pending_guide
├─ 导游开始讲解 -> serving
└─ 用户/后台取消 -> canceled + refunding
serving
└─ 导游结束讲解 -> pending_review
pending_review
├─ 用户提交评价 -> completed
└─ 超过评价期 -> completed
这是当前前端已经存在的页面跳转逻辑,后端接入时建议保持兼容:
首页选择服务
-> 选择汇合点
-> 确认订单
-> 确认支付
-> /pages/order-waiting/index
-> 当前前端 5 秒后自动跳 /pages/order-pending-guide/index
订单列表
pendingPay -> /pages/order-pending-pay/index
pendingGuide -> /pages/order-pending-guide/index
serving -> /pages/order-serving/index
pendingReview -> /pages/order-pending-review/index
completed -> /pages/order-completed/index
canceled -> /pages/order-canceled/index
评价提交流程
/pages/order-pending-review/index
-> 提交评价
-> 正式接入后建议返回 /pages/order-completed/index
取消流程
待付款 / 待讲解 / 等待接单
-> 底部取消弹窗确认
-> /pages/order-canceled/index
| 权限 | 说明 |
|---|---|
scenic:* |
景区和汇合点管理 |
service:* |
套餐和价格管理 |
guide:* |
导游审核、启停、排班 |
order:read |
查看订单 |
order:operate |
取消、改派、备注 |
refund:* |
退款审核和处理 |
review:* |
评价管理 |
agreement:* |
协议内容管理 |
system:* |
用户、角色、日志、系统配置 |