基于springboot框架构建图书管理系统,具有可视化统计,分类管理,借阅管理,图书管理,读者管理,还书,罚款等功能。 (本次项目为kust创新实践课个人任务完成)
任务需求描述:
图书管理系统: XX校图书馆现为手工管理,效率低、易出错、手续繁琐,而且耗费大量的人力。图书馆希望设计一个图书馆系统,管理读者的登记、图书的购入、借出、归还以及注销等。管理人员还可以查询某位读者、某本图书的借阅情况,以及图书借阅情况排行榜(某本图书的借阅人次),对借阅情况进行统计,给出统计表格和统计图,以全面掌握图书的流通情况。
具体需求:要求该系统可以完成读者管理(读者信息的增删修查)、图书管理(图书信息的增删修查)、借书管理(借阅记录的增删修查)、还书管理(借阅记录的增删修查)、图书注销管理、统计、角色权限管理等功能。读者登记时要新增读者信息,包括读者的具体信息(学号工号,身份证号,姓名,学院,专业,年级,是否已毕业、是否有效等)。购入新书时要新增图书信息,包括图书分类号(大类中类小类)、序列号(唯一)、出版号、书名、作者、内容摘要、出版社、价格和购书日期、状态(借出、在馆、已注销)等信息。读者借书时,先检查该读者为否有效的读者,若无效则拒绝借书,否则检查该读者所借图书是否超过最大限制数(五本)以及有未归还的过期图书,否则拒绝借书。查找该图书是否还有,如果有则可以借出,生成借阅记录,包括:图书序列号、书名、读者号、姓名、借出日期、归还日期、借阅期限、是否已过期等。读者还书时,根据图书序列号,从借阅记录中读出有关记录内容,登记归还日期,如果图书过期,则处以罚款,并打印罚款单。在某些情况下,需要对图书进行清理工作,对无价值的和过时的图书要注销。查询分为查询某位读者的借阅情况、某种图书的借阅情况和全局图书查询三种情况。
保存管理注册信息
- id: 用户id,自增
- createtime: 用户注册时间
- email:邮箱
- password:密码
- username:用户名
保存图书信息
- id: 图书id,自增
- author:作者
- cover: 图书封面地址
- create_time:创建时间
- is_delete: 图书是否有效 true|false
- isbn:图书ISBN编号
- price: 图书价格
- publisher:图书出版社
- description:图书介绍描述
- title: 图书名
- category_id: 外键—>book_category表,保存图书分类信息
- publish_date:出版日期
- status: 图书是否在馆 true|false
- borrow_count:图书被借用次数
保存图书分类信息
- id:分类id自增
- name:分类名
- parant_category_id: 外键->book_category 表自身,保存父分类id
保存读者信息
- id:读者id,自增
- card_id:身份证号
- college:学院
- create_time:创建读者时间
- grade:年级
- graduation:是否毕业,true|false
- major:专业
- name:姓名
- phone:电话
- student_id:学号
- valid: 账号是否有效 true|false
- borrow_count:借用图书次数
保存借阅记录信息
- 借阅记录id,自增
- actual_retrun_date: 实际归还书的时间
- create_time:借书时间
- is_overdue:是否逾期,true|false
- is_retrun:是否归还,true:false
- return_date: 约定归还时间
- book_id:外键->book表,保存借用图书id
- reader_id:外键->reader 表,保存借用读者id
保存罚款记录信息
- 罚款记录id,自增
- create_time:创建时间
- money:罚款金额
- reason:罚款原因
- record_id:外键->record表,记录罚款记录对应借阅id
后端:
jdk1.8
maven
spring-boot
myhabits-plus
thymeleaf
数据库:
mysql
前端:
jquery
bootstrap
highcharts
bootstrap-table
font-awesome
工具:
IDEA
navicat
以下是大概的界面展示内容
-
登录
-
注册
-
退出登录
- 查看读者,图书,借阅次,罚款次数量
- 查看图书热度柱状图
- 查看借阅违规比例饼图
- 查看借阅趋势折线图
- 查看分类,及其子分类名
- 当前分类下,新建子分类
- 查看当前分类目录下所有图书
-
状态显示
-
新建,更新图书
-
上传封面
-
图书详情信息
-
激活,注销,删除图书
-
借阅图书,搜索读者
-
查看该书相关读者
- 状态显示
- 新建,更新,删除 读者
- 激活,注销读者
- 查看读者借阅所有书的详情
-
状态显示
-
删除借阅记录
-
点击还书
-
输入罚款,生成罚款单
- 模糊搜索相关图书,读者信息
本次任务中,由于第一次使用spring-boot框架开发,导致很多service方法直接写在controller层中,理应写在service层中,没有好的注释,并且在日后阅读起来较为不方便,也不符合编程规范。对于一些方法的实现,没有采用特别合理的方式,导致一些方法数据库的查询次数过多,增加查询时间,以及前端bootstrap-table采用client模式,没有采用server模式,在数据库表信息太多时候,会导致查询速度慢,占用空间大等问题。整个系统实现,包含三个缺陷,一是图书信息需要增加编号属性;二、图书可以增添库存;三、罚款管理可以取消手动输入罚款原因和金额,根据逾期天数,自动生成罚款金额单。