在线图书借阅平台设计与实现
一、需求分析与规划
1.1 背景与功能目标
传统图书馆线下借阅存在效率低、查询不便等痛点。本系统旨在构建一个高效的在线借阅平台,覆盖在校师生及公共读者群体。核心功能模块包括:
| 模块名称 | 核心功能点 | 用户角色 |
|---|---|---|
| 用户管理 | 注册(含邮箱验证)、登录(密码加密)、权限分级(普通用户/管理员) | 所有用户 |
| 图书检索 | 支持关键词、分类、库存状态多条件组合查询 | 所有用户 |
| 借阅管理 | 借书申请(校验库存)、续借操作、归还确认 | 普通用户 |
| 逾期管理 | 自动计算逾期天数、违约金生成、黑名单控制 | 系统自动/管理员 |
| 数据统计 | 借阅量报表、热门图书排行、活跃度分析 | 管理员 |
1.2 技术选型
- 后端:Spring Boot 2.7 + MyBatis-Plus + JWT + BCrypt
- 前端:Vue 3 + Element Plus
- 数据库:MySQL 8.0
1.3 核心业务流程
系统主要流程涵盖用户认证、资源检索及借阅事务处理。
- 注册/登录:输入凭证后校验,成功则签发 JWT 令牌。
- 检索图书:根据关键词或分类查询库存表,返回可借状态。
- 借阅操作:检查库存充足性,原子性更新库存并写入借阅记录。
- 逾期处理:定时任务扫描未归还记录,计算违约金或标记黑名单。
二、核心代码实现
2.1 实体与基础结构
采用分层架构,实体类配合 Lombok 简化样板代码。注意密码存储需使用 BCrypt 加密,而非明文。
// entity/User.java
@Data
@TableName("user")
public class User {
@TableId(type = IdType.AUTO)
private Integer id;
private String username;
private String password; // 实际存储 BCrypt 加密值
private String email;
private Integer role; // 0-普通用户,1-管理员
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
}


