云借阅图书管理系统

这篇具有很好参考价值的文章主要介绍了云借阅图书管理系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

         基于SSM(Spring + Spring MVC + Mybatis)框架开发的一个较为简单的云借阅图书管理系统,虽然比较简单,但是耐心的做完会对 Spring框架 和 Spring MVC框架 以及 Mybatis框架 这三个框架的整合开发有一个较好的理解下面我就来简单的研究一下代码,全部的代码文件,我会放在结尾。

目录

前言

一、需求分析

二、数据库设计

三、部分功能和全部模块展示

四、核心功能代码(主要展示业务逻辑层的核心代码)

五、文件结构

总结


一、需求分析

云借阅图书管理系统

二、数据库设计

用户表(user)

云借阅图书管理系统

图书信息表(book)

云借阅图书管理系统

借阅记录表(record)

云借阅图书管理系统

 三、部分功能和全部模块展示

登录模块

云借阅图书管理系统

新书推荐模块

云借阅图书管理系统

 图书借阅模块 

云借阅图书管理系统

当前借阅模块

云借阅图书管理系统

借阅记录模块

云借阅图书管理系统

添加图书功能

云借阅图书管理系统

编辑图书功能

云借阅图书管理系统

四、核心功能代码(主要展示业务逻辑层的核心代码)

登录功能模块

package com.demo.service.Impl;

import com.demo.domain.User;
import com.demo.mapper.UserMapper;
import com.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * @BelongsProject: CloudLibraryManagementSystem
 * @BelongsPackage: com.demo.service.Impl
 * @Author: 云边小屋(My.Tears)
 * @CreateTime: 2023-03-21  09:14
 * @Description: TODO
 * @Version: 1.0
 */

@Service
public class UserServiceImpl implements UserService {
    // 注入UserMapper对象
    private UserMapper userMapper;

    @Autowired
    public UserServiceImpl(UserMapper userMapper) {
        this.userMapper = userMapper;
    }

    // 通过User的用户账户和用户密码查询用户信息
    @Override
    public User login(User user) {

        return userMapper.login(user);
    }
}

图书功能模块

package com.demo.service.Impl;

import com.demo.domain.Book;
import com.demo.domain.Record;
import com.demo.domain.User;
import com.demo.entity.PageResult;
import com.demo.mapper.BookMapper;
import com.demo.service.BookService;
import com.demo.service.RecordService;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @BelongsProject: CloudLibraryManagementSystem
 * @BelongsPackage: com.demo.service.Impl
 * @Author: 云边小屋(My.Tears)
 * @CreateTime: 2023-03-21  21:52
 * @Description: TODO
 * @Version: 1.0
 */
@Service
// 开启事务注解 在操作多个数据库的时候要么同时成功 要么同时失败
@Transactional
public class BookServiceImpl implements BookService {


    // 注入BookMapper对象
    private BookMapper bookMapper;

    // 注入RecordService对象
    private RecordService recordService;

    @Autowired
    public BookServiceImpl(BookMapper bookMapper, RecordService recordService) {
        this.bookMapper = bookMapper;
        this.recordService = recordService;
    }


    /**
     * 根据当前页码和每页需要展示的数据条数 查询最新上架的图书信息 (规定每页只存在几条图书信息)
     *
     * @param pageNum  当前页码
     * @param pageSize 每页显示的数量
     * @return
     */

    @Override
    public PageResult selectNewBooks(Integer pageNum, Integer pageSize) {

        // 设置分页查询的参数 开始分页
        PageHelper.startPage(pageNum, pageSize);
        // 将查询到的结果集 给Page
        Page<Book> page = bookMapper.selectNewBooks();
        // 创建PageResult对象 将总和 和 查询到的结果集封装起来
        return new PageResult(page.getTotal(), page.getResult());
    }


    /**
     * 通过id查询图书信息
     *
     * @param id id
     * @return {@link Book}
     */
    @Override
    public Book findBookById(String id) {
        return bookMapper.findBookById(id);
    }


