在线图书借阅平台的设计与实现
一、需求分析与规划
1.1 命题背景与功能需求
在线图书借阅平台旨在解决传统图书馆线下借阅效率低、用户查询不便等问题,目标用户覆盖在校师生及公共图书馆读者。通过需求调研,平台需实现五大核心功能模块:
| 模块名称 | 核心功能点 | 用户角色 |
|---|---|---|
| 用户管理 | 注册(含邮箱验证)、登录(密码加密)、个人信息维护、角色权限分级(普通用户/管理员) | 所有用户 |
| 图书检索 | 支持关键词(书名/作者)、分类(文学/科技/历史)、库存状态(可借/已借出)多条件组合查询 | 所有用户 |
| 借阅管理 | 借书申请(校验库存)、续借操作(延长应还日期)、归还确认(更新库存与记录状态) | 普通用户 |
| 逾期管理 | 自动计算逾期天数、生成违约金、黑名单控制(逾期超 3 次禁用借阅权限) | 系统自动/管理员 |
| 数据统计 | 借阅量月度报表、热门图书 TOP10 排行、用户活跃度分析 | 管理员 |
技术选型依据:
- 后端:Spring Boot 2.7(快速构建 RESTful API)、MyBatis-Plus(简化数据库 CRUD)、JWT(用户认证令牌)、BCrypt(密码加密)
- 前端:Vue 3 + Element Plus
- 数据库:MySQL 8.0(支持事务、索引优化及复杂查询)
1.2 核心流程设计
系统主要交互流程如下:
- 用户访问:判断是否已注册,未注册则调用注册模块。
- 登录认证:校验账号密码,成功返回 JWT 令牌并加载主页。
- 图书检索:输入关键词、分类或库存条件,查询
book表及库存关联表。 - 借阅操作:选择目标图书提交申请,检查库存充足后写入
borrow_record表,返回应还日期。 - 逾期处理:到期前 3 天触发提醒,若未续借且逾期,系统计算违约金并更新用户状态。
二、核心模块实现
2.1 实体类与控制器
以用户管理为例,我们使用 Lombok 简化代码结构,结合 MyBatis-Plus 注解进行 ORM 映射。
// 实体类 User.java
@Data
@TableName("user")
public class User {
@TableId(type = IdType.AUTO)
private Integer id;
private String username;
// 实际存储 BCrypt 加密值
private String password;
private String email;
Integer role;
LocalDateTime createTime;
}


