温馨提示:本人主页置顶文章(点我)开头有 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违规记录值班员处理占座标记违规占座违规记录生成,计入信用记录成功通过
TC09AI 学习计划学生生成计划备考科目、天数 7 天AI 返回分天学习计划生成正常通过
TC10学情统计管理员查看利用率打开统计页面展示座位周转率、高峰时段图表图表正常通过

总结

本 AI 智能自习室管理系统采用 SpringBoot+Vue3 加微信小程序架构,接入 DeepSeek 大模型,划分管理员、值班员、学生三类角色,实现自习室座位布局维护、在线预约、扫码签到、学习计时、超时自动释放、违规占座管理、会员计费、AI 学习计划生成与答疑、学习时长与专注度统计等功能。系统解决自习室占座难管、座位空置率高、学习过程无量化的问题,用预约锁座与超时释放提升座位周转,用 AI 助手为学生提供学习规划与复盘,让自习室从人工巡场走向数据驱动的精细化管理。经过测试,预约冲突校验、签到计时、超时释放、AI 计划生成、统计看板等核心逻辑运行稳定,满足自习室运营管理需求。后续可拓展人脸识别闸机、摄像头专注度检测、噪声监测、AI 学习报告推送、多门店通用会员等功能。

Logo

更多推荐