    /**
     * 借阅图书
     *
     * @param book 书
     * @return {@link Integer}
     */
    @Override
    public Integer borrowBook(Book book) {

        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");

        // 设置当天为借阅时间
        book.setBorrowTime(dateFormat.format(new Date()));

        // 设置所借阅的图书状态为借阅中
        book.setStatus("1");


        // 更新图书信息
        return bookMapper.editBook(book);
    }


    /**
     * 查询图书
     *
     * @param book     书
     * @param pageNum  当前页面
     * @param pageSize 页面的长度
     * @return {@link PageResult}
     */
    @Override
    public PageResult search(Book book, Integer pageNum, Integer pageSize) {

        // 设置分页查询
        PageHelper.startPage(pageNum, pageSize);

        // 封装结果集
        Page<Book> books = bookMapper.searchBooks(book);

        // 返回结果集给分页插件
        return new PageResult(books.getTotal(), books.getResult());
    }

    /**
     * 添加图书
     *
     * @param book 书
     * @return {@link Integer}
     */
    @Override
    public Integer addBook(Book book) {

        // 设置上架时间
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        String uploadTime = format.format(new Date());
        book.setUploadTime(uploadTime);

        return bookMapper.addBook(book);
    }

    /**
     * 编辑图书
     *
     * @param book 书
     * @return {@link Integer}
     */
    @Override
    public Integer editBook(Book book) {
        return bookMapper.editBook(book);
    }


    /**
     * 查询图书
     *
     * @param book     封装图书
     * @param user     判断用户是否为管理员
     * @param pageNum  页面的码页
     * @param pageSize 页面的长度
     * @return {@link PageResult}
     */
    @Override
    public PageResult searchBorrowed(Book book, User user, Integer pageNum, Integer pageSize) {

        // 设置分页查询的参数
        PageHelper.startPage(pageNum, pageSize);

        // 将当前登录的用户获取
        book.setBorrower(user.getName());

        Page<Book> page = null;
        // 判断是否为管理员
        if ("ADMIN".equals(user.getRole())) {

            // 管理员 --> 可以查询当前的借阅图书以及所有的归还中的图书
            page = bookMapper.selectBorrowed(book);
        } else {

            // 普通人 --> 可以查询当前的借阅图书以及当前的归还中的图书和未归还的图书
            page = bookMapper.selectMyBorrowed(book);

        }

        // 返回封装的结果集 后面交给前端处理
        return new PageResult(page.getTotal(), page.getResult());
    }


    /**
     * 归还图书
     *
     * @param id   归还图书的id
     * @param user 归还的人员
     * @return {@link Boolean}
     */
    @Override
    public Boolean returnBook(String id, User user) {

        // 根据图书id查询图书的完整信息
        Book bookById = this.findBookById(id);

        // 检查当前登录人员和图书借阅者是否为同一个人
        boolean flag = bookById.getBorrower().equals(user.getName());

        // 判断是否为空同一个人
        if (flag) {

            // 等于true 就说明是同一个人 修改图书的状态 改成归还中 等待管理员确认
            bookById.setStatus("2");
            bookMapper.editBook(bookById);
        }

        return flag;
    }

    /**
     * 确认归还
     *
     * @param id 待归还的图书id
     * @return {@link Integer}
     */
    @Override
    public Integer returnConfirm(String id) {

        // 根据图书的id查询图书的完整信息
        Book bookById = this.findBookById(id);

        // 获取归还图书的借阅信息
        String borrower = bookById.getBorrower();
        String borrowTime = bookById.getBorrowTime();

        // 将图书的借阅状态修改成可借阅
        bookById.setStatus("0");

        // 清除当前图书的借阅人信息
        bookById.setBorrower("");

        // 清除当前图书的借阅时间信息
        bookById.setBorrowTime("");

        // 清除当前图书的预计归还时间信息
        bookById.setReturnTime("");

        Integer book = bookMapper.editBook(bookById);

        if (book > 0) {
            // 当管理员确认无误归还图书 就将图书记录添加到Record中
            Record record = new Record();

            // 设置借阅时间
            record.setId(bookById.getId());
            record.setBookIsbn(bookById.getIsbn());
            record.setBookName(bookById.getName());
            record.setBorrowTime(borrowTime);
            record.setBookBorrower(borrower);
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
            String returnTime = format.format(new Date());
            record.setRemandTime(returnTime);
            recordService.addRecord(record);

        }
        return book;


    }


}

