【万字文档+源码】选座自习室小程序-可用于毕设-课程设计-练手学习-学习资料分享
基于 SpringBoot 选座自习室小程序
一、项目概述
1.1 项目背景
随着考研、考证、自主学习人群持续增多,付费自习室成为热门学习场所。传统自习室大多依靠人工登记座位、线下收费,存在选座不透明、计费繁琐、资金对账困难、预约混乱、用户无法实时查看自习室空位等痛点。
为解决自习室运营管理难题,开发基于 SpringBoot 的付费选座自习室小程序系统。系统采用 SpringBoot 后端 + 移动端小程序前端 + Vue 后台管理系统的架构,分为微信小程序用户端与PC 后台管理端。支持自习室展示、在线选座预约、按时计费、余额充值、学习时长管理、留言反馈、公告资讯发布等完整业务流程,实现自习室数字化智能运营。
1.2 项目目标
小程序端(普通学习者):账号注册登录;浏览自习室列表、查看自习室详情;在线预约座位;余额充值;开始学习、离场自动计费;查看个人学习记录;提交留言反馈;浏览新闻公告资讯;修改个人密码。
PC 后台端(管理员):轮播图管理;自习室类型、自习室基础信息维护;自习室预约记录管理;学习时长与消费账单管理;用户充值订单管理;新闻公告管理;前台用户账号管理;查看用户留言反馈;支持学习时长统计、收入统计。
实现完整业务闭环:自习室上架展示→用户浏览查看→在线预约座位→充值余额→进场开始学习→离场自动按时计费→生成消费账单,帮助自习室商家降低人工成本,规范化收费与座位预约管理。
1.3 技术选型
后端技术栈
核心框架:SpringBoot 2.7.x
持久层框架:MyBatis / MyBatis-Plus
数据库:MySQL 8.0
工具类:Lombok、Hutool
文件存储:自习室图片、用户头像上传存储
权限认证:Token 令牌登录鉴权
项目构建工具:Maven
前端技术栈
1)小程序端:原生小程序 /uni-app
2)后台管理端:Vue2/Vue3 + Element UI / Element Plus
网络请求:Axios
路由:Vue Router
富文本编辑器:自习室详情、公告内容编辑
部署环境
SpringBoot 内置 Tomcat;Vue 后台打包 dist 部署于 Nginx;小程序后端接口部署至云服务器;兼容 Windows、Linux 服务器部署。
1.4 系统角色划分
小程序用户(学习者)
在小程序完成注册登录;浏览自习室、预约座位、充值余额、进场离场计费、查看个人学习账单、留言反馈。后台管理员
登录 PC 管理后台,拥有全部数据管理权限:自习室信息维护、用户管理、充值订单管理、预约管理、学习消费管理、资讯公告管理、留言管理、运营数据统计。
二、系统功能需求分析
2.1 小程序移动端功能
底部导航栏:首页、新闻资讯、自习室信息、我的
注册模块
填写用户账号、密码、确认密码、用户姓名,上传头像,选择性别,填写手机号码,完成账号注册。登录模块
账号密码登录,登录后进入小程序首页。小程序首页
顶部轮播横幅;分区展示自习室入口、新闻资讯列表,快速跳转对应页面。自习室信息页面
支持自习室名称搜索;按自习室类型分类筛选;卡片展示自习室预览图、自习室名称;点击卡片进入自习室详情。自习室详情页面
展示自习室名称、自习室类型、位置、开放时间、每小时单价、总座位数、配套设施、图文详情介绍。支持预约座位操作。新闻资讯页面
展示平台公告、学习相关资讯列表,点击查看资讯全文。我的个人中心页面
功能菜单:充值信息、留言反馈、学习管理、自习室信息管理、修改密码。充值信息:查看个人充值记录;
留言反馈:提交意见反馈;
学习管理:查看本人所有学习记录、消费账单;
修改密码:更新登录密码。
2.2 PC 后台管理系统功能
后台左侧菜单栏清单:
轮播图管理
维护小程序首页顶部轮播图片,新增、修改、删除轮播图。充值信息管理
查看所有用户充值订单;支持按用户账号、充值金额检索;展示充值金额、充值时间、支付状态;支持查看详情、删除记录。自习室信息管理
自习室类型:维护自习室分类(考研、中学生等类型);
自习室信息:自习室基础数据 CRUD;弹窗新增自习室,录入名称、位置、上传图片、开放时间、每小时单价、座位数量、设备设施、富文本详情;
自习室预约:查看全部用户预约记录;支持自习室名称、预约数量搜索;查看预约详情;
取消预约:管理用户取消的预约订单;
更换座位:处理用户更换座位业务。
学习管理
开始学习:用户进场登记;
结束离场:用户离场,系统根据学习时长自动计算总费用、扣减账户余额;
列表展示自习室、单价、进场时间、离场时间、学习时长、总费用、用户余额;支持学习时长统计、收入统计功能。
公告信息管理
后台发布、编辑、删除小程序展示的新闻资讯公告。用户管理
管理小程序注册学习者账号,查询、维护用户基础信息。留言反馈管理
查看用户提交的反馈信息,支持回复与管理。
三、数据库核心表设计
(1) user 用户表(小程序学习者)
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | bigint | 主键自增 |
| username | varchar | 登录账号(唯一) |
| password | varchar | 登录密码 |
| name | varchar | 用户姓名 |
| avatar | varchar | 头像图片地址 |
| gender | varchar | 性别 |
| phone | varchar | 手机号码 |
| balance | decimal | 账户余额 |
| create_time | datetime | 注册时间 |
(2) admin 管理员表
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | bigint | 主键 |
| username | varchar | 管理员账号 |
| password | varchar | 密码 |
| real_name | varchar | 管理员名称 |
(3) study_room_type 自习室类型表
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | bigint | 主键 |
| type_name | varchar | 自习室类型名称(考研 / 中学生等) |
| remark | varchar | 备注 |
(4) study_room 自习室信息表
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | bigint | 主键 |
| room_name | varchar | 自习室名称 |
| type_id | bigint | 自习室类型 ID |
| position | varchar | 自习室位置 |
| picture | varchar | 自习室封面图片 |
| open_time | varchar | 开放时间段 |
| hour_price | decimal | 每小时单价 |
| seat_num | int | 总座位数量 |
| facility | text | 设备设施说明 |
| content | text | 自习室详情富文本 |
(5) room_reservation 自习室预约表
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | bigint | 主键 |
| room_id | bigint | 自习室 ID |
| user_id | bigint | 预约用户 ID |
| reserve_count | int | 预约座位数量 |
| reserve_time | datetime | 预约时间 |
| status | varchar | 预约状态:待入场、学习中、已完成、已取消 |
(6) recharge_record 用户充值记录表
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | bigint | 主键 |
| user_id | bigint | 用户 ID |
| recharge_amount | decimal | 充值金额 |
| recharge_time | datetime | 充值时间 |
| pay_status | varchar | 支付状态:已支付 / 未支付 |
(7) study_record 学习消费记录表
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | bigint | 主键 |
| room_id | bigint | 自习室 ID |
| user_id | bigint | 学习者 ID |
| start_time | datetime | 开始学习(进场时间) |
| end_time | datetime | 结束离场时间 |
| study_duration | int | 学习时长(小时) |
| total_cost | decimal | 本次消费总费用 |
| remain_balance | decimal | 扣费后用户剩余余额 |
(8) news 新闻资讯 / 公告表
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | bigint | 主键 |
| title | varchar | 资讯标题 |
| content | text | 资讯正文 |
| publish_time | datetime | 发布时间 |
(9) swiper 轮播图表
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | bigint | 主键 |
| img_url | varchar | 轮播图片地址 |
| link_url | varchar | 跳转链接 |
| sort | int | 排序序号 |
(10) feedback 留言反馈表
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | bigint | 主键 |
| user_id | bigint | 反馈用户 ID |
| content | text | 反馈内容 |
| reply | text | 管理员回复内容 |
| create_time | datetime | 提交时间 |
四、系统业务流程设计
4.1 用户小程序业务流程
用户打开小程序,完成账号注册,填写基础信息。
使用账号密码登录小程序首页,浏览轮播图、自习室预览、新闻资讯。
进入自习室信息页面,通过分类、名称检索自习室;点击自习室卡片查看详细价格、位置、设施信息。
用户余额不足时,进入【我的】- 充值信息完成充值。
用户选择自习室提交座位预约;到店后开始学习,离场时结束计费。
系统根据学习时长 × 每小时单价自动计算费用,从账户余额扣减,生成学习消费记录。
用户可在学习管理中查看所有历史学习账单;可提交留言反馈向商家提意见;支持自主修改登录密码。
4.2 管理员后台业务流程
管理员登录 PC 后台管理系统。
基础数据维护:上传首页轮播图、新增自习室类型、录入自习室信息、发布新闻公告。
用户管理:查看所有小程序注册学习者账号。
订单管理:
查看所有充值订单,核对支付状态;
管理自习室预约记录,处理取消预约、更换座位业务;
查看全部学习消费记录,导出学习时长统计、收入统计报表。
运维管理:查看用户留言反馈,进行回复;维护全部自习室基础数据。
五、页面原型说明
5.1 小程序移动端页面
小程序首页
顶部轮播横幅;分区展示自习室信息入口、新闻资讯列表;底部导航栏【首页、新闻资讯、自习室信息、我的】。自习室信息列表页
顶部搜索框;自习室类型分类标签;卡片展示自习室图片与名称。自习室详情页面
展示自习室图片、名称、类型、位置、开放时间、每小时单价、座位总数、配套设施、图文详情;提供预约操作入口。注册页面
表单:账号、密码、确认密码、姓名、头像上传、性别、手机号。我的个人中心页面
展示用户基础信息;功能菜单:充值信息、留言反馈、学习管理、自习室信息管理、修改密码。
5.2 PC 后台管理页面
后台登录页面
标题:SpringBoot 付费选座自习室小程序登录;账号密码输入框,登录进入管理主页。充值信息管理页面
列表展示用户充值订单,支持账号、金额搜索;字段:用户账号、姓名、充值金额、充值时间、支付状态;操作:详情、删除。自习室信息 - 新增弹窗页面
表单录入自习室名称、位置、上传图片、开放时间、每小时单价、座位数、设备设施;富文本编辑器填写自习室详情。自习室预约管理页面
列表展示所有预约数据:自习室名称、位置、图片、开放时间、单价、预约数量、预约人信息;支持搜索、查看详情。学习管理(结束离场)页面
展示自习室、单价、进场时间、离场时间、学习时长、总消费、用户余额;支持学习时长统计、收入统计功能。
六、核心接口设计
6.1 用户注册登录接口
POST /api/user/register 小程序用户注册 POST /api/user/login 小程序用户登录 POST /api/admin/login 管理员后台登录 GET /api/user/info 获取小程序登录用户信息 PUT /api/user/password 用户修改密码6.2 自习室相关接口
GET /api/room/type/list 获取自习室类型列表 GET /api/room/list 小程序获取自习室列表(搜索、分类筛选) GET /api/room/{id} 获取自习室详情 POST /admin/room/save 后台新增自习室 PUT /admin/room/update 修改自习室信息 DELETE /admin/room/{id} 删除自习室6.3 预约、学习计费接口
POST /api/reserve/add 用户提交自习室预约 GET /api/reserve/list 后台查询全部预约记录 PUT /api/reserve/cancel 取消预约 POST /api/study/start 用户开始学习(进场) POST /api/study/end 用户结束离场,自动计费扣费 GET /api/study/list 获取个人学习消费记录6.4 充值相关接口
POST /api/recharge/add 用户发起充值 GET /api/recharge/my 用户查看个人充值记录 GET /admin/recharge/list 后台查询全部充值订单6.5 资讯、轮播、留言接口
GET /api/news/list 小程序获取新闻资讯 POST /admin/news/save 后台发布公告资讯 GET /api/swiper/list 小程序获取首页轮播图 POST /api/feedback/add 用户提交留言反馈 GET /admin/feedback/list 后台查看所有反馈七、系统部署方案
数据库部署
安装 MySQL8.0,执行项目 SQL 初始化脚本,创建全部数据表,导入基础测试数据。后端部署
SpringBoot 项目打包 Jar 包,使用java -jar xxx.jar命令启动;yml 配置数据库连接地址、文件上传存储路径。后台 Vue 部署
执行npm run build打包 dist 静态资源,部署至 Nginx;配置反向代理转发后端接口,解决跨域问题。小程序部署
小程序前端配置后端服务接口域名,微信开发者工具上传代码提交审核发布。文件存储
自习室图片、用户头像默认本地磁盘存储,可扩展阿里云 OSS 对象存储。
八、系统测试要点
功能测试
用户注册登录、自习室浏览、预约流程完整;充值、进场离场自动计费、余额扣减正常;图片上传、搜索、分页、富文本详情展示正常;留言反馈、公告浏览功能可用。业务逻辑测试
离场后系统自动根据时长计算费用;余额不足无法完成消费;同一个座位同一时间段不可重复预约;所有后台增删改查操作生效。权限测试
小程序普通用户无法访问后台管理地址;未登录用户只能浏览自习室,无法预约、充值、发起学习。兼容性测试
小程序兼容安卓、iOS 移动端;后台管理系统兼容 Chrome、Edge 主流浏览器。
九、系统扩展方向
增加座位平面图可视化选座,直观展示空闲 / 已占用座位
接入微信真实支付接口,完成线上充值支付
增加超时未入场自动取消预约机制
增加优惠券、会员套餐、月卡 / 次卡功能
增加消息推送:预约提醒、余额不足提醒、即将超时通知
完善后台数据可视化看板:每日营收、自习室上座率统计图表
增加黑名单功能,违规用户限制预约座位
增加签到打卡、学习任务打卡功能
十、项目总结
基于 SpringBoot 付费选座自习室小程序采用前后端分离架构,分为小程序学习者端与PC 后台管理端。系统包含普通学习者、管理员两类角色,覆盖自习室展示、在线预约选座、按时计费、余额充值、学习账单管理、留言反馈、新闻公告、运营数据统计等自习室核心业务。
系统将传统线下自习室人工管理模式转为线上数字化管理,学习者可以随时随地查看自习室、预约座位、自主结算费用;管理员在后台统一管控自习室资源、订单、用户数据,自动完成计费对账,大幅降低商家人工管理成本。本系统适用于中小型付费自习室、考研自习室运营场景,架构轻量化、易于部署维护,具备良好实用价值与商业拓展空间。
十一、项目资料
👇🏻 精彩专栏推荐订阅👇🏻 在下方专栏👇🏻不然下次找不到哟
《Java精品推荐项目》
《springboot+vue项目100套》
《ssm项目100套》
《微信小程序合集》