Java项目:ssm图书租赁管理系统

发布于:2022-12-22 ⋅ 阅读:(473) ⋅ 点赞:(0)

作者主页:夜未央5788

 简介:Java领域优质创作者、Java项目、学习资料、技术互助

文末获取源码

图书租赁管理系统

项目介绍

图书租赁管理系统,该系统分为管理员与普通读者两种角色;
管理员主要功能包括:
图书管理:添加、修改、删除;
图书分类管理:添加、修改、删除;
借阅信息:还书;
预定信息:确认借书;
归还信息;
统计管理:借书/归还、营业额、销量;
普通读者主要功能包括:预定图书、待拿图书、借阅中、归还信息等;

客户端的充值,使用的支付宝沙箱测试化境

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.是否Maven项目: 是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目 
6.数据库:MySql 8.0版本;
7.lombok插件安装:本项目需要安装lombok插件,否则运行会有异常;

技术栈

1. 后端:Spring SpringMVC MyBatis
2. 前端:JSP+bootstrap+jQuery+echarts

使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat,然后运行;
3. 将项目中db.properties配置文件中的数据库配置改为自己的配置;

4. 运行项目,输入localhost:8080/bm/

运行截图

相关代码 

MBookController

package com.bookManagerment.controller.mannager;

import com.bookManagerment.entity.Books;
import com.bookManagerment.service.BookService;
import com.bookManagerment.utils.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.util.Arrays;
import java.util.List;

@RequestMapping("/manager/books")
@RestController()
public class MBookController {

    @Autowired
    private BookService bookService;

    //分页获取图书信息 并可查找
    @GetMapping(value = "/{page}/{size}")
    public ResponseEntity<Page<Books>> booksList(@PathVariable("page") Integer page,
                                                @PathVariable("size") Integer size,
                                                Books book){
        return ResponseEntity.ok(bookService.getBookList(page,size,book));
    }

    //添加图书
    @PostMapping
    public ResponseEntity<Void> addBook(@RequestBody Books books){
        bookService.addBook(books);
        return ResponseEntity.status(HttpStatus.CREATED).build();
    }

    //修改图书
    @PutMapping
    public ResponseEntity<Void> modifyBook(@RequestBody Books books){
        bookService.modifyBook(books);
        return ResponseEntity.ok().build();
    }

    //修改图书的状态
    @PutMapping("/{bId}/{status}")
    public ResponseEntity<Void> modifyBookStatus(@PathVariable("bId") Integer bId,
                                                 @PathVariable("status") Boolean status){
        bookService.modifyBookStatus(bId,status);
        return ResponseEntity.ok().build();
    }

    //修改图书的总数量
    @PutMapping("/total/{bId}/{total}")
    public ResponseEntity<Void> modifyBookTotal(@PathVariable("bId") Integer bId,
                                                 @PathVariable("total") Integer total){
        bookService.modifyBookTotal(bId,total);
        return ResponseEntity.ok().build();
    }

//    //删除图书 多个
    @DeleteMapping
    public ResponseEntity<Void> deleteBookBybIds(@RequestBody List<Integer> ids){
        bookService.deleteBookBybIds(ids);
        return ResponseEntity.ok().build();
    }

    //删除图书 一个
    @DeleteMapping("/{bId}")
    public ResponseEntity<Void> deleteBookBybId(@PathVariable("bId") Integer bId){
        bookService.deleteBookBybIds(Arrays.asList(bId));
        return ResponseEntity.ok().build();
    }

}

MBookTypeController

package com.bookManagerment.controller.mannager;

import com.bookManagerment.entity.BookType;
import com.bookManagerment.service.BookTypeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.util.Arrays;
import java.util.List;

@RequestMapping("manager/bookType")
@RestController
public class MBookTypeController {

    @Autowired
    private BookTypeService bookTypeService;

    //获取图书分类
    @RequestMapping
    public ResponseEntity<List<BookType>> bookTypeList(){
        return ResponseEntity.ok(bookTypeService.bookTypeList());
    }

    //获取图书分类
    @RequestMapping("/all")
    public ResponseEntity<List<BookType>> bookTypeListAll(){
        return ResponseEntity.ok(bookTypeService.bookTypeListAll());
    }

    //添加图书分类
    @PostMapping("/{tName}")
    public ResponseEntity<Void> addBookType(@PathVariable("tName") String tName){
        bookTypeService.addBookType(tName);
        return ResponseEntity.status(HttpStatus.CREATED).build();
    }

    //删除多个图书分类
    @DeleteMapping
    public ResponseEntity<Void> deleteBookTypes(@RequestBody List<Integer> ids ){
        bookTypeService.deleteBookTypes(ids);
        return ResponseEntity.ok().build();
    }

    //删除一个图书分类
    @DeleteMapping("/{btId}")
    public ResponseEntity<Void> deleteBookType(@PathVariable("btId") Integer btId ){
        bookTypeService.deleteBookTypes(Arrays.asList(btId));
        return ResponseEntity.ok().build();
    }

    //修改一个图书分类
    @PutMapping
    public ResponseEntity<Void> modifyBookType(@RequestBody BookType bookType){
        bookTypeService.modifyBookType(bookType);
        return ResponseEntity.ok().build();
    }
}

MGiveBackBookController

package com.bookManagerment.controller.mannager;

import com.bookManagerment.entity.GiveBackBooks;
import com.bookManagerment.service.GiveBackBookService;
import com.bookManagerment.utils.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