借阅记录功能模块

package com.demo.service.Impl;

import com.demo.domain.Record;
import com.demo.domain.User;
import com.demo.entity.PageResult;
import com.demo.mapper.RecordMapper;
import com.demo.service.RecordService;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * @BelongsProject: CloudLibraryManagementSystem
 * @BelongsPackage: com.demo.service.Impl
 * @Author: 云边小屋(My.Tears)
 * @CreateTime: 2023-03-24  15:19
 * @Description: TODO
 * @Version: 1.0
 */

@Service
public class RecordServiceImpl implements RecordService {

    // 注入RecordMapper对象
    private RecordMapper recordMapper;

    @Autowired
    public RecordServiceImpl(RecordMapper recordMapper) {
        this.recordMapper = recordMapper;
    }


    /**
     * 添加借阅记录
     *
     * @param record 记录
     * @return {@link Integer}
     */
    @Override
    public Integer addRecord(Record record) {

        return recordMapper.addRecord(record);
    }

    /**
     * 查询借阅记录
     *
     * @param record   当前记录的查询条件
     * @param user     当前的登录用户
     * @param pageNum  页面码
     * @param pageSize 页面长度
     * @return {@link PageResult}
     */
    @Override
    public PageResult searchRecords(Record record, User user, Integer pageNum, Integer pageSize) {

        // 设置分页查询
        PageHelper.startPage(pageNum,pageSize);

        // 判断是否为管理员
        if (!"ADMIN".equals(user.getRole())){
            /**
             * 如果不是管理员 就将查询条件中的 借阅人设置为当前登录用户
             * 如果是管理员 那么就不会运行该if 反之 若为普通用户则运行该if
             * 将条件中的借阅人设置为当前登录人
             */
            record.setBookBorrower(user.getName());
        }
        Page<Record> page = recordMapper.searchRecords(record);
        return new PageResult(page.getTotal(),page.getResult());
    }
}

五、文件结构

云借阅图书管理系统


 

总结

云借阅图书管理系统的全部核心代码文件:

链接:百度网盘 请输入提取码 

提取码: 1234 文章来源地址https://www.toymoban.com/news/detail-455368.html

