✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌
文末获取项目下载方式
一、项目背景介绍:
随着社会信息化的快速发展,图书馆作为知识传播和学术研究的重要场所,扮演着不可替代的角色。然而,传统的图书馆借阅方式存在一些问题,如人工操作复杂、排队等待时间长、信息交流不便等。为了提高用户体验、优化图书管理效率,图书馆借阅系统的引入成为了迫切需求。
目前,一些图书馆已经开始引入计算机技术来改进借阅流程,并且不断涌现出各种图书借阅系统。这些系统通过应用先进的技术手段,例如互联网和移动设备等,实现了更高效、便捷的图书借阅方式,受到了广泛的欢迎和应用。
然而,在一些小型图书馆或教育机构中,仍然存在着借阅过程繁琐、信息不透明、借还效率低等问题。因此,开发一套基于Spring Boot、Vue.js和uni-app的图书借阅系统具有重要的实际意义和研究价值。
该系统将利用Spring Boot提供的快速开发和便捷部署的特性,基于Vue.js构建友好的用户界面,并使用uni-app实现跨平台的移动应用。通过这个系统,用户可以方便地浏览图书信息、进行在线借阅、查询借阅记录等操作;管理员可以进行图书管理、借阅管理、统计分析等工作。这将大大提高图书馆的服务质量和管理效率。
因此,本研究旨在设计与实现一套基于Spring Boot、Vue.js和uni-app的图书借阅系统,以满足用户借阅需求,提高图书馆服务质量和管理效率,促进图书馆建设的数字化和智能化进程。通过对系统的开发和实施,将探索先进技术在图书借阅领域的应用,为类似机构提供参考和借鉴。
二、项目技术简介:
三、系统功能模块介绍:
四、数据库设计:
1:advertisement(advertisement)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 主键 |
title | varchar | NULL | 发送标题 |
type | tinyint | NULL | 类型 |
Banner | |||
提示 | |||
弹窗 | |||
content | text | NULL | 发送内容 |
cover | varchar | NULL | 图片 |
state | tinyint | NULL | 状态 |
creator | bigint | NULL | 创建者 |
add_time | datetime | NULL | 创建时间 |
editor | bigint | NULL | 编辑者 |
edit_time | datetime | NULL | 编辑时间 |
deleted | tinyint | NULL | 逻辑删除 |
2:attachment(attachment)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | 主键 |
file_name | varchar | NULL | 文件原名 |
file_size | int | NULL | 附件大小 |
file_type | varchar | NULL | 附件类型 |
name | varchar | NULL | 附件名称 |
url | varchar | NULL | 附件地址 |
save_path | varchar | NULL | 保存路径 |
add_time | datetime | NULL | 添加时间 |
3:dict(dict)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | 主键 |
name | varchar | NULL | 组名 |
code | varchar | NULL | 编码 |
remark | varchar | NULL | 信息 |
4:dict_item(dict_item)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | 主键 |
dict_id | int | NULL | 组id |
name | varchar | NULL | 名称 |
info | varchar | NULL | 说明 |
5:notice(notice)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | id |
title | varchar | NULL | 公告标题 |
content | text | NULL | 公告内容 |
creator | bigint | NULL | 创建人 |
editor | bigint | NULL | 编辑人 |
add_time | datetime | NULL | 添加时间 |
edit_time | datetime | NULL | 编辑时间 |
deleted | tinyint | NULL | 删除标记 |
6:org(org)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 主键 |
pid | bigint | NULL | 上级 |
name | varchar | NULL | 名称 |
shortname | varchar | NULL | 简称 |
level | tinyint | NULL | 级别 |
id_path | varchar | NULL | 路径 |
name_path | varchar | NULL | 部门名路径 |
contact_name | varchar | NULL | 联系人 |
phone | varchar | NULL | 联系电话 |
varchar | NULL | ||
info | varchar | NULL | 描述 |
state | tinyint | NULL | 是否有效 |
creator | bigint | NULL | 创建人 |
add_time | datetime | NULL | 添加时间 |
editor | bigint | NULL | 编辑人 |
edit_time | datetime | NULL | 编辑时间 |
address | varchar | NULL | 地址 |
deleted | tinyint | NULL | 逻辑删除 |
7:setting(setting)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | 主键 |
type | int | NULL | 类型 |
name | varchar | NULL | 名称 |
code | varchar | NULL | 码 |
value | varchar | NULL | 值 |
value_type | varchar | NULL | 值数据类型 |
info | varchar | NULL | 说明 |
8:staff(staff)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | id |
name | varchar | NULL | 姓名 |
mobile | varchar | NULL | 手机号 |
password | varchar | NULL | 密码 |
birthday | date | NULL | 生日 |
gender | tinyint | NULL | 性别 |
id_card | varchar | NULL | 身份证 |
school | varchar | NULL | 毕业院校 |
degree | tinyint | NULL | 学历 |
head_img | varchar | NULL | 头像 |
hire_date | date | NULL | 入职日期 |
fire_date | date | NULL | 离职日期 |
intro | varchar | NULL | 简介 |
state | tinyint | NULL | 在职状态 |
creator | bigint | NULL | 创建人 |
add_time | datetime | NULL | 创建时间 |
editor | bigint | NULL | 编辑人 |
edit_time | datetime | NULL | 编辑时间 |
deleted | tinyint | NULL | 是否删除 |
org_id | bigint | NULL | 所属组织部门ID |
9:‘员工角色’(staff_role)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | 自增id |
staff_id | bigint | NULL | 员工id |
role_id | int | NULL | 角色id |
10:sys_log(sys_log)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 主键 |
operator | bigint | NULL | 操作人 |
user_id | bigint | NULL | 用户id |
type | varchar | NULL | 类型 |
info | varchar | NULL | 信息 |
path | varchar | NULL | 路径 |
url | varchar | NULL | 请求地址 |
method | varchar | NULL | 请求方法 |
param | text | NULL | 参数 |
ip | varchar | NULL | IP地址 |
browser_name | varchar | NULL | 浏览器名 |
browser_ver | varchar | NULL | 浏览器版本 |
os_name | varchar | NULL | 系统名称 |
add_time | datetime | NULL | 日志时间 |
time_cost | int | NULL | 响应时间毫秒 |
org_id | bigint | NULL | 所属组织ID |
11:‘权限’(sys_permission)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | 自增id |
name | varchar | NULL | 菜单名称 |
url | varchar | NULL | url |
code | varchar | NULL | 代码 |
enabled | smallint | NULL | 是否启用 1 启用,0 禁用 |
group_name | varchar | NULL | 分组 |
12:‘角色’(sys_role)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | 自增id |
name | varchar | NULL | 角色名称 |
code | varchar | NULL | 角色编码 |
13:‘角色权限’(sys_role_permission)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | 自增id |
role_id | int | NULL | 角色id |
permission_id | int | NULL | 菜单id |
14:‘用户表’(user)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 用户主键 |
name | varchar | NULL | 昵称 |
avatar | varchar | NULL | 头像 |
mobile | varchar | NULL | 手机号/账号 |
password | varchar | NULL | 密码 |
balance | decimal | NULL | 余额 |
login_times | int | NULL | 登录次数 |
latest_login_time | datetime | NULL | 上次登录时间 |
latest_login_ip | varchar | NULL | 上次登录ip |
remark | varchar | NULL | 备注 |
state | tinyint | NULL | 账号状态 |
add_time | datetime | NULL | 注册时间 |
deleted | tinyint | NULL | 逻辑删除 |
15:‘图书表’(z_book)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | id |
info_id | int | NULL | 书本信息id |
code | varchar | NULL | 书本编号 |
state | int | NULL | 状态 |
user_id | bigint | NULL | 借阅者 |
library_id | int | NULL | 图书馆id |
editor | bigint | NULL | 更新者 |
edit_time | datetime | NULL | 更新时间 |
deleted | int | NULL | 逻辑删除 |
16:‘图书信息表’(z_bookinfo)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | id |
code | varchar | NULL | 图书编码 |
name | varchar | NULL | 书名 |
author | varchar | NULL | 主编/作者 |
cover | varchar | NULL | 封面 |
isbn | bigint | NULL | isbn |
press | varchar | NULL | 出版社 |
version | tinyint | NULL | 版次 |
public_time | date | NULL | 出版时间 |
num_pages | int | NULL | 页数 |
introduce | varchar | NULL | 简介 |
type_id | int | NULL | 类型id |
creator | bigint | NULL | 创建者 |
add_time | datetime | NULL | 创建时间 |
editor | bigint | NULL | 更新者 |
edit_time | datetime | NULL | 更新时间 |
deleted | tinyint | NULL | 逻辑删除 |
b_num | int | NULL | 借阅次数 |
v_num | int | NULL | 查看次数 |
17:‘图书类型表’(z_booktype)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | id |
name | varchar | NULL | 类型名字 |
code | varchar | NULL | 代码 |
introduce | varchar | NULL | 简介 |
subarea | varchar | NULL | 分区 |
num | int | NULL | 排号 |
18:‘图书借阅记录’(z_borrow)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | id |
bn | varchar | NULL | 借阅号 |
user_id | bigint | NULL | 用户id |
book_id | int | NULL | 书本号 |
add_time | datetime | NULL | 借阅时间 |
overdue_date | date | NULL | 逾期日期 |
state | int | NULL | 借阅状态 |
return_time | datetime | NULL | 归还时间 |
remark | varchar | NULL | 备注 |
deleted | int | NULL | 逻辑删除 |
19:z_idCard(z_idCard)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | |
name | varchar | NULL | |
id_no | varchar | NULL | |
state | int | NULL | |
address | varchar | NULL | |
birthday | varchar | NULL | |
sex | int | NULL | |
age | int | NULL | |
user_id | int | NULL |
20:‘身份信息表’(z_idcard)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | id |
name | varchar | NULL | 名字 |
id_no | varchar | NULL | 身份证号码 |
state | int | NULL | 审核状态 |
remark | varchar | NULL | 验证结果信息 |
address | varchar | NULL | 地址 |
birthday | date | NULL | 生日 |
sex | int | NULL | 性别 |
age | int | NULL | 年龄 |
user_id | bigint | NULL | 用户id |
21:‘图书馆表’(z_library)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | |
name | varchar | NULL | 名字 |
short_name | varchar | NULL | 简称 |
code | varchar | NULL | 编码 |
address | varchar | NULL | 地址 |
admin | bigint | NULL | 管理员 |
introduce | varchar | NULL | 介绍 |
creator | bigint | NULL | 创建者 |
add_time | datetime | NULL | 创建时间 |
editor | bigint | NULL | 编辑者 |
edit_time | datetime | NULL | 编辑时间 |
deleted | tinyint | NULL | 逻辑删除 |
22:z_overdue(z_overdue)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | id |
dn | varchar | NULL | 逾期单号 |
book_id | int | NULL | 图书id |
borrow_id | int | NULL | 借阅id |
user_id | bigint | NULL | 用户id |
overdue_date | date | NULL | 逾期日期 |
return_date | date | NULL | 归还时间 |
pay_type | int | NULL | 支付方式 |
amount | decimal | NULL | 金额 |
pay_time | datetime | NULL | 支付时间 |
state | int | NULL | 状态 |
deleted | tinyint | NULL | 逻辑删除 |
remark | varchar | NULL | 备注 |
23:z_recharge(z_recharge)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | 主键 |
rn | varchar | NULL | 充值单号 |
user_id | bigint | NULL | 用户id |
pay_type | int | NULL | 支付方式 |
amount | decimal | NULL | 充值金额 |
state | int | NULL | 状态 |
remark | varchar | NULL | 备注 |
pay_time | datetime | NULL | 充值时间 |
deleted | int | NULL | 逻辑删除 |
24:z_section(z_section)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | id |
title | varchar | NULL | 章节 |
content | varchar | NULL | 内容 |
info_id | int | NULL | 关联图书 |
五、功能模块:
系统首页:用户可以在系统首页查看公告信息,借阅记录,图书检索,当前借阅情况,预期缴费,以及图书推荐等功能。
图书详情:详情包括图书的基本信息,图书的章节目录,以及图书所在的图书馆和剩余的可借书的状态等,点击扫码借阅可以借阅图书
图书分类:用户可以在图书分类页面根据不同的分类检索图书,并查看图书的详细信息,也可以通过扫码借阅功能进行借书。
个人中心:用户可以在个人中心页面查看图书借阅即将预期情况,预期未归还情况,欠缴费单量,以及借阅记录等信息。也可以进行在线充值、模拟借书还书操作,以及管理自己的个人信息。
运营驾驶舱:管理员可以在运营驾驶舱页面查看数据中心的统计信息。
用户管理:管理员可以在用户管理页面管理所有用户的账户信息以及充值记录。
图书管理:管理员可以在图书管理页面管理图书信息以及图书类型,同时也可以管理书店信息。
借阅管理:管理员可以在借阅管理页面查看所有借阅记录、预期缴费情况等信息。
用户公告管理:管理员可以在用户公告管理页面管理用户公告信息。
数据中心:管理员可以在数据中心页面查看图书统计信息、用户统计信息以及借阅统计信息等。
部门人员管理:管理员可以在部门人员管理页面管理部门信息和员工信息。
系统管理:管理员可以在系统管理页面管理内部公告和系统参数等。
六、代码示例:
@RestController
@RequestMapping(USER_APP_URL_PREFIX+"/borrow")
@Api(value = "借阅记录移动端接口", tags = "移动端接口")
public class UBorrowController {
@Autowired
private BorrowService borrowService;
@ApiOperation("借阅记录")
@GetMapping("/list")
public Object list(@RequestParam("state") Integer state) {
BorrowListParamDTO param = new BorrowListParamDTO(UserAuthUtil.getCurrentUserId(),state);
return borrowService.getBorrowList(param);
}
@ApiOperation("归还记录")
@GetMapping("/listPage")
public Object listPage(@RequestParam(value = "page", defaultValue = "") Integer page,
@RequestParam(value = "pageSize", defaultValue = "20") Integer pageSize,
@RequestParam(value = "state", defaultValue = "-1")Integer state) {
BorrowListParamDTO param = new BorrowListParamDTO(UserAuthUtil.getCurrentUserId(),state);
param.setPage(page);
param.setPageSize(pageSize);
return JsonResponseUtil.paginate(borrowService.getBorrowListPage(param));
}
@ApiOperation("删除借阅记录")
@Log(description = "删除借阅记录", type = "借阅记录管理")
@PostMapping("/delete")
public Object delete(@RequestBody CommonParamDTO param) {
if (borrowService.removeById(param.getId())) {
return JsonResponseUtil.success();
} else {
return JsonResponseUtil.error("删除失败");
}
}
@ApiOperation("续借")
@Log(description = "续借", type = "用户续借", isStaff = false)
@PostMapping("/renew")
public Object renew(@RequestBody CommonParamDTO param) {
UpdateWrapper<Borrow> wrapper = new UpdateWrapper<>();
//续上30天
wrapper.lambda().eq(Borrow::getId,param.getId()).eq(Borrow::getState,1)
.set(Borrow::getState,2).setSql("overdue_date = DATE_ADD(overdue_date, INTERVAL 30 DAY)");
if (borrowService.update(wrapper)) {
return JsonResponseUtil.success();
} else {
return JsonResponseUtil.error("续借失败");
}
}
@ApiOperation("借阅详情")
@GetMapping("/info")
public Object info(@RequestParam("id")Integer id) {
return borrowService.getBorrowInfo(id);
}
}
七、项目总结:
开发基于JAVA+SpringBoot+UniApp+Vue的前后端分离的手机移动端图书借阅平台是作为毕设作品进行设计的,这个毕设作品是我在校进行知识学习的一个毕业考核项目,也是检验我通过网络工具,图书工具等学习工具进行自学的能力水平,让我在根据程序开发的需求分析初步完成程序功能之外,还接触了程序的测试过程,了解程序测试的具体的过程,以及遇到问题怎么去寻找相应的解决办法等等,毕业作品的制作以及设计才是学校对我真正的考验。
在程序软件没能进行开发之前,我去了学校的图书馆借了有关数据库操作的书籍,在查看了sqlserver和mysql两种数据库的相关知识之后,我最后选择了我比较熟悉的mysql数据库。在编程语言的抉择上,由于自己之前接触过Java程序的开发,所以为了让我尽快在短时间内完成程序制作,我确定用Java编程语言进行程序编程。另外我从百度上下载了很多的有关信息增加,信息删除等操作的源代码,并通过不断调试以及完成配套的数据库的设计,开始完成程序的各个部分的功能。每当我粗心大意,致使我深陷程序开发困扰不能自拔之时,值得庆幸的是,我就会得到老师,还有我的寝室同学的耐心指导。
历经长达几个月的毕业作品制作,我凭借自己的知识技能,还有大家的指导帮助,能够在学校规定的时间段之内提交毕业作品。虽然已经算是完成了毕业作品,但是付出了这么多心血,还是想把这个作品做得更加完美一点。针对我的毕业作品学生信息管理系统,我觉得还有很多方面需要完善,第一就是界面上需要细微调整,比如色彩搭配有点违背广众的审美,需要细微调整,还有系统里面的字体大小也需要调大一点,太小的字体看起来有些费眼。然后在程序的功能上因为自己的入门开发水平的影响,所以目前只能做到这个境界,这个系统相比其他类似系统来说功能很简单,逻辑结构设计得也比较合理。
自己一个人完成程序的开发,我不仅亲自体验了程序的开发流程,体验到了程序开发的各种不易。这种体验也还加深了我对知识的尊重。学海无涯,知识不是大学短短四年就能学完的,在大学学到的知识在最终经历检验时,才会深深地明白自己的知识积累原来还很浅薄。所以今后不管身在何处,自己的学习心态一定要时刻体现出来,要深刻明白知识学到手里就是自己的。同时,自己也不必过多抱怨学到的知识没有用处,相信学到的知识总会有派上用处的那天。不要等到需要用时再去学习知识,那样就会导致自己错失很多本该属于自己的机遇。
八、源码获取:
大家点赞、收藏、关注、评论啦 、查看获取项目下载链接,博主联系方式
链接点击直达:下载链接