本小程序为用户提供丰富的展览浏览功能,支持展览收藏、点赞、分享与预约参观和大屏互动。用户可通过微信登录和手机号验证快速登录,在线购票并支持二维码核销,方便高效地完成整个观展流程。
✅ 一、功能模块划分
1. 用户模块
- 微信登录:用户通过微信账号快速登录小程序。
- 手机号验证:用户在小程序中输入手机号进行验证,确保用户身份真实。
- 个人信息管理:用户可以查看和修改个人信息,如昵称、头像等。
2. 展览模块
- 展览列表:展示所有可浏览的展览,支持筛选、搜索等功能。
- 展览详情:查看展览的详细信息,包括图片、描述、地点等。
- 收藏功能:用户可以收藏喜欢的展览,方便后续查看。
- 点赞功能:用户可以对喜欢的展览进行点赞,支持点赞数统计。
- 评论功能:用户可以对展览进行评论,支持评论回复。
- 分享功能:用户可以分享展览给好友,支持分享到微信、微博等平台。
3. 预约模块
- 预约参观:用户可以选择喜欢的展览进行预约参观,支持预约时间、人数等信息。
- 取消预约:用户可以取消已预约的参观。
- 预约记录:用户可以查看自己的预约记录,包括预约状态、时间等。
4. 票务模块
- 在线购买:用户可以在线购买门票,支持微信支付。
- 订单管理:用户可以查看和管理自己的订单,包括订单状态、支付信息等。
- 二维码核销:用户可以通过扫描二维码进行门票核销,确保门票的有效性。
5. 大屏互动模块
- 互动功能:用户可以在小程序中扫码或拍照和大屏进行互动。
- 活动任务:大屏上展示互动任务,如完成任务、分享等。
- 互动记录:用户可以查看自己的互动记录,包括互动时间、任务完成情况等。
- 展览素材:大屏启动的时候,获取配置的展览素材,如图片、文字等。
6. 后台管理模块
- 后台管理:管理员可以登录后台管理系统,对小程序进行管理,如添加、修改展览信息等。
- 数据统计:管理员可以查看用户数据,如用户量、预约量等。
7. 其他功能
- 个人中心:用户可以在个人中心查看个人信息、订单记录等。
- 关于我们:小程序提供关于我们的信息,包括联系方式、服务条款等。
- 帮助中心:提供常见问题的解答和用户反馈功能。
模块 |
描述 |
用户模块 |
微信登录、手机号绑定、验证码、用户信息 |
展览管理模块 |
展览列表、展览详情、收藏、点赞、分享记录 |
预约模块 |
展览预约、取消预约、预约记录查询 |
票务模块 |
门票购买、订单支付、订单状态、票务核销 |
互动模块 |
大屏互动、活动任务、素材获取 |
通用模块 |
上传图片/二维码、配置项获取等 |
后台管理接口 |
管理员登录、展览/订单/用户管理 |
✅ 二、接口设计
1. 用户模块接口
接口名称 |
方法 |
路径 |
描述 |
微信登录 |
POST |
/api/user/login |
使用微信 code 获取 session,返回 token |
获取手机号 |
POST |
/api/user/phone |
解密获取手机号,绑定用户 |
获取验证码 |
POST |
/api/user/send_code |
发送短信验证码(预约前验证) |
验证验证码 |
POST |
/api/user/verify_code |
校验验证码 |
获取用户信息 |
GET |
/api/user/info |
获取当前用户信息 |
更新用户信息 |
POST |
/api/user/update |
更新昵称、头像等信息 |
2. 展览模块接口
接口名称 |
方法 |
路径 |
描述 |
展览列表 |
GET |
/api/exhibitions |
支持分页、筛选、关键词搜索 |
展览详情 |
GET |
/api/exhibitions/:id |
获取展览详情 |
收藏展览 |
POST |
/api/exhibitions/:id/favorite |
收藏/取消收藏展览 |
点赞展览 |
POST |
/api/exhibitions/:id/like |
点赞/取消点赞 |
分享记录 |
POST |
/api/exhibitions/:id/share |
记录用户分享行为 |
评论列表 |
GET |
/api/exhibitions/:id/comments |
查看评论列表 |
提交评论 |
POST |
/api/exhibitions/:id/comments |
提交评论 |
用户收藏列表 |
GET |
/api/user/favorites |
查看收藏的展览列表 |
3. 预约模块接口
接口名称 |
方法 |
路径 |
描述 |
提交预约 |
POST |
/api/reservations |
提交预约请求(含手机号验证) |
取消预约 |
DELETE |
/api/reservations/:id |
取消预约 |
我的预约记录 |
GET |
/api/reservations/my |
查看用户的预约记录 |
预约状态查询 |
GET |
/api/reservations/:id/status |
查询预约状态 |
4. 票务模块接口
接口名称 |
方法 |
路径 |
描述 |
创建订单 |
POST |
/api/orders |
创建门票订单(生成预支付信息) |
支付成功回调 |
POST |
/api/orders/pay_callback |
支付成功回调处理 |
查询订单 |
GET |
/api/orders/:id |
获取订单详情 |
我的订单列表 |
GET |
/api/orders/my |
获取用户所有订单 |
核销门票 |
POST |
/api/tickets/:id/verify |
扫码核销门票(需权限) |
门票二维码 |
GET |
/api/tickets/:id/qrcode |
获取用于核销的二维码 |
5. 通用模块接口
接口名称 |
方法 |
路径 |
描述 |
上传图片 |
POST |
/api/upload |
上传图片(展览封面等) |
获取配置项 |
GET |
/api/configs |
获取全局配置,如客服电话等 |
✅ 三、数据库模型简要设计(核心表)
表名 |
说明 |
users |
用户表(openid、手机号、头像等) |
exhibitions |
展览信息表 |
user_favorites |
收藏记录表(user_id + exhibition_id) |
user_likes |
点赞记录表 |
user_shares |
分享记录表 |
reservations |
展览预约记录 |
orders |
门票订单表(含支付状态) |
tickets |
门票详情(含二维码、核销状态) |
admins |
管理后台用户(用于核销) |
✅ 四、技术点说明
✅ 五、接口风格建议
- 所有接口统一以
/api/
开头;
- 统一返回格式:
1
2
3
4
5
|
{
"code": 0,
"message": "success",
"data": {}
}
|
- 异常处理建议使用中间件统一返回
code != 0
的错误信息。