摘要
针对高校自习室座位资源紧张、管理效率低下的问题,本文设计并实现了一套基于前后端分离架构的高校自习室管理系统。系统采用Spring Boot + MyBatis-Plus + MySQL作为后端服务(端口8888),后台管理端使用Vue3 + Element Plus(端口3007),学生端基于uni-app开发微信小程序。系统通过JWT实现认证,包含管理员和学生两个角色,设计了楼栋、自习室、座位、预约、违规等8张数据表,并建立了完整的业务状态流转规则。
本文的创造性成果主要体现在:一是提出了面向时段的可视化座位预约机制,支持未来7天按小时时段选座,并通过Flex网格实时展示座位占用状态;二是实现了自动违规判定与禁预约处罚逻辑,通过定时任务扫描超时未签到/签退行为,累计3次违规即触发7天禁预约期,有效提升了座位周转利用率。
系统实现了后台管理端的仪表盘、楼栋管理、自习室管理、座位维护、预约记录、学生/违规管理、公告管理及数据统计等核心功能,学生端支持注册登录、自习室浏览、座位预约、签到签退、违规查询及公告查看。经测试,系统运行稳定,功能完整,显著优化了自习室资源配置,提高了管理效率,具有良好的实用价值和推广意义。
关键词 :自习室管理;座位预约;前后端分离;违规管理;微信小程序
目 录
[目 录](#目 录)
[第1章 绪论](#第1章 绪论)
[1.1 研究背景](#1.1 研究背景)
[1.2 研究意义](#1.2 研究意义)
[1.3 国内外研究现状](#1.3 国内外研究现状)
[1.3.1 国内研究现状](#1.3.1 国内研究现状)
[1.3.2 国外研究现状](#1.3.2 国外研究现状)
[1.4 小结](#1.4 小结)
[第2章 论文基本规范](#第2章 论文基本规范)
[2.1 技术栈概述](#2.1 技术栈概述)
[2.2 技术详细介绍](#2.2 技术详细介绍)
[2.2.1 Vue 3](#2.2.1 Vue 3)
[2.2.2 Element Plus](#2.2.2 Element Plus)
[2.2.3 uni-app](#2.2.3 uni-app)
[2.2.4 uni-ui](#2.2.4 uni-ui)
[2.2.5 Spring Boot](#2.2.5 Spring Boot)
[2.2.6 MyBatis-Plus](#2.2.6 MyBatis-Plus)
[2.2.7 MySQL](#2.2.7 MySQL)
[2.2.8 JWT(JSON Web Token)](#2.2.8 JWT(JSON Web Token))
[第3章 系统分析](#第3章 系统分析)
[3.1 可行性分析](#3.1 可行性分析)
[3.1.1 技术可行性](#3.1.1 技术可行性)
[3.1.2 经济可行性](#3.1.2 经济可行性)
[3.1.3 操作可行性](#3.1.3 操作可行性)
[3.2 功能需求分析](#3.2 功能需求分析)
[3.2.1 管理员需求分析](#3.2.1 管理员需求分析)
[3.2.2 学生需求分析](#3.2.2 学生需求分析)
[3.2.2 用例图](#3.2.2 用例图)
[第4章 系统设计](#第4章 系统设计)
[4.1 系统架构设计](#4.1 系统架构设计)
[4.2 系统功能模块设计](#4.2 系统功能模块设计)
[4.3 数据库设计](#4.3 数据库设计)
[4.3.1 概念结构设计](#4.3.1 概念结构设计)
[4.3.2 物理结构设计](#4.3.2 物理结构设计)
[第5章 系统实现](#第5章 系统实现)
[5.1 开发环境与工具](#5.1 开发环境与工具)
[5.2 系统展示](#5.2 系统展示)
[5.2.1 后台管理端界面展示](#5.2.1 后台管理端界面展示)
[5.2.2 小程序端界面展示](#5.2.2 小程序端界面展示)
[第6章 系统测试](#第6章 系统测试)
[6.1 测试目的方法](#6.1 测试目的方法)
[6.2 功能测试用例](#6.2 功能测试用例)
[6.3 测试结果分析](#6.3 测试结果分析)
[第七章 总结与展望](#第七章 总结与展望)
[7.1 已完成工作](#7.1 已完成工作)
[7.2 存在的不足](#7.2 存在的不足)
[7.3 未来展望](#7.3 未来展望)
[参 考 文 献](#参 考 文 献)
[致 谢](#致 谢)
研究背景
随着高等教育的普及和招生规模的持续扩大,高校学生对于学习空间的需求日益增长。特别是各类资格考试、研究生入学考试以及日常课程复习高峰期的到来,使得高校图书馆、教学楼等公共学习场所的座位资源变得异常紧张1。传统的自习室管理方式,如人工登记、占座、现场排队等,已无法满足当前学生高效、便捷、公平地获取学习资源的需求2。管理效率低下、座位资源浪费、排队现象普遍等问题日益凸显,不仅影响了学生的学习体验,也增加了学校管理的难度。
与此同时,移动互联网技术、物联网技术以及软件工程思想的飞速发展为解决这些问题提供了新的契机。微信小程序因其轻量、便捷、无需下载安装的特性,已成为校园服务的重要入口3。而前后端分离的开发模式、成熟的快速开发框架(如 Vue.js、Spring Boot)以及可靠的认证机制(如 JWT),为开发一套功能完善、易于维护的校园管理系统提供了坚实的技术基础4。
在此背景下,开发一套"高校自习室管理系统"显得尤为迫切。该系统旨在通过信息化手段,整合高校教学楼、图书馆等楼栋内的自习室资源,实现座位预约、签到签退、智能管理等功能,从而优化资源配置、提高管理效率、规范学生行为,最终为师生创造一个更加公平、有序、高效的学习环境。本系统的开发正是源于这一现实需求,旨在利用现代Web和移动开发技术,解决高校自习室管理中的痛点。
1.2 研究意义
本系统的开发兼具理论意义与实际应用价值。
理论意义方面,本项目是对管理信息系统(MIS)在高校特定应用场景(自习室管理)的深入实践与探索。通过采用前后端分离架构(Vue3 + Spring Boot)、引入JWT认证、设计基于状态流转的业务逻辑(如单一预约的生命周期管理)以及数据权限隔离(管理员与学生的数据隔离)等,为高校校园信息化建设提供了新的架构思路和技术参考。特别是针对微服务架构下的小型、特定业务系统,本项目的实践可以丰富相关理论在资源调度、权限管理、并发控制等方面的应用研究。
实际应用价值方面,本系统直接回应了高校自习室管理面临的现实挑战。首先,为学生提供了便捷的预约体验,学生可通过微信小程序实时查看座位状态、预约未来7天的学习时段,极大地节省了寻找座位的时间成本。其次,系统内置了严格的签到签退与违规处罚机制(如超时未签到记违规、累计3次禁预约7天),有效遏制了占座行为,提高了座位利用率5。最后,为管理人员提供了全面的后台管理工具,包括楼栋、自习室、座位的CRUD管理,预约记录的查询与统计,以及智能化的数据统计图表,辅助管理者进行决策6。通过本系统的应用,能够显著提升高校自习室的管理效率和服务水平,营造公平、高效的学习氛围。
功能需求分析
本系统包含"管理员"和"学生"两个角色,他们的功能需求和系统用例各不相同。以下按角色划分,详细描述各自的用例情况。
3.2.1 管理员需求分析
管理员是系统的核心管理者,拥有全局数据的管理权限,负责维护系统基础数据、监控预约情况、管理用户并进行分析决策。其用例如下所示:
表3-1 管理员用例表
|----|--------|-----|----------|----------------------------------------------|
| 序号 | 用例名称 | 参与者 | 前置条件 | 用例描述 |
| 1 | 登录系统 | 管理员 | 无 | 管理员输入预置账号(默认 admin/123456)和密码进行登录,进入后台管理系统首页 |
| 2 | 查看仪表盘 | 管理员 | 管理员已成功登录 | 登录后系统默认展示仪表盘概览,以图表形式显示自习室使用情况、预约统计等关键数据指标 |
| 3 | 管理楼栋 | 管理员 | 管理员已成功登录 | 管理学校楼栋信息,支持新增、查询、修改和删除楼栋操作 |
| 4 | 管理自习室 | 管理员 | 管理员已成功登录 | 对指定楼栋下的自习室进行新增、查询、修改、删除信息操作 |
| 5 | 管理座位 | 管理员 | 管理员已成功登录 | 查看自习室座位列表,可将座位状态设置为正常或维护中,维护座位基础状态 |
| 6 | 管理预约记录 | 管理员 | 管理员已成功登录 | 可按学号、自习室、预约日期等条件筛选查询学生预约记录,查看预约详细状态 |
| 7 | 管理学生 | 管理员 | 管理员已成功登录 | 查看所有注册学生信息列表,可对学生账户进行启用、禁用状态操作 |
| 8 | 查看违规记录 | 管理员 | 管理员已成功登录 | 查看学生所有违规记录,包含违规类型、违规时间、关联预约等相关信息 |
| 9 | 管理公告 | 管理员 | 管理员已成功登录 | 面向全体学生进行系统公告的发布、编辑与删除操作 |
| 10 | 查看数据统计 | 管理员 | 管理员已成功登录 | 查看自习室使用率、高峰时段、学生预约趋势等统计图表数据,为管理决策提供依据 |
3.2.2 学生需求分析
学生是系统的核心用户,通过微信小程序进行注册、登录,并完成座位预约、签到、签退等自习室使用全流程操作。其用例包括:
表3-2 学生用例表
|----|---------|-----|-------------|-----------------------------------------------|
| 序号 | 用例名称 | 参与者 | 前置条件 | 用例描述 |
| 1 | 注册 | 学生 | 无 | 学生输入学号、密码、姓名完成账号注册,注册成功后可凭账号密码登录 |
| 2 | 登录 | 学生 | 已完成账号注册 | 已注册学生使用学号和密码登录微信小程序,进入首页 |
| 3 | 浏览与查询座位 | 学生 | 学生已登录小程序 | 按楼栋筛选自习室,选择近 7 天日期及时段,查看可视化座位图,区分可选、已预约、维护中座位 |
| 4 | 预约座位 | 学生 | 学生已登录小程序 | 选择空闲座位提交预约,系统校验账户状态、预约时段限制及违规禁约状态,校验通过生成预约记录 |
| 5 | 查看我的预约 | 学生 | 学生已登录小程序 | 查询个人全部预约记录,查看预约状态并可进入预约详情页面 |
| 6 | 签到 | 学生 | 存在有效未签到预约记录 | 预约开始后 15 分钟内,在我的预约中点击签到,签到成功更新预约状态 |
| 7 | 取消预约 | 学生 | 存在已预约未开始的记录 | 预约开始前可主动取消预约,取消后预约状态变更为已取消 |
| 8 | 签退 | 学生 | 处于已签到预约时段内 | 预约时段结束前点击签退,释放座位并更新预约状态为已签退 |
| 9 | 查看违规记录 | 学生 | 学生已登录小程序 | 在个人中心查看自身违规记录、违规原因、时间及处罚状态,确认是否处于禁预约期 |
| 10 | 查看公告 | 学生 | 学生已登录小程序 | 在公告页面查看管理员发布的系统公告、管理规则及临时通知 |
| 11 | 管理个人信息 | 学生 | 学生已登录小程序 | 在个人中心查看学号、姓名等个人基础信息 |
3.2.2 用例图
管理员用例图如下所示。

学生用例图如下所示。

系统功能模块设计
本系统可重新划分为以下八个核心功能模块:
1.用户注册与认证模块:贯穿两个终端。该模块处理用户的身份识别和权限分配。在后台端,管理员账号由系统预置,直接登录。在小程序端,学生用户通过此模块进行注册(填写学号、密码、姓名)和后续的登录(使用学号和密码)。系统通过统一的后端服务,使用JWT技术签发令牌,在每次请求时校验用户身份和角色,从而实现管理员和学生在不同终端的数据权限隔离。
2..楼栋管理模块:对应后台管理端"楼栋管理"功能。该模块负责管理校园内各楼栋的基础信息。管理者可以对楼栋(如"教学楼A"、"图书馆B")进行增、删、改、查操作,为自习室的归属提供空间层级支持。
3.座位管理模块:对应后台管理端"座位管理"子功能。该模块专注于自习室内各座位的维护。管理者可以查看特定自习室的座位分布图,并对单个座位进行状态管理,其状态包括"正常"(可预约)和"维护中"(不可预约)。此模块确保了座位资源的可控性。
4.预约管理模块:对应后台管理端和微信小程序端"预约"相关功能。这是系统的核心业务模块。后台支持管理者查看所有学生的预约记录,并进行查询、筛选等操作。在小程序端,学生用户通过该模块完成完整的预约流程:选择楼栋和自习室 → 选择预约日期(未来7天内)→ 选择时段 → 查看并选择可视化座位矩阵中的空闲座位(绿色代表可选)→ 确认提交。系统会校验预约规则(如每日上限3个时段、是否处于禁预约期、是否有冲突时段等),生成或拒绝预约。
5.学生管理模块:对应后台管理端"学生管理"。该模块负责管理学生用户信息。管理者可以查看所有注册学生的详细信息列表,包括学号、姓名、状态(启用/禁用)。同时,该模块集成了"违规记录"子功能,管理者可以查看所有学生的违规详情,包括违规类型(超时未签到/超时未签退)和发生时间,为手动或自动执行违规处罚提供依据。
6.公告管理模块:对应后台管理端和微信小程序端"公告"相关功能。管理者可以发布、编辑、删除针对全体学生的系统公告。这些公告会实时同步并展示在小程序端的"公告"页面,用于发布通知、新规、系统维护等重要信息,是管理员与学生沟通的重要渠道。
7.数据统计模块:对应后台管理端"数据统计"。该模块侧重于数据分析和决策支持。通过多种图表形式(如折线图、柱状图、饼图),统计自习室在不同时间维度的使用率、高峰时段、热门自习室、学生预约偏好等数据。为学校优化自习室资源配置、调整管理策略提供数据洞察。
8.自习室管理模块:对应后台管理端"自习室管理"中的自习室列表子功能。该模块负责管理每个楼栋下的自习室,包括设置自习室的名称、容量、描述以及每日开放时间,为座位预约提供底层数据支持。

物理结构设计
1)管理员表,用于存储系统管理员的账户信息,支持登录认证与权限控制。表结构如表4-1 所示。
表4-1 admin 表
|--------------|----------|-----|-------------|-----|----------------|--------------|
| 字段名 | 数据类型 | 长度 | 主键 | 允许空 | 默认值 | 说明 |
| id | int | 11 | PRIMARY KEY | 否 | AUTO_INCREMENT | 管理员 ID,自增主键 |
| username | varchar | 50 | UNIQUE KEY | 否 | 无 | 登录用户名,唯一 |
| password | varchar | 255 | | 否 | 无 | BCrypt 加密密码 |
| name | varchar | 50 | | 是 | NULL | 管理员姓名 |
| avatar | varchar | 500 | | 是 | NULL | 头像 URL |
| phone | varchar | 20 | | 是 | NULL | 手机号 |
| status | int | 11 | | 是 | 1 | 状态:1 启用,0 禁用 |
| created_time | datetime | | | 是 | NULL | 创建时间 |
| updated_time | datetime | | | 是 | NULL | 更新时间 |
(2)学生表,存储学生基本信息、违规统计及禁预约状态,是预约和违规模块的核心实体。表结构如表4-2 所示。
表4-2 student 表结构
|-----------------|----------|-----|-------------|-----|----------------|--------------------|
| 字段名 | 数据类型 | 长度 | 主键 | 允许空 | 默认值 | 说明 |
| id | int | 11 | PRIMARY KEY | 否 | AUTO_INCREMENT | 学生 ID,自增主键 |
| student_no | varchar | 50 | UNIQUE KEY | 否 | 无 | 学号,唯一 |
| password | varchar | 255 | | 否 | 无 | BCrypt 加密密码 |
| name | varchar | 50 | | 是 | NULL | 姓名 |
| avatar | varchar | 500 | | 是 | NULL | 头像 URL |
| phone | varchar | 20 | | 是 | NULL | 手机号 |
| violation_count | int | 11 | | 是 | 0 | 累计违规次数 |
| ban_until | datetime | | | 是 | NULL | 禁预约截止时间,NULL 表示未禁用 |
| status | int | 11 | | 是 | 1 | 账户状态:1 启用,0 禁用 |
| created_time | datetime | | | 是 | NULL | 创建时间 |
| updated_time | datetime | | | 是 | NULL | 更新时间 |
(3)楼栋表,存储校园内各楼栋的基础信息,为自习室提供空间归属。表结构如表4-3 所示。
表4-3 building 表结构
|--------------|----------|-----|-------------|-----|----------------|------------|
| 字段名 | 数据类型 | 长度 | 主键 | 允许空 | 默认值 | 说明 |
| id | int | 11 | PRIMARY KEY | 否 | AUTO_INCREMENT | 楼栋 ID,自增主键 |
| name | varchar | 100 | | 否 | 无 | 楼栋名称 |
| description | varchar | 500 | | 是 | NULL | 描述信息 |
| created_time | datetime | | | 是 | NULL | 创建时间 |
| updated_time | datetime | | | 是 | NULL | 更新时间 |
(4)自习室表,定义自习室的容量、开放时间及设施等属性,与楼栋通过 building_id 关联。表结构如表4-4 所示。
表4-4 study_room 表结构
|--------------|----------|-----|----------------------------|-----|----------------|--------------|
| 字段名 | 数据类型 | 长度 | 主键 | 允许空 | 默认值 | 说明 |
| id | int | 11 | PRIMARY KEY | 否 | AUTO_INCREMENT | 自习室 ID,自增主键 |
| building_id | int | 11 | FOREIGN KEY → building(id) | 否 | 无 | 所属楼栋 ID |
| name | varchar | 100 | | 否 | 无 | 自习室名称 |
| capacity | int | 11 | | 是 | 0 | 座位容量 |
| row_count | int | 11 | | 是 | 0 | 座位行数 |
| col_count | int | 11 | | 是 | 0 | 座位列数 |
| open_time | varchar | 10 | | 是 | '08:00' | 每日开放时间 |
| close_time | varchar | 10 | | 是 | '22:00' | 每日关闭时间 |
| facilities | varchar | 500 | | 是 | NULL | 设施,逗号分隔 |
| image | varchar | 500 | | 是 | NULL | 封面图 URL |
| status | int | 11 | | 是 | 1 | 状态:1 启用,0 禁用 |
| description | varchar | 500 | | 是 | NULL | 描述 |
| created_time | datetime | | | 是 | NULL | 创建时间 |
| updated_time | datetime | | | 是 | NULL | 更新时间 |
(5)座位表,记录每个自习室内部座位的编号、行列位置及维护状态。表结构如表4-5 所示。
表4-5 seat 表结构
|--------------|----------|----|------------------------------|-----|----------------|---------------|
| 字段名 | 数据类型 | 长度 | 主键 | 允许空 | 默认值 | 说明 |
| id | int | 11 | PRIMARY KEY | 否 | AUTO_INCREMENT | 座位 ID,自增主键 |
| room_id | int | 11 | FOREIGN KEY → study_room(id) | 否 | 无 | 所属自习室 ID |
| seat_no | varchar | 20 | | 否 | 无 | 座位号(如 "1-1") |
| row_num | int | 11 | | 是 | 0 | 行号 |
| col_num | int | 11 | | 是 | 0 | 列号 |
| status | int | 11 | | 是 | 1 | 状态:1 正常,0 维护中 |
| created_time | datetime | | | 是 | NULL | 创建时间 |
| updated_time | datetime | | | 是 | NULL | 更新时间 |
(6)预约记录表,记录学生每次预约的详细信息,包括预约时段、状态、签到签退时间,是系统的核心业务表。表结构如表4-6 所示。
表4-6 reservation 表结构
|---------------|----------|----|------------------------------|-----|----------------|--------------------------------------------|
| 字段名 | 数据类型 | 长度 | 主键 | 允许空 | 默认值 | 说明 |
| id | int | 11 | PRIMARY KEY | 否 | AUTO_INCREMENT | 预约记录 ID,自增主键 |
| student_id | int | 11 | FOREIGN KEY → student(id) | 否 | 无 | 学生 ID |
| room_id | int | 11 | FOREIGN KEY → study_room(id) | 否 | 无 | 自习室 ID |
| seat_id | int | 11 | FOREIGN KEY → seat(id) | 否 | 无 | 座位 ID |
| date | date | | | 否 | 无 | 预约日期 |
| start_time | varchar | 10 | | 否 | 无 | 开始时间(格式 HH:MM) |
| end_time | varchar | 10 | | 否 | 无 | 结束时间(格式 HH:MM) |
| status | int | 11 | | 是 | 0 | 状态:0 待签到,1 使用中,2 已完成,3 已取消,4 超时未签到,5 超时未签退 |
| sign_in_time | datetime | | | 是 | NULL | 签到时间戳 |
| sign_out_time | datetime | | | 是 | NULL | 签退时间戳 |
| created_time | datetime | | | 是 | NULL | 创建时间 |
| updated_time | datetime | | | 是 | NULL | 更新时间 |
(7)违规记录表,存储学生因超时未签到或超时未签退产生的违规记录,与学生和预约关联。表结构如表4-7 所示。
表4-7 violation 表结构
|----------------|----------|-----|-------------------------------|-----|----------------|----------------------|
| 字段名 | 数据类型 | 长度 | 主键 | 允许空 | 默认值 | 说明 |
| id | int | 11 | PRIMARY KEY | 否 | AUTO_INCREMENT | 违规记录 ID,自增主键 |
| student_id | int | 11 | FOREIGN KEY → student(id) | 否 | 无 | 学生 ID |
| reservation_id | int | 11 | FOREIGN KEY → reservation(id) | 是 | NULL | 关联预约记录 ID |
| type | int | 11 | | 否 | 无 | 违规类型:1 超时未签到,2 超时未签退 |
| description | varchar | 500 | | 是 | NULL | 违规描述 |
| created_time | datetime | | | 是 | NULL | 创建时间 |
| updated_time | datetime | | | 是 | NULL | 更新时间 |
(8)公告表,存储管理员发布的系统公告,支持草稿和发布两种状态。表结构如表4-8 所示。
表4-8 announcement 表结构
|--------------|----------|-----|-------------|-----|----------------|---------------|
| 字段名 | 数据类型 | 长度 | 主键 | 允许空 | 默认值 | 说明 |
| id | int | 11 | PRIMARY KEY | 否 | AUTO_INCREMENT | 公告 ID,自增主键 |
| title | varchar | 200 | | 否 | 无 | 公告标题 |
| content | text | | | 是 | NULL | 公告内容(富文本) |
| cover_image | varchar | 500 | | 是 | NULL | 封面图 URL |
| status | int | 11 | | 是 | 0 | 状态:0 草稿,1 已发布 |
| created_time | datetime | | | 是 | NULL | 创建时间 |
| updated_time | datetime | | | 是 | NULL | 更新时间 |
系统展示
根据系统角色划分,系统界面分为后台管理端(管理员使用)和微信小程序端(学生使用)。以下分别展示各角色的核心界面。
5.2.1 后台管理端界面展示
后台管理端为PC端Web页面,基于Vue 3和Element Plus实现,包含左侧菜单导航和右侧内容区域。菜单结构按照需求文档设计,共包含七个一级菜单,依次为首页、楼栋管理、自习室管理(含子菜单自习室列表和座位管理)、预约管理、学生管理(含子菜单学生列表和违规记录)、公告管理、数据统计。以下按菜单顺序展示主要界面。
(1)首页:仪表盘概览:页面顶部显示四个统计卡片,分别展示今日预约数、今日签到数、在座人数和违规人数,数值从后端API实时获取。中部左侧为近7天预约趋势折线图,右侧为自习室使用率柱状图,图表采用ECharts(版本5.4)绘制。底部展示最新10条预约记录列表,支持点击查看详情。界面如下图所示。
(2)楼栋管理:楼栋列表:页面以表格形式展示所有楼栋信息,字段包括楼栋编号、名称、地址、楼层数、创建时间。表格上方提供"新增楼栋"按钮和按名称模糊搜索的输入框。每行数据右侧提供"编辑"和"删除"操作按钮,删除前弹出二次确认对话框。界面如下图所示。

(7)违规记录管理:违规记录:表格展示学生违规记录,字段包括违规编号、学生姓名、学号、违规类型(超时未签到/超时未签退)、违规时间、处罚状态(是否处于禁预约期)。表格上方提供学生姓名搜索框,支持按违规类型筛选。对于处于禁预约期的记录,表格行背景标红提示。界面如下图所示。

小程序端界面展示
小程序端面向学生用户,基于uni-app框架开发,底部包含四个TabBar页面:首页、预约、公告、我的。此外还有若干非TabBar页面,包括座位选择、我的预约、我的违规、个人信息等。以下展示各页面界面。
(1)首页:顶部展示轮播图组件,轮播图片可在后台管理端公告管理上传配置。轮播图下方为快捷功能区,包含"快速预约"按钮(直接跳转至预约页面)和"查看我的预约"按钮。功能区下方展示自习室使用概况,以卡片形式显示今日预约总人数、今日空闲座位总数、当前在座人数。页面支持下拉刷新获取最新数据。界面如下图所示。

座位选择页面:以网格形式可视化展示所选自习室的所有座位,每个座位用正方形表示,绿色代表空闲可预约、灰色代表已被预约或处于维护中。用户点击绿色座位,座位边框高亮,页面底部显示当前选中的座位号及预约信息(自习室名称、日期、时段)。点击底部"确认预约"按钮,系统进行冲突检查:若学生被禁用、处于禁预约期、已有冲突时段预约或当日预约已达3次,则弹出提示并拒绝预约;否则提交预约成功,返回预约页面并提示预约成功。界面如下图所示。

个人信息页面:显示姓名、违规次数,预约次数。如下图所示。

总结与展望
7.1 已完成工作
本文围绕高校自习室管理系统的设计与实现,完成了以下主要工作:
(1)需求分析与系统设计。针对高校自习室管理中资源利用率低、预约流程繁琐、违规管理缺失等痛点,进行了全面的功能需求调研与分析,明确了管理员和学生两类角色的核心业务需求。基于前后端分离架构,设计了系统总体技术方案:后台管理端采用 Vue3 + Element Plus 开发PC网页,前台用户端基于 uni-app + uni-ui + Vue3 构建微信小程序,后端采用 Spring Boot + MyBatis-Plus + MySQL 实现业务逻辑与数据持久化,并使用 JWT 进行身份认证。
(2)数据库设计与实现。规划了8张核心数据表(楼栋表、自习室表、座位表、预约表、违规记录表、管理员表、学生表、公告表),所有表统一使用 INT 自增主键,通过逻辑关联字段维护表间关系,避免物理外键带来的性能损耗。设计了预约状态(0-已预约、1-已签到、2-已签退、3-已取消、4-超时未签到、5-超时未签退)和违规类型(超时未签到、超时未签退)的枚举值,并完成了业务状态流转的闭环设计。
(3)后台管理端功能开发。实现了7大功能模块:仪表盘概览、楼栋管理(CRUD)、自习室管理(自习室列表与座位状态维护)、预约管理(预约记录查询与管理)、学生管理(学生列表与违规记录)、公告管理(CRUD)以及数据统计(使用统计图表)。通过数据权限隔离,管理员可查看和管理全局数据。
(4)微信小程序端功能开发。构建了4个Tab页面(首页、预约、公告、我的)及若干非TabBar页面(如预约详情、个人信息编辑等)。学生可通过学号+密码自行注册登录,实现自习室浏览、座位预约(选择日期、时段、可视化座位图)、签到签退、查看个人预约记录与违规记录、接收公告等功能。
(5)核心业务逻辑实现。完成了座位预约流程的完整闭环:包括未来7天日期选择、按小时时段划分、可视化座位图展示、冲突检测(每人每天最多预约3个时段);实现了签到签退机制(预约开始15分钟内签到、时段结束前签退);设计了定时任务每分钟扫描超时未签到和超时未签退情况,自动释放座位并记录违规;违规处罚规则(累计3次违规禁预约7天)也已落地。
7.2 存在的不足
尽管系统已基本满足高校自习室管理的核心需求,但在以下方面仍存在提升空间:
(1)功能覆盖的局限性。当前系统仅支持按小时时段的预约模式,未考虑更灵活的时间粒度(如按半小时或分钟预约)。此外,系统缺少消息推送功能,学生无法实时收到预约提醒、签到提醒或违规通知,只能通过手动查询获取信息。
(2)性能与并发处理能力不足。系统尚未针对高并发场景进行优化,在选座高峰期(如考试周)可能出现座位状态更新延迟或预约冲突。目前仅使用关系型数据库单点部署,未引入缓存机制(如Redis)或消息队列来削峰填谷。
(3)用户体验细节有待完善。后台管理端的座位管理页面在可视化座位图展示上不够直观,缺乏拖拽调整座位布局的功能;小程序端在页面加载速度、手势交互流畅性方面仍有优化空间。此外,系统未提供深色模式、字体大小调节等个性化的UI配置。
(4)安全与数据隐私保护薄弱。当前仅依赖JWT进行用户认证,未引入细粒度的权限校验(如接口级权限控制)。学生密码以明文方式传递和存储(尽管需求中未明确加密方式),存在安全隐患。定时任务操作日志缺失,不利于事故追溯。
(5)统计分析能力有限。数据统计模块仅展示基础的使用统计图表(如预约数量、自习室使用率),缺少多维度的数据分析功能,例如按学院、年级、时间段交叉分析,也未支持数据导出(Excel/PDF)。
7.3 未来展望
针对上述不足,未来可从以下方向进行改进与扩展:
(1)功能增强与精细化。增加灵活预约模式,支持按半小时或分钟自定义时段;引入消息推送服务(微信模板消息或短信),实现预约确认、签到提醒、违规通知的实时触达;增加自习室评价与反馈功能,帮助管理员优化资源配置。
(2)系统性能优化与架构升级。引入Redis缓存座位实时状态和热门数据,减轻数据库压力;使用消息队列(如RabbitMQ)处理定时任务和并发预约请求,保证数据一致性;将服务器扩容为集群部署,并引入负载均衡提升吞吐量。同时完善数据库索引设计,对高频查询字段建立索引。
(3)用户体验提升。优化座位图的可视化交互,增加座位拖拽调整、一键换座等便捷操作;小程序侧引入骨架屏、懒加载等机制提升加载速度;支持深色模式、字体缩放等无障碍特性。后台管理端可增加全局搜索功能,便于管理员快速定位数据。
(4)安全加固。实施密码加密存储(如BCrypt),对敏感操作(如删除数据)增加二次确认;引入Spring Security实现细粒度的接口权限控制,防止越权访问;完善系统操作日志记录,覆盖关键业务变更和定时任务执行情况,便于安全审计。
(5)智能化与数据驱动。引入机器学习算法预测自习室高峰期与座位需求,辅助管理员提前调整开放策略;基于学生历史行为推荐空闲座位或最佳预约时段;拓展数据分析维度,生成可视化报表并支持一键导出,为高校后勤决策提供数据支撑;对接学校教务系统,实现课程表联动,自动避开学生上课时间。