到了这里,关于云借阅图书管理系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 基于Java+SpringBoot+vue实现图书借阅管理系统

    基于Java+SpringBoot+vue实现图书借阅管理系统

    🍅 作者主页 央顺技术团队 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 在Internet高速发展的今天,计算机的应用几乎完全覆盖我们生活的各个领域,互联网在经济,生活等方面有着举足轻重的地位,成为人们资源共享,信息快速传递的重要渠道。在中国

    2024年01月25日
    浏览(9)
  • 基于Java的图书借阅网站, java+springboot+vue开发的图书借阅管理系统 - 毕业设计 - 课程设计

    基于Java的图书借阅网站, java+springboot+vue开发的图书借阅管理系统 - 毕业设计 - 课程设计

    本程序实现图书的智能化、信息化和简单化;实现图书信息的增加、删除、修改、查找、借阅、还书、收藏的显示操作及实时数据库的提交和更改和对普通用户的增、删、改、查;提高图书管理员工作信息报送及反馈的工作效率,减轻管理员的劳动负担;提高信息的及时性和

    2024年04月28日
    浏览(7)
  • 基于SSM的图书借阅管理系统的分析与设计(源码+文档+PPT)

    基于SSM的图书借阅管理系统的分析与设计(源码+文档+PPT)

    目录 一、题目要求 二、文件截图 三、系统结构​编辑 四、软件工程文档 1.文档目录 2.文档页数与字数 五、数据库表  1.用户表(user) 2.图书表(book) 3.用户头像表(userphoto) 4. 图书类型表(booktype) 5.借阅表(borrowbook) ​6.公告表(notice) ​7.作者心语(liiyan) 8.修改

    2024年02月05日
    浏览(14)
  • 基于Java的图书馆借阅管理系统的设计与实现--毕业开题报告

    基于Java的图书馆借阅管理系统的设计与实现--毕业开题报告

    基于Java的图书馆借阅管理系统的设计与实现–开题报告 这个先写一版开题报告,后续有时间给大家提供论文 。 题目:基于Java的图书馆借阅管理系统的设计与实现 图书馆是一个信息系统,它收集、处理、组织、存储、选择、控制、转换重要的信息和知识载体,并将其传递给

    2024年02月03日
    浏览(9)
  • 【毕业设计】基于微信小程序的共享图书借阅借还管理系统

    【毕业设计】基于微信小程序的共享图书借阅借还管理系统

    💗博主介绍:✌全网粉丝10W+,CSDN全栈领域优质创作者,博客之星、掘金/华为云/阿里云等平台优质作者。 👇🏻 精彩专栏 推荐订阅👇🏻 计算机毕业设计精品项目案例-200套 🌟 文末获取源码+数据库+文档 🌟 感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编

    2024年02月05日
    浏览(13)
  • 基于java的图书借阅管理系统设计与实现(源代码+数据库+部署文档+部署视频)

    基于java的图书借阅管理系统设计与实现(源代码+数据库+部署文档+部署视频)

           图书管理系统 该系统对数据进行保存、修改、删除等管理。为用户提供了一个友好、简单快捷的运行操作平台。该统对数据进行保存、修改、删除等管理,为用户提供了一个友好、简单快捷的运行操作平台。本系统的各界面设计友好、流程正确、功能也较为完善,

    2024年02月03日
    浏览(12)
  • 图书借阅管理系统

    图书借阅管理系统

    1、系统概述 图书借阅管理系统由管理员系统和用户系统两个子系统构成。用户运行程序后可按程序说明进入子系统,输入“1”进入管理员系统,输入“2”进入用户系统。图书信息和读者信息均用文件存储。   管理员系统: 新增图书:管理员可输入图书的类别、书号、书名

    2024年02月05日
    浏览(9)
  • 云借阅图书管理系统

    云借阅图书管理系统

             基于SSM(Spring + Spring MVC + Mybatis)框架开发的一个较为简单的云借阅图书管理系统,虽然比较简单,但是耐心的做完会对  Spring框架 和 Spring MVC框架 以及 Mybatis 框架  这三个框架的整合开发有一个较好的理解 。 下面我就来简单的研究一下代码,全部的代码文件,我

    2024年02月06日
    浏览(9)
  • 云借阅-图书管理系统

    云借阅-图书管理系统

    程序设计逻辑简单,适合观摩学习使用。 云借阅图书管理系统主要实现了两大功能模块:用户登录模块和图书管理模块,用户登录模块主要用于实现用户的登录与注销;图书管理模块主要用于管理图书,如新书推荐、图书借阅等。 1.开发技术: 后端:SSM(Spring、SpringMVC、Mybatis

    2024年02月13日
    浏览(10)
  • Java web图书管理系统、在线图书借阅管理系统(带文档)

    Java web图书管理系统、在线图书借阅管理系统(带文档)

     大家好,我是DeBug,很高兴你能来阅读!作为一名热爱编程的程序员,我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里,我将会结合实际项目经验,分享编程技巧、最佳实践以及解决问题的方法。无论你是初学者还是有一定经验的程序员,我都希望能够为你

    2024年01月23日
    浏览(11)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包