项目描述
临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问题,今天给大家介绍一篇基于Springboot的闲置图书共享系统设计与实现。
功能需求
本系统从需求分析和用户的操作角度,为保证图书的共享。下面对整个系统功能前端结构的设计和梳理,前端模块结构图如图1所示:
基于springboot的闲置图书共享系统业务处理后端管理员管理模块结构图如图2所示:
系统功能模块框架图
部分效果图
部分代码
@PostMapping("/saveBookInfo")
public ApiResult<BookInfo> saveBookInfo(
@SessionAttribute(name = SystemConstant.ACTIVE_USER) ActiveUser activeUser,
BookInfo bookInfo,
@RequestBody MultipartFile file) {
if (file != null) {
try {
String extension = FilenameUtils.getExtension(file.getOriginalFilename());
String nextId = snowflake.nextId().toString();
// 上传并返回新文件名称
String fileName = nextId + "." + extension;
file.transferTo(new File(baseDir, fileName));
bookInfo.setCoverImage(fileName);
} catch (Exception e) {
return apiResultComponent.error(ApiResultCodeEnum.UPLOAD_ERROR);
}
}
bookInfo.setOwnerUserId(activeUser.getUserId());
Boolean saveBookInfo = bookInfoService.saveBookInfo(bookInfo);
if (saveBookInfo) {
BookInfo bookInfoById = bookInfoService.getBookInfoById(bookInfo.getId());
return apiResultComponent.success(bookInfoById);
}
return apiResultComponent.error(ApiResultCodeEnum.ADD_ERROR);
}
@PostMapping("/updateBookInfo")
public ApiResult<BookInfo> updateBookInfo(BookInfo bookInfo, @RequestBody MultipartFile file) {
if (file != null) {
try {
String extension = FilenameUtils.getExtension(file.getOriginalFilename());
String nextId = snowflake.nextId().toString();
// 上传并返回新文件名称
String fileName = nextId + "." + extension;
file.transferTo(new File(baseDir, fileName));
String coverImage = bookInfo.getCoverImage();
FileUtils.deleteFile(new File(baseDir, coverImage).getAbsolutePath());
bookInfo.setCoverImage(fileName);
} catch (Exception e) {
return apiResultComponent.error(ApiResultCodeEnum.UPLOAD_ERROR);
}
}
Boolean updateBookInfo = bookInfoService.updateBookInfo(bookInfo);
if (updateBookInfo) {
BookInfo bookInfoById = bookInfoService.getBookInfoById(bookInfo.getId());
return apiResultComponent.success(bookInfoById);
}
return apiResultComponent.error(ApiResultCodeEnum.UPDATE_ERROR);
}
@PostMapping("/borrowBook")
public ApiResult<BookInfo> borrowBook(@SessionAttribute(SystemConstant.ACTIVE_USER) ActiveUser activeUser,
@RequestBody BookInfo bookInfo) {
Integer id = bookInfo.getId();
BookInfo bookInfoById = bookInfoService.getBookInfoById(id);
if (bookInfoById == null) {
return apiResultComponent.error(ApiResultCodeEnum.BOOK_INFO_NULL);
}
bookInfo.setBorrowed(true);
bookInfo.setBorrowUserId(activeUser.getUserId());
bookInfo.setBorrowedTime(new Date());
bookInfoService.updateBookInfo(bookInfo);
bookInfoById = bookInfoService.getBookInfoById(id);
return apiResultComponent.success(bookInfoById);
}
系统部署
系统开发后,在生产环境配置项目运行环境,具体步骤如下:
安装linux或者windows10操作系统;
安装JDK1.8并配置环境变量;
安装MySQL5.7版本数据库,创建数据库并执行脚本创建表;
本项目用到的技术和框架
1.开发语言:Java
2.开发模式:B/S
3.数据库:MySQL5.7
4.框架:Springboot+Mybaits
5.前端语言vue
本项目中的关键点
此系统的开发采用java语言开发,基于B/S结构,这些开发环境使系统更加完善。使用到的工具和技术都是开源免费的。
环境工具
开发工具 IDEA
硬件:笔记本电脑;
软件:Tomcat8.0 Web服务器、Navicat数据库客户端、MySQL;
操作系统:Windows 10;
其它软件:截图工具、常用浏览器;
以上是本系统的部分功能展示,如果你的选题正好相符,那么可以做毕业设计或课程设计使用。