基于SpringBoot的AI智能自习室管理系统-附源码
温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片!
课题介绍
课题名称:基于 SpringBoot 的 AI 智能自习室管理系统
课题介绍:高校和城市自习室座位资源紧张,占座、长期空置、超时不离座等问题突出,管理员靠人工巡场清座效率低,学生找空位靠碰运气;学习过程中缺少学习时长统计、专注度反馈和学习计划指导,学生难以坚持,管理者也无法掌握座位利用率与运营状况。本系统基于 SpringBoot 开发 AI 智能自习室管理系统,接入 DeepSeek 大模型提供智能学习助手,设置管理员、自习室值班员、学生用户三类角色。管理员负责自习室与楼层座位布局维护、开放时段与预约规则配置、会员与计费规则设置、AI 助手接口配置、全局数据统计;值班员负责现场签到核验、超时与违规占座处理、临时闭馆与座位维护登记、异常情况上报;学生可以微信授权或账号登录,查看各楼层座位热力图、在线预约座位、扫码或人脸签到、开始与结束学习计时、查看个人学习时长与专注度报告,同时可以使用 AI 学习助手生成学习计划、拆解任务、答疑知识点、复盘当天学习效果。系统整合座位预约、签到计时、超时释放、学习数据分析、AI 学习助手等功能,让座位周转更高效、学习过程可量化,帮助自习室实现无人化与精细化管理。
技术栈
后端 SpringBoot + MyBatis-Plus + MySQL,SpringSecurity+JWT 权限控制,小程序通过 wx.login 换取 openid 免密登录;对接 DeepSeek 大模型 API 实现学习计划生成、知识点答疑与学习复盘;Redis 缓存座位实时状态与预约锁,通过定时任务自动释放超时未签到座位;WebSocket 向前端推送座位状态与超时提醒。前端 Vue3+ElementPlus 管理后台,学生端微信原生小程序(WXML+WXSS+JS),ECharts 绘制座位热力图与学习时长趋势。前后端分离,接口统一返回 JSON。系统分为权限模块、自习室座位模块、预约签到模块、学习计时模块、超时与违规模块、会员计费模块、AI 学习助手模块、学情统计模块。后续可拓展人脸识别闸机、摄像头专注度检测、噪声监测、AI 学习报告推送、跨门店通用会员等功能。
系统分析
角色:管理员、自习室值班员、学生用户
管理员:自习室楼层座位布局维护、开放时段与预约时长规则配置、会员等级与收费规则、AI 接口密钥配置、座位利用率与营收统计。
值班员:现场签到核验、超时座位强制释放、违规占座记录、闭馆与座位维修登记。
学生用户:查看座位实时状态与热力图、预约座位、扫码签到、开始 / 结束学习计时、查看学习时长与专注度报告、AI 学习助手生成学习计划与答疑、查看历史预约与违规记录。
非功能性需求:同一座位同一时段不可重复预约;预约后未按时签到自动释放;学习时长与积分联动;座位状态实时同步;AI 接口调用需限流防刷;学生数据仅本人可见;关键操作与违规记录留痕。
界面设计














文档截图

