JavaWeb 图书管理系统

在这里插入图片描述

个人信息界面

在这里插入图片描述

用户管理界面

在这里插入图片描述

07 主要代码


图书管理

package com.book.manager.controller;

import com.book.manager.entity.Book;

import com.book.manager.service.BookService;

import com.book.manager.util.R;

import com.book.manager.util.http.CodeEnum;

import com.book.manager.util.ro.PageIn;

import io.swagger.annotations.Api;

import io.swagger.annotations.ApiOperation;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.*;

/**

  • @Description 用户管理

*/

@Api(tags = “图书管理”)

@RestController

@RequestMapping(“/book”)

public class BookController {

@Autowired

private BookService bookService;

@ApiOperation(“图书搜索列表”)

@PostMapping(“/list”)

public R getBookList(@RequestBody PageIn pageIn) {

if (pageIn == null) {

return R.fail(CodeEnum.PARAM_ERROR);

}

return R.success(CodeEnum.SUCCESS,bookService.getBookList(pageIn));

}

@ApiOperation(“添加图书”)

@PostMapping(“/add”)

public R addBook(@RequestBody Book book) {

return R.success(CodeEnum.SUCCESS,bookService.addBook(book));

}

@ApiOperation(“编辑图书”)

@PostMapping(“/update”)

public R modifyBook(@RequestBody Book book) {

return R.success(CodeEnum.SUCCESS,bookService.updateBook(book));

}

@ApiOperation(“图书详情”)

@GetMapping(“/detail”)

public R bookDetail(Integer id) {

return R.success(CodeEnum.SUCCESS,bookService.findBookById(id));

}

@ApiOperation(“图书详情 根据ISBN获取”)

@GetMapping(“/detailByIsbn”)

public R bookDetailByIsbn(String isbn) {

return R.success(CodeEnum.SUCCESS,bookService.findBookByIsbn(isbn));

}

@ApiOperation(“删除图书”)

@GetMapping(“/delete”)

public R delBook(Integer id) {

bookService.deleteBook(id);

return R.success(CodeEnum.SUCCESS);

}

}

借阅管理

package com.book.manager.controller;

import cn.hutool.core.date.DateUtil;

import com.book.manager.entity.Borrow;

import com.book.manager.service.BookService;

import com.book.manager.service.BorrowService;

import com.book.manager.util.R;

import com.book.manager.util.consts.Constants;

import com.book.manager.util.http.CodeEnum;

import com.book.manager.util.ro.RetBookIn;

import com.book.manager.util.vo.BackOut;

import com.book.manager.util.vo.BookOut;

import io.swagger.annotations.Api;

import io.swagger.annotations.ApiOperation;

import org.springframework.beans.BeanUtils;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.*;

import java.util.ArrayList;

import java.util.Date;

import java.util.List;

/**

  • @Description 用户管理

*/

@Api(tags = “借阅管理”)

@RestController

@RequestMapping(“/borrow”)

public class BorrowController {

@Autowired

private BorrowService borrowService;

@Autowired

private BookService bookService;

@ApiOperation(“借阅列表”)

@GetMapping(“/list”)

public R getBorrowList(Integer userId) {

return R.success(CodeEnum.SUCCESS,borrowService.findAllBorrowByUserId(userId));

}

@ApiOperation(“借阅图书”)

@PostMapping(“/add”)

public R addBorrow(@RequestBody Borrow borrow) {

Integer result = borrowService.addBorrow(borrow);

if (result == Constants.BOOK_BORROWED) {

return R.success(CodeEnum.BOOK_BORROWED);

}else if (result == Constants.USER_SIZE_NOT_ENOUGH) {

return R.success(CodeEnum.USER_NOT_ENOUGH);

}else if (result == Constants.BOOK_SIZE_NOT_ENOUGH) {

return R.success(CodeEnum.BOOK_NOT_ENOUGH);

}

return R.success(CodeEnum.SUCCESS,Constants.OK);

}

@ApiOperation(“编辑借阅”)

@PostMapping(“/update”)

public R modifyBorrow(@RequestBody Borrow borrow) {

return R.success(CodeEnum.SUCCESS,borrowService.updateBorrow(borrow));

}

@ApiOperation(“借阅详情”)

@GetMapping(“/detail”)

public R borrowDetail(Integer id) {

return R.success(CodeEnum.SUCCESS,borrowService.findById(id));

}

@ApiOperation(“删除归还记录”)

@GetMapping(“/delete”)

public R delBorrow(Integer id) {

borrowService.deleteBorrow(id);

return R.success(CodeEnum.SUCCESS);

}

@ApiOperation(“已借阅列表”)

@GetMapping(“/borrowed”)

public R borrowedList(Integer userId) {

List outs = new ArrayList<>();

if (userId!=null&&userId>0) {

// 获取所有 已借阅 未归还书籍

List borrows = borrowService.findBorrowsByUserIdAndRet(userId, Constants.NO);

for (Borrow borrow : borrows) {

BackOut backOut = new BackOut();

BookOut out = bookService.findBookById(borrow.getBookId());

BeanUtils.copyProperties(out,backOut);

backOut.setBorrowTime(DateUtil.format(borrow.getCreateTime(),Constants.DATE_FORMAT));

String endTimeStr = DateUtil.format(borrow.getEndTime(), Constants.DATE_FORMAT);

backOut.setEndTime(endTimeStr);

// 判断是否逾期

String toDay = DateUtil.format(new Date(), Constants.DATE_FORMAT);

int i = toDay.compareTo(endTimeStr);

if (i>0) {

backOut.setLate(Constants.YES_STR);

}else {

backOut.setLate(Constants.NO_STR);

}

outs.add(backOut);

}

}

return R.success(CodeEnum.SUCCESS,outs);

}

@ApiOperation(“归还书籍”)

@PostMapping(“/ret”)

public R retBook(Integer userId, Integer bookId) {

// 归还图书

borrowService.retBook(userId,bookId);

return R.success(CodeEnum.SUCCESS);

}

}

