基于SpringBoot的教师宿舍管理系统设计与实现(源码+调试)

本文主要是介绍基于SpringBoot的教师宿舍管理系统设计与实现(源码+调试),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

项目描述

临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。今天给大家介绍一篇基于SpringBoot的教师宿舍管理系统设计与实现。

功能需求

本教师宿舍管理系统通过分析和确定系统的角色和功能划分,按照业务合理区分为不同的菜单功能模块。从宿舍管理业务以及学校管理人员的角度出发,对每个功能的需求实现点进行人性化详细的构思。本系统未做完善的用户体系,只是简单的分为了三个用户分别为:

  1. 系统管理员:登录、教师管理、楼栋管理、宿舍管理、入住管理、宿管管理、管理员管理。
  2. 教师用户:教师管理、宿舍管理。
  3. 宿管用户:教师管理、宿舍管理、入住管理。
    具体功能可以根据角色权限配置菜单按钮。
部分效果图

在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

部分代码
  /*** 宿管存储服务*/@Autowiredprivate DormitoryManagerRepository dormitoryManagerRepository;@RequestMapping(method = RequestMethod.POST, path = "/login", produces = "application/json", consumes = "application/json")@ResponseBodypublic ResponseEntity<LoginResponse> login(@RequestBody LoginRequest loginRequest, HttpServletRequest request) {try {LoginResponse loginResponse = doLogin(loginRequest, request);return new ResponseEntity(loginResponse, HttpStatus.OK);} catch (Exception e) {return new ResponseEntity(null, HttpStatus.INTERNAL_SERVER_ERROR);}}@RequestMapping(method = RequestMethod.POST, path = "/logout", produces = "application/json", consumes = "application/json")@ResponseBodypublic ResponseEntity<LogoutResponse> logout(@RequestBody LogoutRequest logoutRequest, HttpServletRequest request) {try {LogoutResponse logoutResponse = doLogout(logoutRequest, request);return new ResponseEntity(logoutResponse, HttpStatus.OK);} catch (Exception e) {return new ResponseEntity(null, HttpStatus.INTERNAL_SERVER_ERROR);}}public LogoutResponse doLogout(LogoutRequest logoutRequest, HttpServletRequest request) {LogoutResponse logoutResponse = new LogoutResponse();logoutResponse.setOperator(logoutRequest.getOperator());logoutResponse.setRequestId(logoutRequest.getRequestId());request.getSession().setAttribute("user", null);request.getSession().setAttribute("userType", null);logoutResponse.setResponseCode(ResponseCodeEnum.SUCCESS);logoutResponse.setTimestamp(System.currentTimeMillis());return logoutResponse;}private LoginResponse doLogin(LoginRequest loginRequest, HttpServletRequest request) {//登录返回信息LoginResponse loginResponse = new LoginResponse();loginResponse.setOperator(loginRequest.getOperator());loginResponse.setRequestId(loginRequest.getRequestId());//验证码校验Object cpacha = request.getSession().getAttribute("cpacha");//校验session数据是否失效if (null == cpacha || !StringUtils.hasLength(String.valueOf(cpacha))) {//验证码已失效loginResponse.setResponseCode(ResponseCodeEnum.CPACHA_INVALID);loginResponse.setTimestamp(System.currentTimeMillis());return loginResponse;} else {String[] cpachaCode = cpacha.toString().split("_");long time = Long.parseLong(cpachaCode[1]);long now = System.currentTimeMillis();if (now - time > cpachaTimeout) {//验证码已过期loginResponse.setResponseCode(ResponseCodeEnum.CPACHA_INVALID);loginResponse.setTimestamp(System.currentTimeMillis());return loginResponse;}// 设置不区分大小写if (!loginRequest.getCaptcha().toUpperCase().equals(cpachaCode[0].toUpperCase())) {//验证码输入错误loginResponse.setResponseCode(ResponseCodeEnum.CPACHA_INVALID);loginResponse.setTimestamp(System.currentTimeMillis());return loginResponse;}}//登录信息校验if ("1".equals(loginRequest.getType())) {// 超级管理员用户AdminEntity admingEntity = adminRepository.findByName(loginRequest.getAccount());if (null == admingEntity) {//账户不存在loginResponse.setResponseCode(ResponseCodeEnum.ACCOUNT_NOT_EXIST);loginResponse.setTimestamp(System.currentTimeMillis());return loginResponse;} else {if (!loginRequest.getPassword().equals(admingEntity.getPassword())) {//密码错误loginResponse.setResponseCode(ResponseCodeEnum.PASSWORD_ERROR);loginResponse.setTimestamp(System.currentTimeMillis());return loginResponse;} else {request.getSession().setAttribute("user", loginRequest.getAccount());request.getSession().setAttribute("userType", loginRequest.getType());loginResponse.setResponseCode(ResponseCodeEnum.SUCCESS);loginResponse.setTimestamp(System.currentTimeMillis());return loginResponse;}}} else if ("3".equals(loginRequest.getType())) {// 教师登录TeacherEntity studentEntity = studentRepository.findBySn(loginRequest.getAccount());if (null == studentEntity) {List<TeacherEntity> studentEntityList = studentRepository.findByName(loginRequest.getAccount());if (studentEntityList.size() > 1) {loginResponse.setResponseCode(ResponseCodeEnum.SAME_NAME);loginResponse.setTimestamp(System.currentTimeMillis());return loginResponse;} else if (studentEntityList.size() == 1) {studentEntity = studentEntityList.get(0);} else {loginResponse.setResponseCode(ResponseCodeEnum.ACCOUNT_NOT_EXIST);loginResponse.setTimestamp(System.currentTimeMillis());return loginResponse;}}if (!loginRequest.getPassword().equals(studentEntity.getPassword())) {//密码错误loginResponse.setResponseCode(ResponseCodeEnum.PASSWORD_ERROR);loginResponse.setTimestamp(System.currentTimeMillis());return loginResponse;} else {request.getSession().setAttribute("user", loginRequest.getAccount());request.getSession().setAttribute("userType", loginRequest.getType());loginResponse.setResponseCode(ResponseCodeEnum.SUCCESS);loginResponse.setTimestamp(System.currentTimeMillis());return loginResponse;}} else if ("2".equals(loginRequest.getType())) {// 宿管登录DormitoryManagerEntity dormitoryManagerEntity = dormitoryManagerRepository.findBySn(loginRequest.getAccount());if (null == dormitoryManagerEntity) {List<DormitoryManagerEntity> dormitoryManagerEntityList = dormitoryManagerRepository.findByName(loginRequest.getAccount());if (dormitoryManagerEntityList.size() > 1) {loginResponse.setResponseCode(ResponseCodeEnum.SAME_NAME);loginResponse.setTimestamp(System.currentTimeMillis());return loginResponse;} else if (dormitoryManagerEntityList.size() == 1) {dormitoryManagerEntity = dormitoryManagerEntityList.get(0);} else {loginResponse.setResponseCode(ResponseCodeEnum.ACCOUNT_NOT_EXIST);loginResponse.setTimestamp(System.currentTimeMillis());return loginResponse;}}if (!loginRequest.getPassword().equals(dormitoryManagerEntity.getPassword())) {//密码错误loginResponse.setResponseCode(ResponseCodeEnum.PASSWORD_ERROR);loginResponse.setTimestamp(System.currentTimeMillis());return loginResponse;} else {request.getSession().setAttribute("user", loginRequest.getAccount());request.getSession().setAttribute("userType", loginRequest.getType());loginResponse.setResponseCode(ResponseCodeEnum.SUCCESS);loginResponse.setTimestamp(System.currentTimeMillis());return loginResponse;}} else {//不支持其他登录方式loginResponse.setResponseCode(ResponseCodeEnum.PARAM_ERROR);loginResponse.setTimestamp(System.currentTimeMillis());return loginResponse;} 
安装部署需求

idea运行启动

系统部署

系统开发后,在生产环境配置项目运行环境,具体步骤如下:
安装linux或者windows10操作系统;
安装JDK1.8并配置环境变量;
安装MySQL5.7版本以上版本数据库,创建数据库并执行脚本创建表;
在idea中运行打包;

本项目用到的技术和框架

1.开发语言:Java
2.开发模式:B/S
3.数据库:MySQL5.7
4.框架:SpringBoot+bootstrap

本项目中的关键点

此系统的开发采用java语言开发,基于B/S结构,这些开发环境使系统更加完善。使用到的工具和技术都是开源免费的。

环境工具

开发工具 IDEA
语言 JDK1.8 、SpringBoot、bootstrap
硬件:笔记本电脑;
软件:Tomcat8.0 Web服务器、Navicat数据库客户端、MySQL;
操作系统:Windows 10;
其它软件:截图工具、常用浏览器;
以上是本系统的部分功能展示,如果你的选题正好相符,那么可以做毕业设计或课程设计使用。

这篇关于基于SpringBoot的教师宿舍管理系统设计与实现(源码+调试)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/737310

相关文章

Java中JSON格式反序列化为Map且保证存取顺序一致的问题

《Java中JSON格式反序列化为Map且保证存取顺序一致的问题》:本文主要介绍Java中JSON格式反序列化为Map且保证存取顺序一致的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未... 目录背景问题解决方法总结背景做项目涉及两个微服务之间传数据时,需要提供方将Map类型的数据序列化为co

Java Lambda表达式的使用详解

《JavaLambda表达式的使用详解》:本文主要介绍JavaLambda表达式的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、前言二、Lambda表达式概述1. 什么是Lambda表达式?三、Lambda表达式的语法规则1. 无参数的Lambda表

java中Optional的核心用法和最佳实践

《java中Optional的核心用法和最佳实践》Java8中Optional用于处理可能为null的值,减少空指针异常,:本文主要介绍java中Optional核心用法和最佳实践的相关资料,文中... 目录前言1. 创建 Optional 对象1.1 常规创建方式2. 访问 Optional 中的值2.1

Spring Boot 整合 Apache Flink 的详细过程

《SpringBoot整合ApacheFlink的详细过程》ApacheFlink是一个高性能的分布式流处理框架,而SpringBoot提供了快速构建企业级应用的能力,下面给大家介绍Spri... 目录Spring Boot 整合 Apache Flink 教程一、背景与目标二、环境准备三、创建项目 & 添

Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析

《Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析》InstantiationAwareBeanPostProcessor是Spring... 目录一、什么是InstantiationAwareBeanPostProcessor?二、核心方法解

IDEA如何实现远程断点调试jar包

《IDEA如何实现远程断点调试jar包》:本文主要介绍IDEA如何实现远程断点调试jar包的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录问题步骤总结问题以jar包的形式运行Spring Boot项目时报错,但是在IDEA开发环境javascript下编译

深入解析 Java Future 类及代码示例

《深入解析JavaFuture类及代码示例》JavaFuture是java.util.concurrent包中用于表示异步计算结果的核心接口,下面给大家介绍JavaFuture类及实例代码,感兴... 目录一、Future 类概述二、核心工作机制代码示例执行流程2. 状态机模型3. 核心方法解析行为总结:三

Spring @RequestMapping 注解及使用技巧详解

《Spring@RequestMapping注解及使用技巧详解》@RequestMapping是SpringMVC中定义请求映射规则的核心注解,用于将HTTP请求映射到Controller处理方法... 目录一、核心作用二、关键参数说明三、快捷组合注解四、动态路径参数(@PathVariable)五、匹配请

Java -jar命令如何运行外部依赖JAR包

《Java-jar命令如何运行外部依赖JAR包》在Java应用部署中,java-jar命令是启动可执行JAR包的标准方式,但当应用需要依赖外部JAR文件时,直接使用java-jar会面临类加载困... 目录引言:外部依赖JAR的必要性一、问题本质:类加载机制的限制1. Java -jar的默认行为2. 类加

Java进程CPU使用率过高排查步骤详细讲解

《Java进程CPU使用率过高排查步骤详细讲解》:本文主要介绍Java进程CPU使用率过高排查的相关资料,针对Java进程CPU使用率高的问题,我们可以遵循以下步骤进行排查和优化,文中通过代码介绍... 目录前言一、初步定位问题1.1 确认进程状态1.2 确定Java进程ID1.3 快速生成线程堆栈二、分析