package com.superb.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.superb.entity.BookBorrow;
import com.superb.entity.BookInfo;
import com.superb.service.BookBorrowService;
import com.superb.service.BookInfoService;
import com.superb.util.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.Instant;
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* <p>
* 前端控制器
* </p>
*
* @author Superb
* @since 2020-12-26
*/
@Controller
@RequestMapping("/borrow2")
public class BookSelectController2 {
@Autowired
private BookBorrowService bookBorrowService;
@Autowired
private BookInfoService bookInfoService;
@GetMapping()
public String index(Model model, HttpServletRequest request) {
//登录拦截
if (request.getSession().getAttribute("username")==null){
model.addAttribute("msg","未登录");
return "login";
}
//3表查询 书名 书类型
List<Map<String, Object>> list = bookBorrowService.borrowList();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//滞纳金
for (Map<String, Object> map : list) {
//如果未还书 算出滞纳金返回前台展示 此时数据库实际为0
if ("0".equals(map.get("real_date"))) {
Date end_date = new Date();
try {
end_date = sdf.parse(map.get("end_date").toString());
} catch (ParseException e) {
e.printStackTrace();
}
long l = LocalDate.now().toEpochDay();
Instant instant = end_date.toInstant();
ZoneId zoneId = ZoneId.systemDefault();
LocalDate localDate = instant.atZone(zoneId).toLocalDate();
long l1 = localDate.toEpochDay();
if (l-l1>0){
map.put("latefee",l-l1);
}
}
}
model.addAttribute("borrows", list);
return "book/borrow2";
}
@RequestMapping("/borrow2")
public ModelAndView bookInfoListView(
@RequestParam(name = "keyword", required = false) String keyword
) {
ModelAndView mav = new ModelAndView("book/borrow2");
//检索出客户信息数据,并设置到环境中
//第一次显示客户信息,第一页显示
return mav;
}
/**
* 借阅
*
* @param bookBorrow
* @return
*/
@PostMapping("/save")
@ResponseBody
public Result save(BookBorrow bookBorrow) {
//校验
int i = bookBorrow.getBeginDate().compareTo(bookBorrow.getEndDate());
if (i > 0) {
return Result.fail("计划还书日期应在借阅日期之后");
}
//
QueryWrapper<BookBorrow> bookBorrowQueryWrapper = new QueryWrapper<>();
bookBorrowQueryWrapper.eq("book_id", bookBorrow.getBookId()).eq("borrower_name", bookBorrow.getBorrowerName()).eq("borrower_phone", bookBorrow.getBorrowerPhone()).eq("real_date","0");
List<BookBorrow> list = bookBorrowService.list(bookBorrowQueryWrapper);
if (list != null && list.size() != 0) {
return Result.fail("该用户已借阅本书且尚未归还,不能重复借阅");
}
//借出 库存-1
BookInfo bookInfo = bookInfoService.getById(bookBorrow.getBookId());
bookInfo.setStock(bookInfo.getStock() - 1);
bookInfoService.updateById(bookInfo);
//保存借阅信息
bookBorrowService.save(bookBorrow);
return Result.success("借阅成功", null);
}
/**
* 还书编辑
*
* @param id
* @return
*/
@GetMapping("/get")
@ResponseBody
public Result get(@RequestParam("id") Long id) {
//查出记录
BookBorrow bookBorrow = bookBorrowService.getById(id);
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String format = sdf.format(date);
//设置当前日期为实际还书日期 返回到前台
bookBorrow.setRealDate(format);
return Result.success(bookBorrow);
}
/**
* 还书
*
* @param bookBorrow
* @return
*/
@PutMapping("/put")
@ResponseBody
public Result edit(BookBorrow bookBorrow) {
//还书
bookBorrowService.updateById(bookBorrow);
//还书库存+1
BookInfo bookInfo = bookInfoService.getById(bookBorrow.getBookId());
bookInfo.setStock(bookInfo.getStock()+1);
bookInfoService.updateById(bookInfo);
return Result.success("还书成功", null);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
基于SpringBoot的图书管理系统源码+数据库脚本+毕业设计.zip
共1242个文件
js:448个
scss:176个
jpg:126个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 21 下载量 127 浏览量
2022-07-08
15:05:04
上传
评论 12
收藏 31.51MB ZIP 举报
温馨提示
基于SpringBoot的图书管理系统源码+数据库脚本+毕业设计。已获导师指导并通过的高分项目。也可作为课程设计。 本项目是一套基于SpringBoot的图书管理系统,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本、软件工具、项目说明等,该项目可以直接作为毕设使用。 项目都经过严格调试,确保可以运行! 技术实现 后台框架:SpringBoot 数据库:MySQL 开发环境:JDK、IDEA、Tomcat 系统功能 本图书管理系统主要包含两种角色:读者和管理员。读者只能对个人信息的查阅、修改,图书的查询,而管理员则可以进行图书信息及借阅信息的管理。 具体实现功能如下: (1)系统登录。分为普通读者登录和管理员登录。 (2)系统管理。系统管理包括管理员设置,以及图书类别设置。管理员设置包括管理员信息的设置以及密码的设置。图书类别的设置只有管理员才可以对他进行新增,修改和删除。 (3)图书管理。包括图书信息管理,图书信息查询。只有管理员才可以对图书进行管理,图书查询是帮助读者方便查找图书信息。 (4)读者管理。读者管理包括读
资源推荐
资源详情
资源评论
收起资源包目录
基于SpringBoot的图书管理系统源码+数据库脚本+毕业设计.zip (1242个子文件)
icons.css 422KB
icons.css 422KB
icons.min.css 341KB
icons.min.css 341KB
app-dark-rtl.css 234KB
app-dark-rtl.css 234KB
app-rtl.css 234KB
app-rtl.css 234KB
bootstrap-dark.css 234KB
bootstrap-dark.css 234KB
bootstrap.css 234KB
bootstrap.css 234KB
app-dark-rtl.min.css 191KB
app-dark-rtl.min.css 191KB
app-rtl.min.css 191KB
app-rtl.min.css 191KB
bootstrap-dark.min.css 189KB
bootstrap-dark.min.css 189KB
bootstrap.min.css 189KB
bootstrap.min.css 189KB
app.css 176KB
app.css 176KB
app-dark.css 176KB
app-dark.css 176KB
app-dark.min.css 146KB
app-dark.min.css 146KB
app.min.css 145KB
app.min.css 145KB
bootstrap.css 143KB
bootstrap.css 143KB
bootstrap.min.css 118KB
bootstrap.min.css 118KB
bootstrap.min.css 106KB
bootstrap.min.css 106KB
style.min.css 105KB
style.min.css 105KB
util.css 99KB
util.css 99KB
materialdesignicons.min.css 89KB
materialdesignicons.min.css 89KB
animate.css 71KB
animate.css 71KB
font-awesome.css 37KB
font-awesome.css 37KB
font-awesome.css 37KB
font-awesome.css 37KB
font-awesome.min.css 30KB
font-awesome.min.css 30KB
jquery-ui.min.css 30KB
jquery-ui.min.css 30KB
bootstrap-theme.css 26KB
bootstrap-theme.css 26KB
bootstrap-theme.min.css 23KB
bootstrap-theme.min.css 23KB
bootstrap-datepicker3.css 22KB
bootstrap-datepicker3.css 22KB
jquery-confirm.min.css 22KB
jquery-confirm.min.css 22KB
bootstrap-datepicker3.min.css 21KB
bootstrap-datepicker3.min.css 21KB
bootstrap-datetimepicker.min.css 11KB
bootstrap-datetimepicker.min.css 11KB
ion.rangeSlider.min.css 11KB
ion.rangeSlider.min.css 11KB
bootstrap-datetimepicker.css 9KB
bootstrap-datetimepicker.css 9KB
main.css 8KB
main.css 8KB
bootstrap-datetimepicker.min.css 8KB
bootstrap-datetimepicker.min.css 8KB
style.css 6KB
style.css 6KB
bootstrap-colorpicker.css 5KB
bootstrap-colorpicker.css 5KB
bootstrap-colorpicker.min.css 4KB
bootstrap-colorpicker.min.css 4KB
metisMenu.min.css 2KB
metisMenu.min.css 2KB
jquery.tagsinput.min.css 903B
jquery.tagsinput.min.css 903B
materialdesignicons-webfont.eot 790KB
materialdesignicons-webfont.eot 790KB
materialdesignicons.eot 286KB
materialdesignicons.eot 286KB
fa-solid-900.eot 190KB
fa-solid-900.eot 190KB
fontawesome-webfont.eot 162KB
fontawesome-webfont.eot 162KB
fontawesome-webfont.eot 162KB
fontawesome-webfont.eot 162KB
fa-brands-400.eot 129KB
fa-brands-400.eot 129KB
line-awesome.eot 110KB
line-awesome.eot 110KB
typicons.eot 98KB
typicons.eot 98KB
themify.eot 77KB
themify.eot 77KB
dripicons-v2.eot 40KB
dripicons-v2.eot 40KB
共 1242 条
- 1
- 2
- 3
- 4
- 5
- 6
- 13
程序员张小妍
- 粉丝: 1w+
- 资源: 3257
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 适用于 Android、Java 和 Kotlin Multiplatform 的现代 I,O 库 .zip
- 高通TWS蓝牙规格书,做HIFI级别的耳机用
- Qt读写Usb设备的数据
- 这个存储库适合初学者从 Scratch 开始学习 JavaScript.zip
- AUTOSAR 4.4.0版本Rte模块标准文档
- 25考研冲刺快速复习经验.pptx
- MATLAB使用教程-初步入门大全
- 该存储库旨在为 Web 上的语言提供新信息 .zip
- 考研冲刺的实用经验与技巧.pptx
- Nvidia GeForce GT 1030-GeForce Studio For Win10&Win11(Win10&Win11 GeForce GT 1030显卡驱动)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
前往页