用户管理

package com.book.manager.controller;

import cn.hutool.core.bean.BeanUtil;

import cn.hutool.core.date.DateUtil;

import cn.hutool.core.util.StrUtil;

import com.book.manager.entity.Users;

import com.book.manager.service.UserService;

import com.book.manager.util.R;

import com.book.manager.util.consts.Constants;

import com.book.manager.util.consts.ConvertUtil;

import com.book.manager.util.http.CodeEnum;

import com.book.manager.util.vo.PageOut;

import com.book.manager.util.ro.PageIn;

import com.book.manager.util.vo.UserOut;

import com.github.pagehelper.PageInfo;

import io.swagger.annotations.Api;

import io.swagger.annotations.ApiOperation;

import org.springframework.beans.BeanUtils;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.security.core.context.SecurityContextHolder;

import org.springframework.web.bind.annotation.*;

import java.util.ArrayList;

import java.util.List;

import java.util.Map;

/**

  • @Description 用户管理

*/

@Api(tags = “用户管理”)

@RestController

@RequestMapping(“/user”)

public class UsersController {

@Autowired

private UserService userService;

@ApiOperation(“用户列表”)

@PostMapping(“/list”)

public R getUsers(@RequestBody PageIn pageIn) {

if (pageIn == null) {

return R.fail(CodeEnum.PARAM_ERROR);

}

// 封装分页出参对象

PageInfo userList = userService.getUserList(pageIn);

PageOut pageOut = new PageOut();

pageOut.setCurrPage(userList.getPageNum());

pageOut.setPageSize(userList.getPageSize());

pageOut.setTotal((int) userList.getTotal());

List outs = new ArrayList<>();

for (Users users : userList.getList()) {

UserOut out = new UserOut();

BeanUtils.copyProperties(users,out);

out.setIdent(ConvertUtil.identStr(users.getIdentity()));

out.setBirth(DateUtil.format(users.getBirthday(),Constants.DATE_FORMAT));

outs.add(out);

}

pageOut.setList(outs);

return R.success(CodeEnum.SUCCESS,pageOut);

}

// @ApiOperation(“添加用户”)

// @PostMapping(“/add”)

// public R addUsers(@RequestBody Users users) {

// return R.success(CodeEnum.SUCCESS,userService.addUser(users));

// }

@ApiOperation(“添加读者”)

@PostMapping(“/addReader”)

public R addReader(@RequestBody Users users) {

if (users == null) {

return R.fail(CodeEnum.PARAM_ERROR);

}

// 读者默认是普通用户

users.setIsAdmin(1);

return R.success(CodeEnum.SUCCESS,userService.addUser(users));

}

@ApiOperation(“添加管理员”)

@PostMapping(“/addAdmin”)

public R addAdmin(@RequestBody Users users) {

if (users == null) {

return R.fail(CodeEnum.PARAM_ERROR);

}

// 设置管理员权限

users.setIsAdmin(0);

return R.success(CodeEnum.SUCCESS,userService.addUser(users));

}

@ApiOperation(“编辑用户”)

@PostMapping(“/update”)

public R modifyUsers(@RequestBody Users users) {

return R.success(CodeEnum.SUCCESS,userService.updateUser(users));

}

@ApiOperation(“用户详情”)

@GetMapping(“/detail”)

public R userDetail(Integer id) {

Users user = userService.findUserById(id);

if (user!=null) {

UserOut out = new UserOut();

BeanUtils.copyProperties(user,out);

out.setBirth(DateUtil.format(user.getBirthday(),Constants.DATE_FORMAT));

out.setIdent(ConvertUtil.identStr(user.getIdentity()));

return R.success(CodeEnum.SUCCESS,out);

}

return R.fail(CodeEnum.NOT_FOUND);

}

@ApiOperation(“删除用户”)

@GetMapping(“/delete”)

public R delUsers(Integer id) {

userService.deleteUser(id);

return R.success(CodeEnum.SUCCESS);

}

@ApiOperation(“获取当前用户登陆信息”)

@GetMapping(“/currUser”)

public R getCurrUser() {

Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();

if (principal!=null) {

Map<String,Object> map = BeanUtil.beanToMap(principal);

String username = (String) map.get(“username”);

if (StrUtil.isNotBlank(username)) {

Users users = userService.findByUsername(username);

UserOut out = new UserOut();

BeanUtils.copyProperties(users,out);

out.setBirth(DateUtil.format(users.getBirthday(),Constants.DATE_FORMAT));

Integer identity = users.getIdentity();

String ident = “”;

if (identity == Constants.STUDENT) {

ident = Constants.STU_STR;

}else if (identity == Constants.TEACHER) {

ident = Constants.TEA_STR;

}else if (identity == Constants.OTHER) {

ident = Constants.OTHER_STR;

}else if (identity == Constants.ADMIN) {

ident = Constants.ADMIN_STR;

}

out.setIdent(ident);

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
STR;

}else if (identity == Constants.ADMIN) {

ident = Constants.ADMIN_STR;

}

out.setIdent(ident);

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

[外链图片转存中…(img-eJj660DW-1715352343355)]

[外链图片转存中…(img-0sHG7an4-1715352343356)]

[外链图片转存中…(img-5Tc68QZS-1715352343356)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

根据所作的需求分析可以得出,图书馆管理系统实施后,达到以下目标。 界面设计友好、美观。 数据存储安全、可靠。 信息分类清晰、准确。 强大的查询功能,保证数据查询的灵活性。 实现对图书借阅和归还过程的全程数据信息跟踪。 提供图书借阅排行榜,为图书馆管理员提供了真实的数据信息。 提供灵活、方便的权限设置功能,使整个系统的管理分工明确。 具有易维护性和易操作性。 操作注意事项 (1)本系统管理员用户名为:51aspx,密码为:51aspx (2)数据库位置:DB_51aspx(Sql2005格式) (3)读者类型不同,可借图书的本数也有所区别。 操作流程 (1)用户登录图书馆管理系统后,进入图书馆主界面,如图1.9所示,通过此界面可看到图书借阅排行榜和读者借阅排行榜,通过排行榜可以看出借阅图书的名称、图书类型、借阅次数及借阅读者等相关信息。 (2)单击“系统设置”/“图书馆信息”命令,对图书馆信息进行设置操作。 (3)单击“系统设置”/“管理员设置”命令,对管理员信息进行添加、权限设置、浏览及删除操作。 (5)单击“系统设置”/“书架管理”命令,对书架信息进行添加、修改及删除操作。 (6)单击“读者管理”/“读者类型管理”命令,对读者类型信息进行添加、修改及删除操作。 (7)单击“读者管理”/“读者档案管理”命令,对读者信息进行添加、修改、查看及删除操作。 (8)单击“图书管理”/“图书类型管理”命令,对图书类型进行添加、修改及删除操作。 (9)单击“图书管理”/“图书档案管理”命令,对图书信息进行添加、修改及删除操作。 (10)单击“图书借还”/“图书借阅”命令,对图书借阅信息添加操作。 (11)单击“图书借还”/“图书归还”命令,对图书归还信息进行添加操作。 (12)单击“系统查询”/“图书档案查询”命令,对图书档案信息进行查询操作。 (13)单击“系统查询”/“图书借阅查询”命令,对借阅的图书信息进行查询操作。 (14)单击“排行榜”/“图书借阅排行榜”命令,对图书借阅信息进行查看操作。 (15)单击“排行榜”/“读者借阅排行榜”命令,对读者借阅信息进行查看操作。 (16)单击“更改口令”按钮,对当前的用户密码进行修改操作。 (17)单击“退出系统”按钮,退出当前操作系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值