• 基于Springboot的闲置图书共享系统设计与实现(源码+论文+开题报告+PPT+部署)


    项目描述

    临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问题,今天给大家介绍一篇基于Springboot的闲置图书共享系统设计与实现。

    功能需求

    本系统从需求分析和用户的操作角度,为保证图书的共享。下面对整个系统功能前端结构的设计和梳理,前端模块结构图如图1所示:

    在这里插入图片描述

    基于springboot的闲置图书共享系统业务处理后端管理员管理模块结构图如图2所示:

    在这里插入图片描述

    系统功能模块框架图

    在这里插入图片描述

    部分效果图

    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    部分代码
    
        @PostMapping("/saveBookInfo")
        public ApiResult<BookInfo> saveBookInfo(
            @SessionAttribute(name = SystemConstant.ACTIVE_USER) ActiveUser activeUser,
            BookInfo bookInfo,
            @RequestBody MultipartFile file) {
            if (file != null) {
                try {
                    String extension = FilenameUtils.getExtension(file.getOriginalFilename());
                    String nextId = snowflake.nextId().toString();
                    // 上传并返回新文件名称
                    String fileName = nextId + "." + extension;
                    file.transferTo(new File(baseDir, fileName));
    
                    bookInfo.setCoverImage(fileName);
                } catch (Exception e) {
                    return apiResultComponent.error(ApiResultCodeEnum.UPLOAD_ERROR);
                }
            }
    
            bookInfo.setOwnerUserId(activeUser.getUserId());
            Boolean saveBookInfo = bookInfoService.saveBookInfo(bookInfo);
            if (saveBookInfo) {
                BookInfo bookInfoById = bookInfoService.getBookInfoById(bookInfo.getId());
                return apiResultComponent.success(bookInfoById);
            }
            return apiResultComponent.error(ApiResultCodeEnum.ADD_ERROR);
        }
    
        @PostMapping("/updateBookInfo")
        public ApiResult<BookInfo> updateBookInfo(BookInfo bookInfo, @RequestBody MultipartFile file) {
            if (file != null) {
                try {
                    String extension = FilenameUtils.getExtension(file.getOriginalFilename());
                    String nextId = snowflake.nextId().toString();
                    // 上传并返回新文件名称
                    String fileName = nextId + "." + extension;
                    file.transferTo(new File(baseDir, fileName));
    
                    String coverImage = bookInfo.getCoverImage();
                    FileUtils.deleteFile(new File(baseDir, coverImage).getAbsolutePath());
                    bookInfo.setCoverImage(fileName);
                } catch (Exception e) {
                    return apiResultComponent.error(ApiResultCodeEnum.UPLOAD_ERROR);
                }
            }
    
            Boolean updateBookInfo = bookInfoService.updateBookInfo(bookInfo);
            if (updateBookInfo) {
                BookInfo bookInfoById = bookInfoService.getBookInfoById(bookInfo.getId());
                return apiResultComponent.success(bookInfoById);
            }
            return apiResultComponent.error(ApiResultCodeEnum.UPDATE_ERROR);
        }
    
        @PostMapping("/borrowBook")
        public ApiResult<BookInfo> borrowBook(@SessionAttribute(SystemConstant.ACTIVE_USER) ActiveUser activeUser,
            @RequestBody BookInfo bookInfo) {
            Integer id = bookInfo.getId();
    
            BookInfo bookInfoById = bookInfoService.getBookInfoById(id);
            if (bookInfoById == null) {
                return apiResultComponent.error(ApiResultCodeEnum.BOOK_INFO_NULL);
            }
            bookInfo.setBorrowed(true);
            bookInfo.setBorrowUserId(activeUser.getUserId());
            bookInfo.setBorrowedTime(new Date());
    
            bookInfoService.updateBookInfo(bookInfo);
            bookInfoById = bookInfoService.getBookInfoById(id);
            return apiResultComponent.success(bookInfoById);
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72

    系统部署

    系统开发后,在生产环境配置项目运行环境,具体步骤如下:
    安装linux或者windows10操作系统;
    安装JDK1.8并配置环境变量;
    安装MySQL5.7版本数据库,创建数据库并执行脚本创建表;

    本项目用到的技术和框架

    1.开发语言:Java
    2.开发模式:B/S
    3.数据库:MySQL5.7
    4.框架:Springboot+Mybaits
    5.前端语言vue

    本项目中的关键点

    此系统的开发采用java语言开发,基于B/S结构,这些开发环境使系统更加完善。使用到的工具和技术都是开源免费的。

    环境工具

    开发工具 IDEA
    硬件:笔记本电脑;
    软件:Tomcat8.0 Web服务器、Navicat数据库客户端、MySQL;
    操作系统:Windows 10;
    其它软件:截图工具、常用浏览器;
    以上是本系统的部分功能展示,如果你的选题正好相符,那么可以做毕业设计或课程设计使用。

  • 相关阅读:
    记一次 .NET 某自动化采集软件 崩溃分析
    python运行带参数的python文件
    STL常用容器的模拟实现
    三维重建一种实现算法
    芯片IC的mask位置
    GPU架构变迁之AI系统视角:从费米到安培
    CentOS7安装jdk
    Leetcode 438. 找到字符串中所有字母异位词
    MySQL-创建用户、赋权限
    牛客--放苹果python
  • 原文地址:https://blog.csdn.net/mxg74110/article/details/133806988