系统设计
系统分为权限模块、自习室与座位模块、预约模块、签到计时模块、超时释放模块、违规模块、会员计费模块、AI 助手模块、学情统计模块。座位模块按楼层、区域、座位号维护状态(空闲、已预约、使用中、维修中);预约模块校验时段冲突并加锁锁定座位,生成预约单;签到模块通过二维码或学号核验,记录实际到场时间;计时模块记录开始学习、结束学习与有效时长,扣除离座时长;超时模块由定时任务扫描未签到与超时未离座记录并自动释放座位、生成违规记录;会员模块按等级与时长核算费用;AI 模块封装 DeepSeek 接口,按科目与目标生成分阶段学习计划、答疑知识点、结出当天学习复盘;统计模块输出座位周转率、时段高峰、学生学习时长与专注度评分。
核心代码
@RestController
@RequestMapping("/studyroom")
public class StudyRoomController {
@Resource
private ISeatService seatService;
@Resource
private IReserveService reserveService;
@Resource
private IStudyRecordService recordService;
@Resource
private DeepSeekApiClient deepSeekClient;
@PostMapping("/reserve")
public Result reserve(@RequestParam Long userId, @RequestParam Long seatId,
@RequestParam String startTime, @RequestParam String endTime) {
Seat seat = seatService.getById(seatId);
if (seat == null || seat.getSeatStatus() != 0) return Result.fail("该座位当前不可预约");
Long conflict = reserveService.count(new LambdaQueryWrapper<ReserveOrder>()
.eq(ReserveOrder::getSeatId, seatId)
.in(ReserveOrder::getReserveStatus, 0, 1)
.lt(ReserveOrder::getStartTime, endTime)
.gt(ReserveOrder::getEndTime, startTime));
if (conflict > 0) return Result.fail("所选时段已被预约,请更换座位或时间");
ReserveOrder order = new ReserveOrder();
order.setUserId(userId);
order.setSeatId(seatId);
order.setStartTime(startTime);
order.setEndTime(endTime);
order.setReserveStatus(0);
reserveService.save(order);
seat.setSeatStatus(1);
seatService.updateById(seat);
return Result.success("预约成功,请在开始前15分钟内签到");
}
@PostMapping("/checkin")
public Result checkin(@RequestParam Long reserveId) {
ReserveOrder order = reserveService.getById(reserveId);
if (order == null || order.getReserveStatus() != 0) return Result.fail("预约单不存在或已失效");
order.setReserveStatus(1);
order.setCheckinTime(new Date());
reserveService.updateById(order);
seatService.updateStatus(order.getSeatId(), 2);
return Result.success("签到成功,开始计时");
}
@PostMapping("/aiPlan")
public Result aiPlan(@RequestParam Long userId, @RequestParam String subject,
@RequestParam Integer days) {
String prompt = "请为备考" + subject + "的学生生成" + days + "天自习学习计划,按天拆分任务与时长建议";
String reply = deepSeekClient.chat(prompt);
return Result.success(reply);
}
}
系统测试
表格
| 测试编号 | 测试模块 | 测试目的 | 输入数据 | 预期结果 | 实测结果 | 是否通过 |
|---|---|---|---|---|---|---|
| TC01 | 角色登录 | 三类角色登录 | 学生账号、值班员账号 | 登录成功,权限菜单隔离 | 权限正常 | 通过 |
| TC02 | 座位布局 | 管理员维护座位 | 新增 3 楼 A 区 12 个座位 | 座位生成,前台可选 | 新增成功 | 通过 |
| TC03 | 座位预约 | 学生预约空闲座位 | 选择座位与时段 | 预约生成,座位锁定 | 状态为已预约 | 通过 |
| TC04 | 冲突校验 | 同座位同时段重复预约 | 已被预约时段再次提交 | 提示时段冲突,预约失败 | 拦截预约 | 通过 |
| TC05 | 扫码签到 | 学生到馆签到 | 扫描座位二维码 | 签到成功,开始计时 | 状态改为使用中 | 通过 |
| TC06 | 超时未签到释放 | 超时未签到自动释放 | 超过签到时限 | 预约失效,座位恢复空闲 | 定时任务生效 | 通过 |
| TC07 | 结束学习 | 学生结束计时 | 点击结束学习 | 记录有效时长与离座时长 | 记录生成 | 通过 |
| TC08 | 违规记录 | 值班员处理占座 | 标记违规占座 | 违规记录生成,计入信用 | 记录成功 | 通过 |
| TC09 | AI 学习计划 | 学生生成计划 | 备考科目、天数 7 天 | AI 返回分天学习计划 | 生成正常 | 通过 |
| TC10 | 学情统计 | 管理员查看利用率 | 打开统计页面 | 展示座位周转率、高峰时段图表 | 图表正常 | 通过 |
总结
本 AI 智能自习室管理系统采用 SpringBoot+Vue3 加微信小程序架构,接入 DeepSeek 大模型,划分管理员、值班员、学生三类角色,实现自习室座位布局维护、在线预约、扫码签到、学习计时、超时自动释放、违规占座管理、会员计费、AI 学习计划生成与答疑、学习时长与专注度统计等功能。系统解决自习室占座难管、座位空置率高、学习过程无量化的问题,用预约锁座与超时释放提升座位周转,用 AI 助手为学生提供学习规划与复盘,让自习室从人工巡场走向数据驱动的精细化管理。经过测试,预约冲突校验、签到计时、超时释放、AI 计划生成、统计看板等核心逻辑运行稳定,满足自习室运营管理需求。后续可拓展人脸识别闸机、摄像头专注度检测、噪声监测、AI 学习报告推送、多门店通用会员等功能。
更多推荐

所有评论(0)