JDK1.8、tomcat8、IDEA、mysql5.7、Navicat
功能实现:身份:管理员、学生、教师
管理员:
1.图书管理
2.学生管理
3.教师管理
4.借阅管理
5.超期催还
6.导出报表
学生、教师:
1.查看图书
2.借阅图书
3.归还图书
4.超期罚款
//QQ:2434110694 v:f999dexgg
//QQ:2434110694 v:f999dexgg
//QQ:2434110694 v:f999dexgg
package com.zl.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zl.entity.Book;
import com.zl.entity.Borrow;
import com.zl.entity.Still;
import com.zl.entity.User;
import com.zl.mapper.BorrowMapper;
import com.zl.service.BookService;
import com.zl.service.BorrowService;
import com.zl.service.UserService;
import com.zl.vo.LayuiPage;
import com.zl.vo.Result;
import com.zl.vo.SearchVo;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
@RestController
@RequestMapping("/borrow")
@CrossOrigin
public class BorrowController {
@Resource
private BorrowService borrowService;
@Resource
private BookService bookService;
@Resource
private UserService userService;
@Resource
private BorrowMapper borrowMapper;
//添加
@GetMapping("/add/{uid}/{bid}/{stillDate}")
public Result add(@PathVariable("uid") Integer uid,@PathVariable("bid") Integer bid,@PathVariable("stillDate")String stillDate){
Borrow borrow = new Borrow();
borrow.setBorrowTime(LocalDateTime.now().toString());
borrow.setUid(uid);
borrow.setBid(bid);
borrow.setStillTime(stillDate);
QueryWrapper wrapper = new QueryWrapper<>();
wrapper.eq("uid",borrow.getUid());
wrapper.eq("bid",borrow.getBid());
Borrow dbBorrow = borrowMapper.selectOne(wrapper);
if (dbBorrow!=null){
return Result.error().message("借阅失败,您已借阅该图书");
}
return borrowService.save(borrow)?Result.ok().message("借阅成功"):Result.error().message("服务器异常,请稍后再试");
}
//查询
@PostMapping("/listById/{id}")
public IPage listById(@PathVariable("id") String id,@RequestBody SearchVo searchVo){
Page page = new Page<>(searchVo.getPageNumber(), searchVo.getPageCount());
QueryWrapper wrapper = new QueryWrapper<>();
wrapper.eq("uid",id);
Page pages = borrowMapper.selectPage(page, wrapper);
for (Borrow thisBorrow : pages.getRecords()) {
thisBorrow.setBook(bookService.getById(thisBorrow.getBid()));
thisBorrow.setUser(userService.getById(thisBorrow.getUid()));
}
return pages;
}
//查询当前登录人借阅图书信息
@GetMapping("/listById/{id}")
@ResponseBody
public LayuiPage listById(int page, int limit, Borrow borrow,@PathVariable("id") String id) throws ParseException {
Page pages = new Page<>(page,limit);
QueryWrapper wrapper = new QueryWrapper<>();
wrapper.eq(borrow.getBid()!=null,"bid",borrow.getBid())
.eq("uid",id);
Page bookPage = borrowMapper.selectPage(pages, wrapper);
List borrowList = bookPage.getRecords();
for (Borrow thisBorrow : borrowList) {
String stillTime = thisBorrow.getStillTime();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date stillDate = format.parse(stillTime);
Date date = new Date();
//判断哪个借阅时间超过了日期
if (date.after(stillDate)){
int days = (int) ((date.getTime() - stillDate.getTime()) / (1000*3600*24));
thisBorrow.setSalary(days);
}else {
thisBorrow.setSalary(0);
}
thisBorrow.setBook(bookService.getById(thisBorrow.getBid()));
thisBorrow.setUser(userService.getById(thisBorrow.getUid()));
}
return new LayuiPage(bookPage.getTotal(),borrowList);
}
//查询所有
@GetMapping("/list")
@ResponseBody
public LayuiPage list(int page, int limit, Borrow borrow){
Page pages = new Page<>(page,limit);
QueryWrapper wrapper = new QueryWrapper<>();
wrapper.eq(borrow.getBid()!=null,"bid",borrow.getBid())
.eq(borrow.getUid()!=null,"uid",borrow.getUid());
Page bookPage = borrowMapper.selectPage(pages, wrapper);
List borrowList = bookPage.getRecords();
for (Borrow thisBorrow : borrowList) {
thisBorrow.setBook(bookService.getById(thisBorrow.getBid()));
thisBorrow.setUser(userService.getById(thisBorrow.getUid()));
}
return new LayuiPage(bookPage.getTotal(),borrowList);
}
//查询所有超期列表
@GetMapping("/listOverdue")
@ResponseBody
public LayuiPage listOverdue(int page, int limit, Borrow borrow){
Page pages = new Page<>(page,limit);
QueryWrapper wrapper = new QueryWrapper<>();
wrapper.eq(borrow.getBid()!=null,"bid",borrow.getBid())
.eq(borrow.getUid()!=null,"uid",borrow.getUid())
.le("still_time",new Date());
Page bookPage = borrowMapper.selectPage(pages, wrapper);
List borrowList = bookPage.getRecords();
for (Borrow thisBorrow : borrowList) {
System.out.println(thisBorrow);
thisBorrow.setBook(bookService.getById(thisBorrow.getBid()));
thisBorrow.setUser(userService.getById(thisBorrow.getUid()));
}
return new LayuiPage(bookPage.getTotal(),borrowList);
}
//id查询
@GetMapping("/{id}")
public Borrow find(@PathVariable("id") String id){
return borrowService.getById(id);
}
//修改
@PutMapping("/update")
public Result update(@RequestBody Borrow borrow){
return borrowService.updateById(borrow)?Result.ok().message("修改成功"):Result.error().message("服务器异常,请稍后再试");
}
@GetMapping("/writeExcel")
public Result writeExcel() throws IOException {
List list = borrowService.list(null);
for (Borrow thisBorrow : list) {
thisBorrow.setBook(bookService.getById(thisBorrow.getBid()));
thisBorrow.setUser(userService.getById(thisBorrow.getUid()));
}
String fileName = "C:\Users\26913\Desktop\报表"+new Date().getTime()+".xls";
//创建一个簿
Workbook workbook=new HSSFWorkbook();
//创建一张表
Sheet sheet = workbook.createSheet("报表");
Row head = sheet.createRow(0);
Cell cell = head.createCell(0);
cell.setCellValue("序号");
cell = head.createCell(1);
cell.setCellValue("借阅人编号");
cell = head.createCell(2);
cell.setCellValue("借阅人姓名");
cell = head.createCell(3);
cell.setCellValue("借阅人电话");
cell = head.createCell(4);
cell.setCellValue("借阅人性别");
cell = head.createCell(5);
cell.setCellValue("图书编号");
cell = head.createCell(6);
cell.setCellValue("图书名称");
cell = head.createCell(7);
cell.setCellValue("借阅时间");
cell = head.createCell(8);
cell.setCellValue("归还时间");
for (int i = 0; i < list.size(); i++) {
Row row = sheet.createRow(i+1);
row.createCell(0).setCellValue(i+1);
row.createCell(1).setCellValue(list.get(i).getUid());
row.createCell(2).setCellValue(list.get(i).getUser().getName());
row.createCell(3).setCellValue(list.get(i).getUser().getPhone());
row.createCell(4).setCellValue(list.get(i).getUser().getSex());
row.createCell(5).setCellValue(list.get(i).getBid());
row.createCell(6).setCellValue(list.get(i).getBook().getName());
row.createCell(7).setCellValue(list.get(i).getBorrowTime());
row.createCell(8).setCellValue(list.get(i).getStillTime());
}
FileOutputStream outputStream = new FileOutputStream(fileName);
workbook.write(outputStream);
//关闭流
outputStream.close();
return Result.ok().message("导出成功");
}
}
项目展示