@RequestMapping("manager/giveBack")
@RestController
public class MGiveBackBookController {

    @Autowired
    private GiveBackBookService giveBackBookService;

    //根据 bbId 还书
    @PostMapping("/{bbId}")
    public ResponseEntity<GiveBackBooks> giveBackBookById(@PathVariable("bbId") Integer bbId){
        return ResponseEntity.ok().body(giveBackBookService.giveBackBookById(bbId));
    }

    //分页查询 并可以带查询参数
    @GetMapping("/{page}/{size}")
    public ResponseEntity<Page<GiveBackBooks>> giveBackBook(@PathVariable("page") Integer page,
                                                            @PathVariable("size") Integer size,
                                                            GiveBackBooks reserveGiveBack){
        return ResponseEntity.ok(giveBackBookService.giveBackBook(page,size, reserveGiveBack,false));
    }
}

MReserveBorrowBooksController

package com.bookManagerment.controller.mannager;

import com.bookManagerment.entity.ReserveBorrowBooks;
import com.bookManagerment.service.ReserveBorrowBooksService;
import com.bookManagerment.utils.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.util.Arrays;
import java.util.List;

@RequestMapping("manager/reserveBorrow")
@RestController
public class MReserveBorrowBooksController {

    @Autowired
    private ReserveBorrowBooksService reserveBookService;

    //分页查询 并可以带查询参数
    @GetMapping("/{page}/{size}")
    public ResponseEntity<Page<ReserveBorrowBooks>> borrowBookByPage(@PathVariable("page") Integer page,
                                                                     @PathVariable("size") Integer size,
                                                                     ReserveBorrowBooks reserveBorrowBooks){
        return ResponseEntity.ok(reserveBookService.reserveBookByPage(page,size, reserveBorrowBooks));
    }

    //借书 一个
    @PostMapping("/{resId}")
    public ResponseEntity<Void> saveReserve(@PathVariable("resId") Integer resId){
        reserveBookService.saveReserves(Arrays.asList(resId));
        return ResponseEntity.status(HttpStatus.CREATED).build();
    }

    //借书 多个
    @PostMapping
    public ResponseEntity<Void> saveReserves(@RequestBody List<Integer> resIds){
        reserveBookService.saveReserves(resIds);
        return ResponseEntity.status(HttpStatus.CREATED).build();
    }

}

SalesStatisticsController

package com.bookManagerment.controller.mannager;

import com.bookManagerment.service.SalesStatisticsService;
import com.bookManagerment.vo.SalesBooksByTypeVO;
import com.bookManagerment.vo.SalesStatisticsVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("manager")
public class SalesStatisticsController {

    @Autowired
    private SalesStatisticsService salesStatisticsService;

    //根据分类获取图书销量
    @RequestMapping("/salesByType/{typeName}")
    public ResponseEntity<SalesBooksByTypeVO> salesByType(@PathVariable("typeName") String typeName){
        return ResponseEntity.ok(salesStatisticsService.querySalesBooksByType(typeName));
    }

    //获取按销量降序获取图书分类,以及销量最高的第一个分类下的图书销量
    @RequestMapping("/sales")
    public ResponseEntity<SalesStatisticsVo> sales(){
        return ResponseEntity.ok(salesStatisticsService.queryBookTypeSales());
    }

}

ReaderController

package com.bookManagerment.controller.reader;


import com.bookManagerment.service.ReaderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@RequestMapping("reader")
@Controller
public class ReaderController {

    @Autowired
    private ReaderService readerService;

    //发送支付请求
    @PostMapping("/balance")
    public void addBalance(Double money,HttpServletRequest request, HttpServletResponse response){
        readerService.addBalance(money,request,response);
    }

    //支付同步通知
    @RequestMapping("/returnUrl")
    public String returnUrl(HttpServletRequest request,HttpServletResponse response){
        readerService.returnUrl(request);
        return "redirect:/pages/reader/bookDatalist.jsp";
    }

    //支付异步通知
    @PostMapping("/notify")
    public void notify(HttpServletRequest request,HttpServletResponse response){
        readerService.notify(request,response);
    }

    @GetMapping("/refreshMoney")
    public ResponseEntity<Double> refreshMoney(HttpServletRequest request){
        return ResponseEntity.ok(readerService.refreshMoney(request));
    }

}

RGiveBackController

package com.bookManagerment.controller.reader;


import com.bookManagerment.config.BMSystemProperties;
import com.bookManagerment.entity.GiveBackBooks;
import com.bookManagerment.entity.Reader;
import com.bookManagerment.service.GiveBackBookService;
import com.bookManagerment.utils.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpSession;

@RequestMapping("reader/giveBack")
@RestController
public class RGiveBackController {


    @Autowired
    private GiveBackBookService giveBackBookService;

    @Autowired
    private BMSystemProperties bmProperties;

    //分页查询 并可以带查询参数
    @GetMapping("/{page}/{size}")
    public ResponseEntity<Page<GiveBackBooks>> giveBackBook(@PathVariable("page") Integer page,
                                                            @PathVariable("size") Integer size,
                                                            GiveBackBooks reserveGiveBack,
                                                            HttpSession session){
        Reader reader = (Reader) session.getAttribute(bmProperties.getReaderSessionName());
        reserveGiveBack.setRName(reader.getRName());
        return ResponseEntity.ok(giveBackBookService.giveBackBook(page,size, reserveGiveBack,true));
    }

}

如果也想学习本系统,下面领取。关注并回复:015ssm

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到