# 图书借阅系统 **Repository Path**: Sober12a/book-borrowing-system ## Basic Information - **Project Name**: 图书借阅系统 - **Description**: 用于图书借阅 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 7 - **Forks**: 1 - **Created**: 2023-05-17 - **Last Updated**: 2025-05-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 借书系统 ## 系统介绍 本系统是由管理系统和用户借书移动端组成的,管理员可以进行用户,图书,移动端界面,设置等管理,用户可以在移动端借书,借书可以有借阅列表,有借阅时间限制,超出时间则会加一次逾期,超过三次则进行封号处理(管理员可以解封)。该系统主要参考[lilishop商城](https://gitee.com/beijing_hongye_huicheng)开源项目,在此基础上从头开始布置该系统。 ## 所使用技术 ![jishu](./images/jishu.png) ## 功能界面介绍 ### 后台管理 后端采用Spring Boot进行搭建和配置相关功能,如redis来进行缓存,MyBatis-Plus来进行数据库交互等,前端使用Vue2来搭建,用ElementUI作为基础UI #### 1.登录界面 登录界面是采用elementUI进行搭建,同时后端采用kaptcha进行验证码生成,redis保存验证码结果,来用于后续的验证,采用spring Security进行用户登录验证和解决跨域问题。若通过验证,会产生token传到前端保存在 localstore,来进行后续的身份验证 ![login](./images/login.png) ![token](./images/token.png) #### 2.用户管理 点击用户菜单,可以进入用户管理界面,可以对用户进行增改查的操作,在黑名单中,可以查看被禁用的用户,可以进行账号的恢复 ![user](images/user.png) ![user](images/user1.png) ![user](images/user2.png) ![user](images/user3.png) #### 3.图书管理 在图书管理中,可以进行对图书的增删改查,同时也可以增删改查图书的分类,以及图书的校区分类 ![book](images/book.png) ![book](images/book1.png) ![book](images/book2.png) ![book](images/book3.png) ![book](images/book4.png) ![book](images/book5.png) #### 4.借阅列表 借阅列表主要是查看用户借阅信息 ![borrow](images/borrow.png) #### 5.移动端前端界面展示 该功能主要参考lilishop,在此基础上进行关联修改,相当与低代码开发,用可视化界面进行移动端前端布置。该功能主要是通过组件化来完成,后台进行装修后同时保存数据,移动端可以读取该数据进行展示 ![floor](images/floor.png) ![floor](images/floor2.png) ![floor](images/floor3.png) #### 6.文章管理 文章主要是用文字说明对用户介绍,管理端可以进行增删改查,同时也可以进行文章的分类修改,采用tinymce富文本来进行内容输入 ![article](images/article1.png) ![article](images/article2.png) ![article](images/article3.png) #### 7.意见反馈 意见反馈之用于收集用户所反馈的问题 ![feedback](images/feedback.png) #### 8.站内信 站内信用户发送给用户信息,通知用户一些消息,如图书的逾期(当图书逾期是自动发送),以及一些通知 ![message](images/message.png) #### 9管理员管理 可以进行管理员的增删改查(此处最好配合权限来使用),同时右上角头像也可以进行当前管理员的信息修改 ![admin](images/admin1.png) ![admin](images/admin2.png) #### 10.系统设置以及OSS资源管理 系统设置主要是对逾期时间进行设置(为了方便测试,单位是秒,如果是单位是天,可以进行数值相乘),和静态资源地址的配置,同时可以进行OSS资源的管理 ![setting](images/setting.png) ![setting](images/setting1.png) ![OSS](images/OSS.png) ### 移动端 后端同样采用Spring Boot进行搭建和配置相关功能,前端使用Uniapp来进行搭建 #### 1.登录注册,以及忘记密码界面 用户用户登录和注册,采用滑块验证,滑块和图片是从数据库中获取,进行图片的裁剪,同时记录位移值在redis,前端进行滑块后记录滑块位移值,来进行验证。注册同理,同时由于是测试环境,未开通短信服务,验证码为0 ![login](images/login1_uniapp.png) ![login](images/login2_uniapp.png) ![register](images/register.png) ![forgetPassword](images/forgetpassword.png) #### 2.首页 首页的界面,是通过后台读取数据获得来进行展示。 ![home](images/home.png) #### 3.分类 分类界面是从后台获取图书分类的数据并展示,点击相关分类进入商品列表 ![category](images/category.png) #### 4.图书展示 点击相关分类,或者搜索可以进入图书展示界面,可以查看相关商品,可以对图书进行借阅量排序,或者对图书进行校区或者类型筛选,点击图书后可以进行图书借阅,可以进行图书的收藏和分享。 ![book](images/book1_uniapp.png) ![book](images/book2_uniapp.png) ![book](images/book3_uniapp.png) #### 5.借阅图书 在图书展示界面借阅图书后,就会跳转到图书界面,图书不能重复借阅,借阅数量不可以超过3本,借阅后跳转到借阅列表,会对借阅图书进行计时,计时数据由后台管理设置,超过后就会逾期,用户会增加一次逾期数量,同时发送消息,超过3次后就会拉黑处理, ![borrow](images/borrow1_uniapp.png) ![borrow](images/borrow2_uniapp.png) ![borrow](images/borrow3_uniapp.png) ![borrow](images/borrow4_uniapp.png) #### 6.其他功能 其他主要是个人界面,可以查看自己的浏览记录,借阅记录,收藏图书,意见反馈,修改自己的个人信息等等。 ![mine](images/mine.png) ## 本地搭建 本文档环境准备不使用docker方式搭建,若要使用docker方式搭建,请参考[官方文档](https://docs.pickmall.cn/deploy/win/deploy.html) **本文档电脑操作系统:Windows11 家庭版** ### 一.环境准备 #### 1.Mysql Mysql下载[参考文档](https://blog.csdn.net/weixin_42869365/article/details/83472466), 下载对应的Mysql版本后推荐下载Navicat,方便数据库的使用 下载完成后在导入数据库 把数据库导入到本地的数据库中,下面是导入后的样子 ![sql](images/sql.png) #### 2.Redis Redis 具备一定持久层的功能,也可以作为一种缓存工具。对于NoSQL数据库而言,作为持久层,它存储的数据是半结构化的没这就意味着计算机在读入内存中有更少的规则,读入速度更快。 [Redius下载](https://github.com/tporadowski/redis/releases) 下载完成解压后就可以使用。 下载后的目录 ![Redius1](images/redius1.png) #### 3.Rocketmq RocketMQ是一款分布式、队列模型的消息中间件,具有以下特点 1、’能够保证严格的消息顺序 2、提供丰富的消息拉取模式 3、高效的订阅者水平扩展能力 4、实时的消息订阅机制 5、亿级消息堆积能力 [Rocketmq官方下载](https://rocketmq.apache.org/download/) 选择Binary下载 下载完成可以参考[这篇文档](https://blog.csdn.net/caoli201314/article/details/119798973?ops_request_misc=&request_id=&biz_id=102&utm_term=rocket-server%E6%98%AF%E4%BB%80%E4%B9%885&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-119798973.142^v73^wechat_v2,201^v4^add_ask,239^v2^insert_chatgpt&spm=1018.2226.3001.4187),只需第一步加入到系统环境变量中。注意目录不要带空格,最好不使用中文 #### 4.node.js 安装比较简单见[node.js安装博客](https://blog.csdn.net/qq_43647051/article/details/114947117?ops_request_misc=&request_id=&biz_id=102&utm_term=node.jsV14.16.0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-2-114947117.142^v73^wechat_v2,201^v4^add_ask,239^v2^insert_chatgpt&spm=1018.2226.3001.4187) ### 二。环境搭建 #### 1.Mysql 只要注意把数据库内容导入到数据库,以及在后端源码中application.yml修改数据库为本地数据库 #### 2.Redius 在下载Redius目录中找到redis-server.exe启动 ![redius](images/rediusStart1.png) 启动后界面 ![redius](images/rediusStart2.png) #### 4.Rocketmq 在安装目录的bin目录下打开命令窗口 分两个窗口执行 ``` .\mqnamesrv .\mqbroker -n 127.0.0.1:9876 ``` 执行后的界面 ![rocketmq](images/roocketmq1.png) ![rocketmq](images/rocketmq2.png) ### 三,后端部署 检查一下application.yml配置文件中,准备的环境是否是本地ip地址,也就是127.0.0.1,以及数据库导入和数据库配置 然后打开每个api的main目录下的resources的application.yml,修改数据库配置和redis配置,当然也可以配置端口,只要和前端对应 ![houduan](images/houduan1.png) 若已经开启redis和rocketmq就可以启动 ### 四,管理端前端部署 首先修改的api请求地址,在每个模块的public/config.js,改成本地地址,修改测试环境的地址就可以,注意端口对应 ![qianduan](images/qianduan1.png) 下在完成后在对应模块的命令窗口依次输入 ``` npm install npm run serve ``` ### 五,移动端部署 先下载[hbuliderx](https://www.dcloud.io/hbuilderx.html) 下载完成后界面 ![HbuilerX](images/HbuilderX.png) 我这里展示内置浏览器的运行 ![HbuilerX](images/uniapp.png) 注意更改在config/api.js下配置地址 ``` // 开发环境 const dev = { //im: "http://127.0.0.1:8885", buyer: "http://127.0.0.1:8888", }; // 生产环境 const prod = { im: "https://im-api.hznunxc.cn", buyer: "https://buyer-api.hznunxc.cn", }; ``` ![qianduan](images/uniapp1.png)