package com.itheima.controller;
import com.itheima.pojo.Book;
import com.itheima.pojo.User;
import com.itheima.service.BookService;
import entity.PageResult;
import entity.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
/*
图书信息Controller
*/
@Controller
@RequestMapping("/book")
public class BookController {
//注入BookService对象
@Autowired
private BookService bookService;
/**
* 查询最新上架的图书
*/
@RequestMapping("/selectNewbooks")
public ModelAndView selectNewbooks() {
//查询最新上架的5个的图书信息
int pageNum = 1;
int pageSize = 5;
PageResult pageResult = bookService.selectNewBooks(pageNum, pageSize);
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("books_new");
modelAndView.addObject("pageResult", pageResult);
return modelAndView;
}
/**
* 根据图书id查询图书信息
* @param id 查询的图书id
*/
@ResponseBody
@RequestMapping("/findById")
public Result<Book> findById(String id) {
try {
Book book=bookService.findById(id);
if(book==null){
return new Result(false,"查询图书失败!");
}
return new Result(true,"查询图书成功",book);
}catch (Exception e){
e.printStackTrace();
return new Result(false,"查询图书失败!");
}
}
/**
* 借阅图书
* @param book 借阅的图书
* @return
*/
@ResponseBody
@RequestMapping("/borrowBook")
public Result borrowBook(Book book, HttpSession session) {
//获取当前登录的用户姓名
String pname = ((User) session.getAttribute("USER_SESSION")).getName();
book.setBorrower(pname);
try {
//根据图书的id和用户进行图书借阅
Integer count = bookService.borrowBook(book);
if (count != 1) {
return new Result(false, "借阅图书失败!");
}
return new Result(true, "借阅成功,请到行政中心取书!");
} catch (Exception e) {
e.printStackTrace();
return new Result(false, "借阅图书失败!");
}
}
/**
* 分页查询符合条件且未下架图书信息
* @param book 查询的条件封装到book中
* @param pageNum 数据列表的当前页码
* @param pageSize 数据列表1页展示多少条数据
*/
@RequestMapping("/search")
public ModelAndView search(Book book, Integer pageNum, Integer pageSize, HttpServletRequest request) {
if (pageNum == null) {
pageNum = 1;
}
if (pageSize == null) {
pageSize = 10;
}
//查询到的图书信息
PageResult pageResult = bookService.search(book, pageNum, pageSize);
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("books");
//将查询到的数据存放在 ModelAndView的对象中
modelAndView.addObject("pageResult", pageResult);
//将查询的参数返回到页面,用于回显到查询的输入框中
modelAndView.addObject("search", book);
//将当前页码返回到页面,用于分页插件的分页显示
modelAndView.addObject("pageNum", pageNum);
//将当前查询的控制器路径返回到页面,页码变化时继续向该路径发送请求
modelAndView.addObject("gourl", request.getRequestURI());
return modelAndView;
}
/**
* 新增图书
* @param book 页面表单提交的图书信息
* 将新增的结果和向页面传递信息封装到Result对象中返回
*/
@ResponseBody
@RequestMapping("/addBook")
public Result addBook(Book book) {
try {
Integer count=bookService.addBook(book);
if(count!=1){
return new Result(false, "新增图书失败!");
}
return new Result(true, "新增图书成功!");
}catch (Exception e){
e.printStackTrace();
return new Result(false, "新增图书失败!");
}
}
/**
* 编辑图书信息
* @param book 编辑的图书信息
*/
@ResponseBody
@RequestMapping("/editBook")
public Result editBook(Book book) {
try {
Integer count= bookService.editBook(book);
if(count!=1){
return new Result(false, "编辑失败!");
}
return new Result(true, "编辑成功!");
}catch (Exception e){
e.printStackTrace();
return new Result(false, "编辑失败!");
}
}
/**
*分页查询当前被借阅且未归还的图书信息
* @param pageNum 数据列表的当前页码
* @param pageSize 数据列表1页展示多少条数据
*/
@RequestMapping("/searchBorrowed")
public ModelAndView searchBorrowed(Book book,Integer pageNum, Integer pageSize, HttpServletRequest request) {
if (pageNum == null) {
pageNum = 1;
}
if (pageSize == null) {
pageSize = 10;
}
//获取当前登录的用户
User user = (User) request.getSession().getAttribute("USER_SESSION");
PageResult pageResult = bookService.searchBorrowed(book,user, pageNum, pageSize);
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("book_borrowed");
//将查询到的数据存放在 ModelAndView的对象中
modelAndView.addObject("pageResult", pageResult);
//将查询的参数返回到页面,用于回显到查询的输入框中
modelAndView.addObject("search", book);
//将当前页码返回到页面,用于分页插件的分页显示
modelAndView.addObject("pageNum", pageNum);
//将当前查询的控制器路径返回到页面,页码变化时继续向该路径发送请求
modelAndView.addObject("gourl", request.getRequestURI());
return modelAndView;
}
/**
* 归还图书
* @param id 归还的图书的id
*/
@ResponseBody
@RequestMapping("/returnBook")
public Result returnBook(String id, HttpSession session) {
//获取当前登录的用户信息
User user = (User) session.getAttribute("USER_SESSION");
try {
boolean flag = bookService.returnBook(id, user);
if (!flag) {
return new Result(false, "还书失败!");
}
return new Result(true, "还书确认中,请先到行政中心还书!");
}catch (Exception e){
e.printStackTrace();
return new Result(false, "还书失败!");
}
}
/**
* 确认图书归还
* @param id 确认归还的图书的id
*/
@ResponseBody
@RequestMapping("/returnConfirm")
public Result returnConfirm(String id) {
try {
Integer count=bookService.returnConfirm(id);
if(count!=1){
return new Result(false, "确认失败!");
}
return new Result(true, "确认成功!");
}catch (Exception e){
e.printStackTrace();
return new Result(false, "确认失败!");
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
功能: 本系统后台使用SSM框架编写,前台页面使用当前主流的Bootstrap和jQuery框架编写。云借阅图书管理系统主要实现了两大功能模块:用户登录模块和图书管理模块,用户登录模块主要用于实现用户的登录与注销;图书管理模块主要用于管理图书,如新书推荐、图书借阅等。 开发环境: Web服务器:Tomcat 9.0.371。Java开发包:JDK 8。开发工具:IntelliJ IDEA 2019.3.2。数据库:MySQL 5.7.17。 数据库设计: 云借阅图书管理系统中主要包括用户登录和图书管理两大模块,用户登录模块会用到用户表,图书管理模块会用到图书信息表。除此之外,在图书管理模块中,每次图书借阅完成后,系统会记录图书借阅情况,因此,图书管理模块还需要一个借阅记录表。
资源推荐
资源详情
资源评论
收起资源包目录
基于SSM框架的云借阅图书管理系统(源码+数据库) (100个子文件)
BookController.class 6KB
BookServiceImpl.class 5KB
BuyServiceImpl.class 5KB
UserController.class 5KB
SpringMvcConfig.class 3KB
BookMapper.class 3KB
BuyMapper.class 3KB
Book.class 3KB
Buy.class 3KB
UserServiceImpl.class 3KB
ResourcesInterceptor.class 2KB
RecordController.class 2KB
MyBatisConfig.class 2KB
RecordServiceImpl.class 2KB
User.class 2KB
UserMapper.class 2KB
Result.class 2KB
Record.class 2KB
EncodingFilter.class 1KB
SpringConfig.class 1KB
JdbcConfig.class 1KB
RecordMapper.class 1KB
ServletContainersInitConfig.class 916B
PageResult.class 808B
BookService.class 749B
BuyService.class 747B
UserService.class 555B
RecordService.class 330B
webbase.css 248KB
bootstrap.css 156KB
AdminLTE.css 118KB
_all-skins.min.css 41KB
style.css 3KB
pages-login-manage.css 2KB
pagination.css 1KB
cloudlibrary.iml 656B
BookController.java 8KB
BookServiceImpl.java 7KB
BuyServiceImpl.java 7KB
UserController.java 6KB
BuyMapper.java 4KB
BookMapper.java 4KB
UserServiceImpl.java 3KB
Buy.java 3KB
Book.java 2KB
UserMapper.java 2KB
RecordController.java 2KB
MyBatisConfig.java 2KB
ResourcesInterceptor.java 2KB
SpringMvcConfig.java 2KB
User.java 2KB
RecordServiceImpl.java 2KB
RecordMapper.java 1KB
Record.java 1KB
JdbcConfig.java 1KB
SpringConfig.java 1KB
Result.java 1KB
BuyService.java 868B
BookService.java 867B
ServletContainersInitConfig.java 774B
EncodingFilter.java 712B
UserService.java 667B
PageResult.java 644B
RecordService.java 376B
user.jpg 11KB
jquery.min.js 85KB
bootstrap.js 68KB
app.js 23KB
jquery.validate.min.js 21KB
my.js 13KB
pagination.js 5KB
user.jsp 9KB
books.jsp 8KB
main.jsp 5KB
book_borrowed.jsp 5KB
index.jsp 4KB
record.jsp 3KB
books_new.jsp 3KB
book_modal.jsp 3KB
login.jsp 3KB
index.jsp 284B
cloudlibrary.kotlin_module 16B
manage-bg.png 86KB
log4j.properties 487B
log4j.properties 487B
jdbc.properties 214B
jdbc.properties 214B
ignoreUrl.properties 111B
ignoreUrl.properties 111B
cloudlibrary_plus.sql 6KB
pom.xml 5KB
BookMapper.xml 2KB
BookMapper.xml 2KB
BuyMapper.xml 2KB
BuyMapper.xml 2KB
UserMapper.xml 1KB
UserMapper.xml 1KB
RecordMapper.xml 469B
RecordMapper.xml 469B
web.xml 304B
共 100 条
- 1
一条小橘猫
- 粉丝: 4w+
- 资源: 28
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
- 5
- 6
前往页