背景调研
博物馆是连接过去、现在与未来的桥梁,是文化传承的重要载体。然而,传统博物馆服务模式存在诸多痛点:
- 导览体验差:人工讲解员资源有限,电子导览器租赁手续繁琐且卫生问题频发。
- 信息获取难:展品介绍仅靠展板,内容有限且无法多媒体展示,游客难以深入了解文物背后的故事。
- 管理效率低:特展预约依赖线下或电话,客流高峰难以调控,数据统计滞后。
- 文创转化弱:缺乏线上展示与销售渠道,文创产品推广力度不足。
微信小程序凭借其“无需下载、即用即走”的特性,成为连接游客与博物馆的最佳轻量级入口。
研究意义
- 提升游客体验:提供扫码听讲解、AR互动(预留)、个性化路线推荐,让文物“活”起来。
- 优化运营管理:实现分时段预约、客流实时监控、数据可视化分析,助力科学决策。
- 促进文化传播:打破时空限制,通过虚拟展厅和线上活动,扩大博物馆的社会影响力。
- 推动文创发展:搭建线上文创商城,拓宽收入渠道,反哺文物保护与研究。
功能需求
非功能需求
高并发:支持节假日高峰期千人同时访问和预约。 响应速度:语音加载延迟<1秒,页面切换流畅。 安全性:用户隐私数据加密,防止SQL注入和XSS攻击。
系统架构
系统采用B/S与C/S混合架构: 表现层:微信小程序(游客端)、Vue+ElementUI(管理后台,可选)。 业务层:SpringBoot + MyBatis-Plus。 数据层:MySQL 8.0 + Redis(缓存热点展品数据)。 资源层:阿里云OSS/腾讯云COS存储多媒体资源。
数据库设计
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | BIGINT | 主键 |
| name | VARCHAR | 展品名称 |
| category | VARCHAR | 分类(青铜/陶瓷/书画) |
| description | TEXT | 详细介绍 |
| audio_url | VARCHAR | 语音讲解链接 |
| video_url | VARCHAR | 视频链接 |
| qr_code | VARCHAR | 专属二维码内容 |
| location | VARCHAR | 展厅位置 |
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | BIGINT | 主键 |
| user_id | BIGINT | 用户ID |
| exhibit_id | BIGINT | 关联展览ID(若为特展) |
| visit_date | DATE | 参观日期 |
| time_slot | VARCHAR | 时间段(09:00-11:00) |
| status | TINYINT | 状态(0:待核销 1:已完成 2:已取消) |
| code | VARCHAR | 核销码 |
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | BIGINT | 主键 |
| name | VARCHAR | 商品名称 |
| price | DECIMAL | 价格 |
| stock | INT | 库存 |
| detail_img | VARCHAR | 详情图 |
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | BIGINT | 主键 |
| openid | VARCHAR | 微信OpenID |
| phone | VARCHAR | 手机号 |
| nickname | VARCHAR | 昵称 |
系统详细设计与实现
扫码识物:调用wx.scanCode获取展品二维码中的ID,请求后端接口获取展品详情。 语音播放:使用InnerAudioContext对象,实现播放、暂停、进度条拖动、自动播放下一首(路线模式下)等功能。后台管理可上传MP3文件,自动生成URL。 实现效果:游客走到展品前,扫一扫即可听到专业讲解,仿佛随身携带私人导游。
UI设计
管理系统设计