本文档旨在详细描述图书管理系统中图书管理服务的详细设计,为开发人员、测试人员和维护人员提供清晰的实现指导。文档涵盖服务架构、模块划分、接口定义、数据模型、关键流程、异常处理及非功能性需求等。
图书管理服务是图书管理系统的核心微服务之一,负责图书信息的增删改查、库存管理、分类管理以及图书状态维护。本设计不涉及用户管理、借阅流通、通知等其它服务。
图书管理服务采用分层架构:
服务注册与发现采用Nacos,配置中心采用Nacos Config。
| 模块 | 职责 |
|------|------|
| 图书信息管理 | 图书元数据的CRUD、搜索 |
| 馆藏副本管理 | 副本的增删改查、状态变更 |
| 分类管理 | 分类树的维护 |
| 库存管理 | 副本入库、出库、盘点 |
| 文件管理 | 图书封面上传、下载 |
所有接口遵循RESTful风格,返回JSON格式。基础路径:/api/v1/books。
- URL: POST /api/v1/books
- 请求体:`json
{
"isbn": "9787115428028",
"title": "鲁迅全集",
"author": "鲁迅",
"publisher": "人民文学出版社",
"publishDate": "2005-11-01",
"categoryId": 123,
"price": 99.00,
"description": "..."
}`
book表
| 字段 | 类型 | 说明 |
|------|------|------|
| id | bigint | 主键 |
| isbn | varchar(20) | 唯一 |
| title | varchar(200) | |
| author | varchar(100) | |
| publisher | varchar(100) | |
| publishdate | date | |
| categoryid | bigint | 外键 |
| price | decimal(10,2) | |
| description | text | |
| coverurl | varchar(255) | |
| createdat | datetime | |
| updated_at | datetime | |
bookcopy表
| 字段 | 类型 | 说明 |
|------|------|------|
| id | bigint | 主键 |
| bookid | bigint | 外键 |
| barcode | varchar(50) | 唯一 |
| status | varchar(20) | 枚举 |
| location | varchar(50) | 架位 |
| created_at | datetime | |
category表
| 字段 | 类型 | 说明 |
|------|------|------|
| id | bigint | 主键 |
| name | varchar(50) | |
| parentid | bigint | 自关联 |
| sortorder | int | |
book:{id},TTL 10分钟,更新时删除。category:tree,TTL 1小时。统一异常处理通过@ControllerAdvice实现。
| 异常 | HTTP状态 | 错误码 | 描述 |
|------|----------|--------|------|
| MethodArgumentNotValidException | 400 | 1001 | 参数校验失败 |
| BusinessException | 400 | 1002 | 业务异常,message自定义 |
| EntityNotFoundException | 404 | 1003 | 资源不存在 |
| ConflictException | 409 | 1004 | 数据冲突 |
| Exception | 500 | 2000 | 系统内部错误 |
返回体格式:`json
{
"code": 1004,
"message": "ISBN已存在",
"timestamp": "2023-10-01T12:00:00Z"
}`
---
文档修订记录:
| 版本 | 日期 | 作者 | 说明 |
|------|------|------|------|
| 1.0 | 2023-10-01 | 设计组 | 初始版本 |
如若转载,请注明出处:http://www.bjwhzg.com/product/14.html
更新时间:2026-10-07 06:52:32