|
| 1 | +# 智能图书馆开源文档 |
| 2 | + |
| 3 | +>作者:[程序员小白条](https://luoye6.github.io/) |
| 4 | +> |
| 5 | +>[Gitee 主页](https://gitee.com/falle22222n-leaves) |
| 6 | +> |
| 7 | +>[GitHub 主页](https://github.com/luoye6) |
| 8 | +
|
1 | 9 | ## ☀️新手必读
|
2 | 10 |
|
3 | 11 | + 本项目拥有完整的API后台接口文档(文尾)(重点⭐)
|
|
8 | 16 | + [项目后端地址](https://gitee.com/falle22222n-leaves/vue_-book-manage-system_backend)
|
9 | 17 | + [项目部署视频](https://www.bilibili.com/video/BV1314y1Z7SS/?pop_share=1&vd_source=e40a9464b71684502f289cff3f51514f)
|
10 | 18 |
|
| 19 | + [](https://gitee.com/falle22222n-leaves/vue_-book-manage-system) [](https://gitee.com/falle22222n-leaves) [](https://gitee.com/falle22222n-leaves/vue_-book-manage-system/members) [](https://github.com/luoye6) |
| 20 | + |
| 21 | +## ☀️个人介绍 |
| 22 | + |
| 23 | + |
| 24 | + |
| 25 | + |
| 26 | + |
11 | 27 | ## ☀️技术栈介绍
|
12 | 28 |
|
13 | 29 | ### ☃️前端主要技术栈
|
|
47 | 63 | | fastjson | 阿里巴巴的json对象转化工具 | 1.2.83 |
|
48 | 64 | | hutool | hutool工具包(简化开发工具类) | [文档](https://hutool.cn/docs/#/) |
|
49 | 65 |
|
| 66 | +## ☀️架构 |
| 67 | + |
| 68 | + |
| 69 | + |
50 | 70 | ## ☀️项目简介
|
51 | 71 |
|
52 | 72 | + 主要使用Vue2和SpringBoot2实现
|
|
73 | 93 | + 数据返回格式使用JSON
|
74 | 94 | + 后端采用权限拦截器进行权限校验,并检查登录情况
|
75 | 95 | + 添加全局异常处理机制,捕获异常,增强系统健壮性
|
76 |
| -+ 前端用Echarts展示借阅量,文字和图片结合 |
| 96 | ++ 前端用Echarts可视化库实现了图书借阅的分析图标(折线图、饼图),并通过loading配置提高加载体验。 |
77 | 97 | + 留言组件采用弹幕形式,贴合用户的喜好。
|
| 98 | ++ 引入knife4j依赖,使用 Swagger + Knife4j 自动生成 OpenAPI 规范的接口文档,前端可以在此基础上使用插件自动生成接口请求代码,降低前后端协作成本 |
| 99 | ++ 使用ElementUI组件库进行前端界面搭建,快速实现页面生成,并实现了前后端统一权限管理,多环境切换等能力。 |
| 100 | ++ 基于MyBatis Plus框架的QueryWrapper实现对MySQL数据库的灵活查询,并配合MyBatisX插件自动生成后端CRUD基础代码,减少重复工作。 |
78 | 101 |
|
79 | 102 | ### ⭐用户模块功能介绍
|
80 | 103 |
|
81 |
| - |
| 104 | + |
82 | 105 |
|
83 | 106 | + 图书查询功能:分页构造器缓解数据过大压力,后端可设置请求数防止爬虫请求数过大,服务器负载过大。模糊查询进行字段搜索。表格均可导出PDF和EXCEL。
|
84 | 107 | + 读者规则功能:查询现有的借阅规则,借阅规则包括:借阅编号,可借阅图书数量,可借阅天数,可借阅图书馆,过期扣费/天。
|
|
92 | 115 |
|
93 | 116 | ### ⭐图书管理员模块功能介绍
|
94 | 117 |
|
95 |
| - |
| 118 | + |
96 | 119 |
|
97 | 120 | + 借阅图书: 图书管理员输入借阅证号(用户)和要借的图书编号和当前的时间,点击借阅。
|
98 | 121 | + 归还图书: 输入图书编号查看图书是否逾期,并且可以设置违规信息,然后选择是否归还图书
|
|
103 | 126 |
|
104 | 127 | ### ⭐系统管理员模块功能介绍
|
105 | 128 |
|
106 |
| - |
| 129 | + |
107 | 130 |
|
108 | 131 | + 书籍管理: 可以查询当前的所有图书,显示图书编号,图书昵称,作者,图书馆,分类,位置,状态,描述。可以进行添加,修改,删除图书。利用分页构造器实现批量查询。利用模糊查询实现图书搜索功能。利用插件实现PDF和EXCEL导出。
|
109 | 132 | + 书籍类型: 显示查询当前的所有图书类型,可以进行添加,修改,删除图书类型,利用分页构造器实现批量查询,缓解数据压力。
|
|
250 | 273 |
|
251 | 274 | **首页轮播图演示**
|
252 | 275 |
|
253 |
| - |
| 276 | + |
254 | 277 |
|
255 | 278 | **图书查询演示**
|
256 | 279 |
|
257 |
| - |
| 280 | + |
258 | 281 |
|
259 | 282 | **读者规则演示**
|
260 | 283 |
|
261 |
| - |
| 284 | + |
262 | 285 |
|
263 | 286 | **查看公告演示**
|
264 | 287 |
|
265 |
| - |
| 288 | + |
266 | 289 |
|
267 | 290 | **个人信息演示**
|
268 | 291 |
|
269 |
| - |
| 292 | + |
270 | 293 |
|
271 | 294 | **借阅信息演示**
|
272 | 295 |
|
273 |
| - |
| 296 | + |
274 | 297 |
|
275 | 298 | **违章信息演示**
|
276 | 299 |
|
277 |
| - |
| 300 | + |
278 | 301 |
|
279 | 302 | **读者留言演示**
|
280 | 303 |
|
281 |
| - |
| 304 | + |
| 305 | + |
| 306 | +**智能推荐演示** |
| 307 | + |
| 308 | + |
282 | 309 |
|
283 | 310 | ### 图书管理员功能图
|
284 | 311 |
|
285 | 312 | **借阅图书演示**
|
286 | 313 |
|
287 |
| - |
| 314 | + |
288 | 315 |
|
289 | 316 | **归还图书演示**
|
290 | 317 |
|
291 |
| - |
| 318 | + |
292 | 319 |
|
293 | 320 | **借书报表演示**
|
294 | 321 |
|
295 |
| - |
| 322 | + |
296 | 323 |
|
297 | 324 | **还书报表演示**
|
298 | 325 |
|
299 |
| - |
| 326 | + |
300 | 327 |
|
301 | 328 | **发布公告演示**
|
302 | 329 |
|
303 |
| - |
| 330 | + |
304 | 331 |
|
305 | 332 | ### 系统管理员功能图
|
306 | 333 |
|
307 |
| -+ 由于篇幅受限,系统管理员功能图只展示一个图表的功能。 |
| 334 | ++ 由于篇幅受限,系统功能展示主要功能。 |
308 | 335 |
|
309 | 336 | **系统管理演示**
|
310 | 337 |
|
311 |
| - |
| 338 | + |
| 339 | + |
| 340 | + |
| 341 | + |
| 342 | +**智能分析演示** |
| 343 | + |
| 344 | + |
312 | 345 |
|
313 | 346 | ## 🐼部署项目
|
314 | 347 |
|
315 |
| - |
| 348 | + |
316 | 349 |
|
317 | 350 | + 可以下载ZIP压缩包或者使用克隆(Git clone)
|
318 | 351 | + 复制http或者ssh的链接(github建议ssh,gittee都可以)
|
319 | 352 | + 在D盘新建一个文件夹,点击进入该文件夹,右键Git Bash Here
|
320 | 353 |
|
321 |
| - |
| 354 | + |
322 | 355 |
|
323 | 356 | + 还没有下载Git或者不会Git的建议先看基础教程(30分钟左右)
|
324 | 357 |
|
|
353 | 386 | ⭐
|
354 | 387 |
|
355 | 388 | + **QQ:909088445**
|
356 |
| - |
357 |
| -+ 晚上在线,建议先自己寻找问题,实在实现不了,可以滴我 |
358 |
| -+ 需要定制化项目和修改项目的某些的功能也可以加我 |
| 389 | ++ 一般晚上在线,建议先自己寻找问题!!! |
| 390 | ++ 开源免费, 定制化和调试项目付费。 |
359 | 391 |
|
360 | 392 | ## 🐼项目API接口文档
|
361 | 393 |
|
|
395 | 427 |
|
396 | 428 | ### 2023-5-1
|
397 | 429 |
|
398 |
| -1.添加“系统管理员”权限的系统管理功能,添加借书类型分析统计图(饼图)采用Echarts。 |
| 430 | +1.添加“系统管理员”权限的系统管理功能,**添加借书类型分析统计图(饼图)**采用Echarts。 |
| 431 | + |
| 432 | +2.优化请求在没有收到数据时的显示卡顿的情况,添加“加载中”状态,**使用v-loading**(ElementUI组件库),**优化用户人机交互体验**,在服务器调用接口缓慢的情况下,给予**良好的交互**。 |
| 433 | + |
| 434 | +3.轮播图优化:**压缩图片体积**,另外使用Swiper的**懒加载**,实现图片加载中状态,然后图片完全加载完成后才显示图片,**优化用户体验过程**。 |
| 435 | + |
| 436 | +4.后端**新增自定义错误码枚举类**,可以自定义状态码进行返回,保留原有枚举类。 |
| 437 | + |
| 438 | +5.前端优化部分表格内容展示,当纵向内容过长,**设置了表格最大高度**,超出就会显示滑动窗口。优化表格列宽度,**提高表格美观度**。 |
| 439 | + |
| 440 | +6.**添加**书籍管理组件的**批量删除图书**功能,优化管理员体验,不用单个删除图书,**提高效率**。 |
| 441 | + |
| 442 | +7.Jmeter进行压力测试,服务器接口在**100个用户并发**发送请求的情况下,**QPS达到50**以上。 |
| 443 | + |
| 444 | +### 2023-5-20 |
| 445 | + |
| 446 | +**后端更新情况** |
| 447 | + |
| 448 | +1.防止前端抓包被获取明文密码,前端输入密码,进行md5加密(混合盐值,防止碰撞),后端直接与数据库加密后的密码比较,相等代表登录成功。提高系统**安全性**。 |
| 449 | + |
| 450 | +2.整改Controller层,**将业务代码全部放入Service层**,由Controller调用Service服务,并修改了@Transactional注解位置到业务层,减少耦合度,让Controller减少臃肿。做到对扩展开放,对修改关闭。后续考虑运用**设计模式**进行优化代码和**多线程**知识提高在**高并发**下接口响应的速度。 |
| 451 | + |
| 452 | +3.对照阿里巴巴手册进行代码修改,将警告进行减少,代码更加**优雅、规范**。 |
| 453 | + |
| 454 | +4.**修复BUG**: 借阅时间为空,造成服务器被击穿。归还日期为空,仍然显示借书成功。(解决方法:时间参数进行校验,判断是否为空) |
| 455 | + |
| 456 | +5.**工具类增加情况**:SQLUtils(防止SQL注入),NetUtils(网络工具类) |
| 457 | + |
| 458 | +**前端更新情况** |
| 459 | + |
| 460 | +1.将路由加载方式,改为懒加载,利用懒加载可以有效分担首页加载压力,**减少首页加载用时**。 |
| 461 | + |
| 462 | +2.添加404页面,当用户访问请求地址不存在的页面,直接跳转到404页面,**提高用户体验度**。 |
| 463 | + |
| 464 | +3.添加按钮的加载中状态,**优化人机交互**,提升用户体验度。修改按钮:登录按钮,其他按钮如果有需要可以自定义去修改,增加:loading="loading"即可。 |
| 465 | + |
| 466 | +**Bug修复情况** |
| 467 | + |
| 468 | +1.11位图书编号可以借,但却**无法进行逾期检查**,发现方法参数还是Integer,上次把借书和还书的改成Long了,逾期查看还没改成Long,因此出现问题,现在已经修复。 |
| 469 | + |
| 470 | +### 2023-6-10 |
| 471 | + |
| 472 | +**前端更新情况** |
| 473 | + |
| 474 | +1.在某些页面添加全屏功能按钮,**方便用户放大查看表格数据**。 |
| 475 | + |
| 476 | +2.增加了GitHub和Gitee的地址图标,**方便进行项目拉取和克隆**。 |
| 477 | + |
| 478 | +3.读者留言组件,留言功能进行强化,防止无意义的数字、字母、空格出现在数据,后续考虑 |
| 479 | + |
| 480 | +4.读者留言组件,**利用lodash进行节流**,5秒内只可发送一次网络请求,防止恶意刷无效留言。 |
| 481 | + |
| 482 | +**后端更新情况** |
| 483 | + |
| 484 | +1.后端添加利用EasyExcel进行图书的**批量导入功能**,实现与实际生活中利用Excel存储一些图书数据的交互功能,**提高导入效率**,和爬虫功能效果相同,都可以实现大数据量情况下的导入,推荐利用EasyExcel进行批量导入,时间会比爬虫会更快。 |
| 485 | + |
| 486 | +**Bug修复情况** |
| 487 | + |
| 488 | +1.修改用户页面的修改密码功能,因为上次更新已经加了盐值,但是后端代码逻辑没有进行更改,本次修复"在修改密码后无法登录的情况",原因是因为后端没有加盐值,已修复。 |
| 489 | + |
| 490 | +2.修复系统管理员修改借阅证的密码然后就登录不上了,原因跟第一条Bug是一样的,因为后端的盐值没有进行添加,已修复。 |
| 491 | + |
| 492 | +3.修复系统管理员在书籍管理功能时候,直接点击修改书籍,发现书籍的分类是错误的,因为前端只在添加书籍的对话框发了获取分类的请求,修改对话框的时候忘记添加了获取分类的请求,已修复。 |
| 493 | + |
| 494 | +### 2023-9 |
| 495 | + |
| 496 | +**前端更新情况** |
| 497 | + |
| 498 | +1.增加**智能推荐页面,**能够与AI进行交流**,用户输入自己喜欢xxx类的书籍,AI能够在现有数据库中进行分析,**然后给用户作出推荐**,调用的是国内AI模型,底层是OpenAI。 |
| 499 | + |
| 500 | +2.增加**智能分析页面**,输入分析目标和图标类型和Excel文件,AI生成分析结论和可视化图标,大大提高效率,**减少人力分析成本**。 |
| 501 | + |
| 502 | +3.增加系统管理员可以利用在前端**利用Excel文件批量上传图书**的功能(测试中),仅供参考。 |
| 503 | + |
| 504 | +**后端更新情况** |
| 505 | + |
| 506 | +1.增加智能分析的接口和获取最近5条聊天记录的接口,利用**线程池**和**Future**进行**超时请求处理**,如果接口调用超过40秒直接返回错误信息。 |
| 507 | + |
| 508 | +2.利用Google的Guava中的RateLimiter进行限流控制,**每秒钟只允许一个请求通过**,防止刷量行为。 |
| 509 | + |
| 510 | +### 2023-11 |
| 511 | + |
| 512 | +**后端更新情况** |
399 | 513 |
|
400 |
| -2.优化请求在没有收到数据时的显示卡顿的情况,添加“加载中”状态,使用v-loading(ElementUI组件库),优化用户人机交互体验,在服务器调用接口缓慢的情况下,给予良好的交互。 |
| 514 | +1.将用户聊天的AI模型切换为阿里的通义千问Plus模型,并且**支持多轮会话的历史记录**,**不再使用讯飞星火的AI模型**,但仍保留工具类。主要是为了可以更快的得到响应,而且阿里的**文档更加详细**,可以**定制话术**,在用户输入无关图书推荐的内容时候,直接**拒绝回答**。 |
401 | 515 |
|
402 |
| -3.轮播图优化:压缩图片体积,另外使用Swiper的懒加载,实现图片加载中状态,然后图片完全加载完成后才显示图片,优化用户体验过程。 |
| 516 | +2.添加一个 IncSyncDeleteAIMessage **定时任务**,每天将会**删除由于系统错误等原因AI回复失败**,导致内容为空的记录,并且会为这些用户**恢复接口的次数**,**后续可能会选择 RabbitMQ**,将失败的消息放入消息队列,然后**确保失败的消息被消费**。 |
403 | 517 |
|
404 |
| -4.后端新增自定义错误码枚举类,可以自定义状态码进行返回,保留原有枚举类。 |
| 518 | +**前端更新情况** |
405 | 519 |
|
406 |
| -5.前端优化部分表格内容展示,当纵向内容过长,设置了表格最大高度,超出就会显示滑动窗口。优化表格列宽度,提高表格美观度。 |
| 520 | +1.将三个登录页面的背景图和头像改为存储在 assets 文件夹的 images 中,**主要是为使用项目的人考虑**,很多人不懂图床技术,我这边暂时将登录页面改成静态图。 |
407 | 521 |
|
408 |
| -6.添加书籍管理组件的批量删除图书功能,优化管理员体验,不用单个删除图书,提高效率。 |
| 522 | +2.权限切换的提示优化,**在图标上面现在有登录权限切换的文字样式**,提示用户有多个登录页面可以切换。 |
0 commit comments