摘 要
在现代高等教育管理中,学生公寓的管理逐渐成为影响学生生活质量与校园管理效率的重要因素。本论文引入信息化技术,构建一个功能完善、安全高效的学生公寓管理平台,以提升学生公寓管理效率和质量。本研究经过深入分析学生公寓管理的现状和用户需求调研,采用面向对象的开发方法,应用SSM作为后端框架实现后端业务逻辑,配合MySQL数据库实现数据的高效管理和安全传输储存,通过MVC设计模式,有效分离了业务逻辑与数据呈现,提升了系统可维护性。在实现过程中,重视数据安全与用户权限管理,通过Shiro框架实现细粒度的权限控制,确保各类用户能安全、便捷地使用系统。面对学生、宿管、维修员和管理员等用户,实现了包括用户管理、通知公告管理、宿舍信息管理、维修申请、出入登记、住宿申请、访客预约、投诉建议、考勤记录、费用管理以及数据统计等功能模块,满足整个学生公寓事务审批和信息管理业务流程。通过系统测试与用户反馈,证明该系统具备良好的稳定性和可扩展性,能够有效提高管理的效率,改善信息流通,提升用户体验和生活质量,而且能够规范化和系统化宿舍管理,推动宿舍和校园的信息化建设。
关键词:学生公寓管理系统;Shiro框架;SSM框架;Java语言;校园宿舍
Abstract
In modern higher education management, the management of student dormitories has gradually become an important factor affecting students' quality of life and campus management efficiency. This paper introduces information technology to build a fully functional, secure, and efficient student apartment management platform, in order to improve the efficiency and quality of student apartment management. This study conducted an in-depth analysis of the current situation of student apartment management and user demand research. Using object-oriented development methods, SSM was applied as the backend framework to implement backend business logic, and MySQL database was used to achieve efficient data management and secure transmission and storage. The MVC design pattern effectively separated business logic from data presentation, improving system maintainability. In the implementation process, we attach great importance to data security and user permission management, and implement fine-grained permission control through the Shiro framework to ensure that all types of users can safely and conveniently use the system. Facing users such as students, dormitory managers, maintenance personnel, and administrators, functional modules including user management, notification and announcement management, dormitory information management, maintenance application, entry and exit registration, accommodation application, visitor reservation, complaint suggestions, attendance records, expense management, and data statistics have been implemented to meet the entire business process of student apartment affairs approval and information management. Through system testing and user feedback, it has been proven that the system has good stability and scalability, can effectively improve management efficiency, enhance information flow, improve user experience and quality of life, and can standardize and systematize dormitory management, promoting the informationization construction of dormitories and campuses.
Keywords:Student apartment management system; Shiro framework; SSM framework; Java language; Campus Dormitory
目 录
1绪论
1.1研究背景与意义
1.1.1研究背景
随着高校招生规模的不断扩大,学生公寓作为高校重要的生活设施,其管理工作面临着前所未有的挑战。然而,传统的学生公寓管理方式多依赖人工操作,,存在信息传递不畅、数据统计困难、管理效率低下等问题,无法满足快速发展的校园需求。此外,学生对住宿条件、管理便捷性及安全性的要求日益提高,致使高校必须探索一种更为高效、智能的管理方案,以应对日益复杂的管理需求。此外,信息技术的迅猛发展为高校管理系统的开发提供了良好的技术基础。同时,Apache Shiro作为一款功能强大的安全框架,为用户身份验证与权限控制提供了有力支持。
1.1.2研究意义
本项目旨在引入信息化技术设计和实现一套功能全面和安全性高的学生公寓管理系统,为高校学生公寓管理提供一个可操作的解决方案,满足学校日常业务管理和用户多元需求,提升管理效率和用户体验。基于SSM的学生公寓管理系统的开发,通过信息化手段提高学生公寓管理的自动化水平,简化管理流程,提升整体工作效率。通过建立信息共享平台,打破信息孤岛,提供高效的服务,提高宿舍管理的透明度和信息流通效率,提升用户体验。同时,利用Shiro框架实现安全的用户身份验证与权限控制,确保各类用户在系统中安全、规范地进行操作,加强安全管理,保障信息安全。通过系统化的数据统计功能,帮助管理者及时掌握公寓运行状态,做出数据驱动的决策,提升管理的科学性。此外,本研究不仅可以更好地解决当前学生公寓管理中的诸多问题,也为高校管理的数字化转型提供实践参考,推动高等教育管理的现代化进程,有助于校内管理的持续优化。综上所述,本研究不仅满足了实际应用的需要,也在理论上为相关领域的研究提供了新的视角和思路,具有重要理论价值和实践意义。
1.2国内外研究现状
1.2.1国内研究现状
随着高等教育的不断发展和信息技术的进步,学生公寓管理系统的研究逐渐受到国内研究者的重视。各大高校纷纷开始推动学生公寓管理的信息化,探索将信息技术应用于学生公寓管理中,以提高管理的效率与实时性。例如,提出通过开发基于Web的公寓管理系统,实现宿舍信息的动态更新与管理,简化管理流程。随着物联网、大数据等技术的发展,国内研究尝试将智能化技术应用于宿舍管理中,探讨基于智能传感器和移动互联网的宿舍设备管理方案,提升宿舍的安全性和舒适性。如通过智能门禁系统、环境监测系统等系统的实现宿舍管理的智能化,提升公寓的安全性和生活便利性。国内研究还注重构建科学的管理模型以优化宿舍资源的分配,提高空间利用率。通过数据分析与模拟,提出了一系列优化方案与管理策略,为有效管理学生公寓提供理论支持。
1.2.2国外研究现状
国外方面,关于学生公寓管理的研究同样引起了广泛关注。欧美等国家依托先进的IT技术,已开发出功能齐全的宿舍管理平台,这些系统通常集成了租赁管理、财务管理、维修服务、信息查询等功能,并注重系统的架构设计与模块化开发,确保系统的灵活性与扩展性。例如美国的“SmartHousing”系统,集成了在线申请、访客管理、维修请求等功能,并提供实时的统计分析,帮助管理员做出更有效的决策。同时,国外侧重于探索智能校园建设,许多高校将学生公寓纳入智能校园的框架中,研究主要集中在如何通过智能化技术,例如数据分析、人工智能、区块链等新兴技术,实现学生住宿管理的智慧化和数字化,增强公寓管理的可持续性;并在系统中引入云计算和大数据分析,以支持多维度的数据挖掘。这些先进的研究成果为国内系统的进一步改进提供了重要的参考。
1.3论文章节安排
本文主要围绕如何基于SSM架构设计与实现一套学生公寓管理系统,主要包含绪论、相关技术介绍、系统分析、系统设计、系统实现、系统测试、结论等内容,具体论文章节和结构如下。
绪论:本章主要介绍学生公寓管理系统的研究背景和意义、国内外研究现状及论文的整体结构安排。
相关技术介绍:本章详细描述Java语言、SSM框架、MySQL数据库等关键技术各自的特点及其在项目中的作用。
系统分析:本章从需求分析入手,明确系统的功能需求和非功能需求,包含可行性、功能、用例及性能等方面,为系统开发奠定基础。
系统设计:本章主要从软件工程的角度,对系统的架构、功能、数据库等方面对系统进行详细设计。
系统实现:本章介绍系统开发实现过程,具体描述关键模块的实现细节并给出界面截图。
系统测试:本章说明系统测试方案、测试用例及测试结果,以验证系统功能和性能。
结论:本章主要总结研究成果,指出系统不足之处,并对未来工作提出展望。
2开发环境及技术架构
2.1开发环境与工具
学生公寓管理系统使用Java语言作为主要语言,基于SSM框架开发而成,存储数据使用的是使用较为广泛的MySQL数据库,利用Shiro框架实现用户权限管理,确保不同角色能够顺利进行相应操作,提升系统安全性。系统所使用的系统开发环境如下表所示。
表2-1系统开发环境
| 开发环境类型 | 开发技术和工具名称 |
| 操作系统版本 | Win10 |
| 数据库环境 | MySQL5.7 |
| JDK版本 | JDK1.8.0_191 |
| 开发语言 | Java |
| 主要技术 | SShiro、SM、Apache Tomcat8.5、Webpack 4.0、Element UI、Navicat、bootstrap…… |
| Chrome |
- Java
Java是一种广泛使用的编程语言,具有跨平台和面向对象的特性[1]。它的成熟生态和丰富的库使得开发者能够高效构建复杂的应用程序。在项目中,Java主要用于后端逻辑的实现,为服务提供稳定和高效的支持[2]。
- MySQL
MySQL是一款广受欢迎的关系数据库管理系统,它能够高效地存储和处理大量的数据[3]。MySQL在Web应用程序中有着卓越的表现,是众多开发者的首选。MySQL遵循SQL语言的标准,这是一种通用的数据库操作语言,简单易学,功能强大[4]。结合Apache服务器,MySQL可以构建出一个优秀的开发环境。
- SSM
SSM 是 Spring、Spring MVC 和 MyBatis 三个框架的组合,常用于开发企业级应用[5]。在本系统中,SSM可以帮助开发者快速搭建后端服务,并实现各种功能模块的集成和管理。
Mybatis是一个优秀的持久层框架,它支持定制化SQL、存储过程和高级映射。Mybatis可以消除大部分的JDBC代码和参数的手工设置,让开发者更方便地操作数据库。Mybatis可以和Spring框架完美地集成,提高开发效率和性能。
Tomcat是一种免费的服务器,它能够有效地处理大量的网络访问,特别是在访问量较少的情况下。当将Tomcat安装在电脑上时,它能够自动分析前端HTML页面的请求,从而提高网络的性能。事实上,Tomcat是对Apache的一种延伸,但它与Apache之间的关系更加紧密,因为它们在不同的进程中运行,而且它们之间也有着自己的独立性。
2.2技术架构
本学生公寓管理系统采用分层架构,基于SSM框架,使用B/S模式,将用户界面、业务逻辑和数据访问分离,使得系统更具可维护性和可扩展性。同时,采用Shiro安全框架确保系统的安全性,利用MySQL作为数据存储解决方案提供高效和可靠的数据管理。整个系统架构灵活、可扩展,能够有效支持学生公寓管理的需求。
2.2.1B/S模式
B/S模式,即浏览器/服务器模式,是一种常见的网络应用架构模式。在B/S模式中,用户通过浏览器作为客户端与服务器进行交互。在浏览器/服务器(browser / Server Architecture)系统中,用户只需通过浏览器,就能够轻松地向分布在网络各处的众多服务器发送海量的请求[6]。B/S系统大大地简化了客户端的工作,让用户体验更加便捷。
2.2.2Shiro框架
Shiro是一个强大的安全框架,主要用于用户认证、授权、加密、会话管理等方面。在该学生公寓管理系统中,Shiro框架的主要作用是实现用户权限管理和安全控制。Shiro通过用户名和密码等方式进行用户的身份认证,确保只有合法用户能够访问系统。Shiro通过角色和权限控制,确保不同的用户可以访问不同的资源。例如,管理员可以管理所有宿舍信息,学生只能查看个人的宿舍信息。同时,Shiro提供了完善的会话管理功能,支持Session的创建、维护和销毁。使得系统在用户权限控制和安全方面更加可靠,保障了系统的安全性。
2.2.3SSM框架
SSM框架是一个广泛应用于Java Web开发的轻量级框架,主要由Spring、Spring MVC和MyBatis三个核心组件构成。Spring负责提供业务逻辑层的管理和依赖注入,Spring MVC处理请求和响应,负责前端与后端的数据交互,而MyBatis则用于数据持久化操作,简化了SQL语句的编写与执行[7]。SSM框架采用分层架构,各层之间松耦合,便于开发和维护。它提供了优雅的事务管理和良好的扩展性,使得开发人员能够更高效地构建灵活且易于维护的Web应用[8]。
2.3本章小结
本章主要详细介绍了实现学生公寓管理系统所依赖的关键技术,包括Java语言、SSM框架,Shiro框架,前端技术的选择与应用,以及数据库管理和服务器部署方案。通过这些技术的结合使用,确保了系统具有良好的扩展性和维护性,同时也提升了用户体验。
3 需求分析
3.1可行性分析
通过综合考虑经济、操作、技术等因素,可以对基于SSM的学生公寓管理系统的可行性进行全面评估。这将有助于确定项目的成功概率,并为项目规划提供坚实的基础。
3.1.1经济可行性分析
在项目上所使用的Java语言、SSM框架等开发技术和工具大部分都是当下流行开源免费的,且在校内进行过系统学习,能够由本人独自完成开发,大大降低了项目开发成本。所以系统在开发人力、财力上要求不高,而且此系统不是很复杂,开发周期短。此外系统上线后,可通过广告和其他增值服务创造营收以支撑系统运维成本。所以,在经济方面具有较高的可行性。
3.1.2技术可行性分析
当前,SSM框架已被广泛应用于Web开发领域,具有丰富的开发社区支持和技术文档。Shiro框架能够实现快速的用户的认证与授权,保证系统的安全性,并管理用户的会话,控制用户访问权限。系统的硬件与软件环境均可通过现有的服务器资源进行搭建,网络连接和数据库等基础设施完整,技术上具备实现该项目的能力。
3.1.3操作可行性分析
本系统将考虑用户的具体需求,通过用户测试与反馈不断优化界面与功能。同时系统的设计注重易用性,界面设计简洁直观,操作流程清晰明了,以确保各类用户均顺利操作,具有基本计算机知识的人即可流畅使用本系统。因此操作可行性也没有问题。
3.2功能需求分析
通过对应的功能做了需求分析以后该学生公寓管理系统各角色主要包括的功能说明如下。
根据使用该系统的用户角色可以划分为学生用户、宿管用户、维修用户和管理员,其中管理员是系统最高权限拥有者,负责维护和管理系统。
- 学生用户角色:
- 登录:提供登录功能,学生用户通过输入用户名和密码进行登录,系统将进行身份验证,根据权限设置控制访问,可修改资料和密码。
- 后台首页: 提供学生用户登录后的管理首页,展示系统的重要信息和功能入口。
- 通知公告管理:学生用户可以查阅通知公告信息,浏览通知公告详细内容。
- 宿舍信息管理:学生用户可以查阅宿舍信息,浏览宿舍信息详细内容,提供维修申请、出入登记、住宿申请、访客预约、投诉建议等操作。支持学生提交维修申请、出入登记、住宿申请、访客预约等申请信息,并可进行投诉建议。
- 维修申请管理:学生用户可以查阅和添加自己的维修申请信息,确认维修申请的审核情况,跟踪维修进度。
- 出入登记管理:学生用户可以查阅和添加自己的出入登记信息。
- 住宿申请管理:学生用户可以查阅和添加自己的住宿申请信息,确认住宿申请的审核情况。
- 访客预约管理:学生用户可以查阅和添加自己的访客预约信息,确认访客预约信息的审核情况。
- 投诉建议管理:学生用户可以查阅和添加自己的投诉建议信息,确认投诉建议信息的审核处理情况。
- 考勤记录管理:学生用户可以查阅自己的考勤记录信息,浏览考勤记录的详细内容。
- 费用信息管理:学生用户可以查阅自己的费用信息信息,浏览费用信息的详细内容,并支付费用账单。
学生公寓管理系统学生用户角色用例图如下所示。

图3-1 学生用户角色用例图
- 宿管用户角色:
- 登录:提供登录功能,宿管用户通过输入用户名和密码进行登录,系统将进行身份验证,根据权限设置控制访问,可修改资料和密码。
- 后台首页: 提供宿管用户登录后的管理首页,展示系统的重要信息和功能入口。
- 通知公告管理:宿管用户可查阅和管理通知公告信息,支持宿管用户发布通知公告,及更新、删除通知公告。
- 宿舍信息管理:宿管用户可查阅宿舍信息功能,浏览宿舍信息详细内容,提供录入考勤、录入费用等操作。负责录入学生用户的考勤和费用信息
- 维修申请管理:宿管用户可以查阅学生用户提交给自己的维修申请信息,负责审核维修申请,并更新维修人员信息。
- 出入登记管理:宿管用户可以查阅学生用户提交给自己的出入登记信息。
- 住宿申请管理:宿管用户可以查阅学生用户提交给自己的住宿申请信息,负责审核住宿申请。
- 访客预约管理:宿管用户可以查阅学生用户提交给自己的访客预约信息,负责审核访客预约,并更新访客记录信息。
- 投诉建议管理:宿管用户可以查阅学生用户提交给自己的投诉建议信息,负责审核投诉建议。
- 考勤记录管理:宿管用户可以查阅自己添加的考勤记录信息,支持浏览和更新考勤记录的详细内容。
- 费用信息管理:宿管用户可以查阅自己添加的费用信息信息,支持浏览和更新费用信息的详细内容。
学生公寓管理系统宿管用户角色用例图如下所示。

图3-2 宿管用户角色用例图
- 维修用户角色:
- 登录:提供登录功能,维修用户通过输入用户名和密码进行登录,系统将进行身份验证,根据权限设置控制访问,可修改资料和密码。
- 后台首页: 提供维修用户登录后的管理首页,展示系统的重要信息和功能入口。
- 通知公告管理:维修用户可以查阅通知公告信息,浏览通知公告详细内容。
- 维修申请管理:维修用户可以查阅分配给自己的维修申请信息,浏览维修申请详细内容,支持更新维修状态和编辑维修回复。
学生公寓管理系统维修用户角色用例图如下所示。

图3-3 维修用户角色用例图
- 管理员角色:
- 登录:提供登录功能,管理员账户直接在数据库添加,使用账号密码可直接登录系统,负责维护系统正常运行,可修改资料和密码。
- 后台首页: 提供管理员登录后的管理首页,展示系统的重要信息、功能入口及数据统计信息(包含宿舍信息、维修申请等统计图)。
- 系统用户:提供查阅和管理系统用户功能,包含管理员对管理员、学生用户、宿管用户和维修用户等用户信息的添加、更新、封禁和删除等操作。
- 通知公告管理:提供查阅和管理通知公告功能,支持管理员发布通知公告,及更新、删除通知公告。
- 宿舍信息管理:提供查阅和管理宿舍信息功能,管理员可以增改删查宿舍信息,实现维修申请、出入登记、住宿申请、访客预约、投诉建议、录入考勤、录入费用等操作。
- 维修申请管理:提供查阅和管理维修申请功能,管理员可以更新和删除维修申请信息,提供审核操作。
- 出入登记管理:提供查阅和管理出入登记功能,支持管理员更新和删除出入登记信息。
- 住宿申请管理:提供查阅和管理住宿申请功能,管理员可以更新和删除住宿申请信息,提供审核操作。
- 访客预约管理:提供查阅和管理访客预约功能,支持管理员更新和删除访客预约信息,提供审核操作。
- 投诉建议管理:提供查阅和管理投诉建议功能,管理员可以更新和删除投诉建议信息,提供审核操作。
- 考勤记录管理:提供查阅和管理考勤记录功能,支持管理员更新和删除考勤记录信息,提供审核操作。
- 费用信息管理:提供查阅和管理费用信息功能,管理员可以更新和删除费用信息信息,提供支付操作。
学生公寓管理系统管理员角色用例图如下所示。

图3-4 管理员角色用例图
3.3性能需求分析
用户操作响应时间:系统应保证用户在操作平台时的响应速度,例如实现添加信息、搜索信息等操作应该迅速响应。
系统稳定性:平台应具备一定的容错能力和稳定性,防止因为意外情况导致系统崩溃。
数据安全:用户信息等敏感数据需要加密存储,确保数据安全性。
系统并发能力:平台应考虑到可能大量用户同时访问的情况,保证系统的并发处理能力。
日志记录:系统需要记录用户操作日志、异常日志等,便于排查问题和分析用户行为。
基于以上性能需求将确保学生公寓管理系统能够稳定、高效地运行,能够很好地满足用户和管理员的需求。
3.4系统流程分析
3.4.1用户注册流程图
注册的过程,第一部分是账号的注册,第二部分是信息完善。在业务开展过程中,管理员可对用户信息进行修改等管理操作,注册流程如图3-5用户注册流程图所示。

图3-5 用户注册流程图
3.4.2用户登录流程图
登录时,用户填写用户名、密码、选择身份进行登录,在登录过程中后端会对发送过来的信息进行验证和判断,具体的登录流程如图3-6用户登录流程图所示。

图3-6 用户登录流程图
3.5 本章小结
本章主要通过对学生公寓管理系统的可行性分析、功能需求分析、系统用例分析,性能需求分析等方面,确定整个学生公寓管理系统要实现的功能。同时也为学生公寓管理系统的代码实现和测试提供了标准。
4系统设计
4.1系统功能模块设计
基于学生公寓管理系统可以划分为学生用户模块,宿管用户模块、维修用户和管理员模块等四大部分。其中学生用户、宿管用户和维修用户是系统主要使用者。学生用户可搜索和浏览公告和宿舍等信息,提交维修申请、出入登记、访客预约记投诉建议,查阅考勤和费用信息;而宿管用户可快速管理通知公告、宿舍信息信息和处理审核学生申请。维修用户可查收维修信息,更新维修进度。系统管理员则负责系统各类信息的日常更新,进行系统设置和维护等关键任务。系统总体功能模块图如下图所示。
图4-1系统功能模块图
4.2数据库设计
数据库的设计是系统的设计中比较重要的一部分内容,是一切系统设计的基础,首先需要进行概念模型E-R图的设计,然后进行关系模型物理模型的建立[9]。
4.2.1E-R图设计
本文在系统分析阶段就抽取了一些实体,根据实体之间的关系,经过分析进行系统E-R图的设计。学生公寓管理系统总体E-R图如下图所示。
图4-3 系统总体E-R图
4.2.2数据表设计
本系统采MySQL数据库管理系统对数据进行管理。下面是对各个表中的表中各个字段数据类型、大小等做简短描述。学生公寓管理系统所需要的部分数据结构表如下表所示。
学生用户表主要存储学生用户的基本信息,包括学生用户ID、学生姓名、学生性别、学生电话、学生学号、学生状态、审核状态、用户ID、创建时间、更新时间等,学生用户表主要数据结构如下表所示。
表4-1 student_users(学生用户)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | student_users_id | int | 是 | 是 | 学生用户ID | |
| 2 | student_name | varchar | 64 | 否 | 否 | 学生姓名 |
| 3 | student_gender | varchar | 64 | 否 | 否 | 学生性别 |
| 4 | student_phone_number | varchar | 16 | 否 | 否 | 学生电话 |
| 5 | student_id | varchar | 64 | 是 | 是 | 学生学号 |
| 6 | student_status | varchar | 64 | 否 | 否 | 学生状态 |
| 7 | examine_state | varchar | 16 | 是 | 否 | 审核状态 |
| 8 | user_id | int | 是 | 否 | 用户ID | |
| 9 | create_time | datetime | 是 | 否 | 创建时间 | |
| 10 | update_time | timestamp | 是 | 否 | 更新时间 |
宿管用户表主要存储宿管用户的基本信息,包括宿管用户ID、宿管姓名、宿管性别、宿管电话、宿管工号、审核状态、用户ID、创建时间、更新时间等,宿管用户表主要数据结构如下表所示。
表4-2 dormitory_management_users(宿管用户)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | dormitory_management_users_id | int | 是 | 是 | 宿管用户ID | |
| 2 | name_of_dormitory_manager | varchar | 64 | 否 | 否 | 宿管姓名 |
| 3 | dormitory_management_gender | varchar | 64 | 否 | 否 | 宿管性别 |
| 4 | dormitory_management_phone_number | varchar | 16 | 否 | 否 | 宿管电话 |
| 5 | dormitory_management_worker_number | varchar | 64 | 是 | 是 | 宿管工号 |
| 6 | examine_state | varchar | 16 | 是 | 否 | 审核状态 |
| 7 | user_id | int | 是 | 否 | 用户ID | |
| 8 | create_time | datetime | 是 | 否 | 创建时间 | |
| 9 | update_time | timestamp | 是 | 否 | 更新时间 |
维修用户表主要存储维修用户的基本信息,包括维修用户ID、维修姓名、维修性别、维修电话、维修工号、审核状态、用户ID、创建时间、更新时间、等,维修用户表主要数据结构如下表所示。
表4-3 repair_users(维修用户)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | repair_users_id | int | 是 | 是 | 维修用户ID | |
| 2 | repair_name | varchar | 64 | 否 | 否 | 维修姓名 |
| 3 | repair_gender | varchar | 64 | 否 | 否 | 维修性别 |
| 4 | repair_phone_number | varchar | 16 | 否 | 否 | 维修电话 |
| 5 | maintenance_worker_number | varchar | 64 | 是 | 是 | 维修工号 |
| 6 | examine_state | varchar | 16 | 是 | 否 | 审核状态 |
| 7 | user_id | int | 是 | 否 | 用户ID | |
| 8 | create_time | datetime | 是 | 否 | 创建时间 | |
| 9 | update_time | timestamp | 是 | 否 | 更新时间 |
住宿申请表主要存储住宿申请的基本信息,包括住宿申请ID、宿管用户、宿舍楼栋、宿舍楼层、学生用户、学生学号、学生姓名、学生电话、申请日期、申请内容、审核状态、审核回复、创建时间、更新时间、来源表、来源ID、来源用户等,住宿申请表主要数据结构如下表所示。
表4-4 accommodation_application(住宿申请)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | accommodation_application_id | int | 是 | 是 | 住宿申请ID | |
| 2 | dormitory_management_users | int | 否 | 否 | 宿管用户 | |
| 3 | dormitory_building | varchar | 64 | 否 | 否 | 宿舍楼栋 |
| 4 | dormitory_floor | varchar | 64 | 否 | 否 | 宿舍楼层 |
| 5 | student_users | int | 否 | 否 | 学生用户 | |
| 6 | student_id | varchar | 64 | 否 | 否 | 学生学号 |
| 7 | student_name | varchar | 64 | 否 | 否 | 学生姓名 |
| 8 | student_phone_number | varchar | 64 | 否 | 否 | 学生电话 |
| 9 | application_date | date | 否 | 否 | 申请日期 | |
| 10 | application_content | text | 65535 | 否 | 否 | 申请内容 |
| 11 | examine_state | varchar | 16 | 是 | 否 | 审核状态 |
| 12 | examine_reply | varchar | 16 | 否 | 否 | 审核回复 |
| 13 | create_time | datetime | 是 | 否 | 创建时间 | |
| 14 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 15 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 16 | source_id | int | 否 | 否 | 来源ID | |
| 17 | source_user_id | int | 否 | 否 | 来源用户 |
考勤记录表主要存储考勤记录的基本信息,包括考勤记录ID、宿管用户、宿舍楼栋、宿舍楼层、学生用户、学生学号、学生姓名、学生电话、考勤日期、考勤类型、考勤内容、创建时间、更新时间、来源表、来源ID、来源用户等,考勤记录表主要数据结构如下表所示。
表4-5 attendance_record(考勤记录)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | attendance_record_id | int | 是 | 是 | 考勤记录ID | |
| 2 | dormitory_management_users | int | 否 | 否 | 宿管用户 | |
| 3 | dormitory_building | varchar | 64 | 否 | 否 | 宿舍楼栋 |
| 4 | dormitory_floor | varchar | 64 | 否 | 否 | 宿舍楼层 |
| 5 | student_users | int | 否 | 否 | 学生用户 | |
| 6 | student_id | varchar | 64 | 否 | 否 | 学生学号 |
| 7 | student_name | varchar | 64 | 否 | 否 | 学生姓名 |
| 8 | student_phone_number | varchar | 64 | 否 | 否 | 学生电话 |
| 9 | attendance_date | date | 否 | 否 | 考勤日期 | |
| 10 | attendance_type | varchar | 64 | 否 | 否 | 考勤类型 |
| 11 | attendance_content | text | 65535 | 否 | 否 | 考勤内容 |
| 12 | create_time | datetime | 是 | 否 | 创建时间 | |
| 13 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 14 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 15 | source_id | int | 否 | 否 | 来源ID | |
| 16 | source_user_id | int | 否 | 否 | 来源用户 |
投诉建议表主要存储投诉建议的基本信息,包括投诉建议ID、宿管用户、宿舍楼栋、宿舍楼层、学生用户、学生学号、学生姓名、学生电话、内容详情、审核状态、审核回复、创建时间、更新时间、来源表、来源ID、来源用户等,投诉建议表主要数据结构如下表所示。
表4-6 complaints_and_suggestions(投诉建议)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | complaints_and_suggestions_id | int | 是 | 是 | 投诉建议ID | |
| 2 | dormitory_management_users | int | 否 | 否 | 宿管用户 | |
| 3 | dormitory_building | varchar | 64 | 否 | 否 | 宿舍楼栋 |
| 4 | dormitory_floor | varchar | 64 | 否 | 否 | 宿舍楼层 |
| 5 | student_users | int | 否 | 否 | 学生用户 | |
| 6 | student_id | varchar | 64 | 否 | 否 | 学生学号 |
| 7 | student_name | varchar | 64 | 否 | 否 | 学生姓名 |
| 8 | student_phone_number | varchar | 64 | 否 | 否 | 学生电话 |
| 9 | content_details | text | 65535 | 否 | 否 | 内容详情 |
| 10 | examine_state | varchar | 16 | 是 | 否 | 审核状态 |
| 11 | examine_reply | varchar | 16 | 否 | 否 | 审核回复 |
| 12 | create_time | datetime | 是 | 否 | 创建时间 | |
| 13 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 14 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 15 | source_id | int | 否 | 否 | 来源ID | |
| 16 | source_user_id | int | 否 | 否 | 来源用户 |
费用信息表主要存储费用信息的基本信息,包括费用信息ID、宿管用户、宿舍楼栋、宿舍楼层、学生用户、学生学号、学生姓名、学生电话、费用名称、费用金额、费用备注、支付状态、支付类型、创建时间、更新时间、来源表、来源ID、来源用户等,费用信息表主要数据结构如下表所示。
表4-7 cost_information(费用信息)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | cost_information_id | int | 是 | 是 | 费用信息ID | |
| 2 | dormitory_management_users | int | 否 | 否 | 宿管用户 | |
| 3 | dormitory_building | varchar | 64 | 否 | 否 | 宿舍楼栋 |
| 4 | dormitory_floor | varchar | 64 | 否 | 否 | 宿舍楼层 |
| 5 | student_users | int | 否 | 否 | 学生用户 | |
| 6 | student_id | varchar | 64 | 否 | 否 | 学生学号 |
| 7 | student_name | varchar | 64 | 否 | 否 | 学生姓名 |
| 8 | student_phone_number | varchar | 64 | 否 | 否 | 学生电话 |
| 9 | cost_name | varchar | 64 | 否 | 否 | 费用名称 |
| 10 | cost_amount | double | 否 | 否 | 费用金额 | |
| 11 | expense_remarks | text | 65535 | 否 | 否 | 费用备注 |
| 12 | pay_state | varchar | 16 | 是 | 否 | 支付状态 |
| 13 | pay_type | varchar | 16 | 否 | 否 | 支付类型: 微信、支付宝、网银 |
| 14 | create_time | datetime | 是 | 否 | 创建时间 | |
| 15 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 16 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 17 | source_id | int | 否 | 否 | 来源ID | |
| 18 | source_user_id | int | 否 | 否 | 来源用户 |
宿舍信息表主要存储宿舍信息的基本信息,包括宿舍信息ID、宿管用户、宿舍楼栋、宿舍楼层、宿舍房号、床位床号、学生用户、学生学号、学生姓名、学生电话、学生人数、宿舍备注、维修申请限制次数、出入登记限制次数、住宿申请限制次数、访客预约限制次数、投诉建议限制次数、录入考勤限制次数、录入费用限制次数、创建时间、更新时间等,宿舍信息表主要数据结构如下表所示。
表4-8 dormitory_information(宿舍信息)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | dormitory_information_id | int | 是 | 是 | 宿舍信息ID | |
| 2 | dormitory_management_users | int | 否 | 否 | 宿管用户 | |
| 3 | dormitory_building | varchar | 64 | 否 | 否 | 宿舍楼栋 |
| 4 | dormitory_floor | varchar | 64 | 否 | 否 | 宿舍楼层 |
| 5 | dormitory_room_number | varchar | 64 | 否 | 否 | 宿舍房号 |
| 6 | bed_number | varchar | 64 | 否 | 否 | 床位床号 |
| 7 | student_users | int | 否 | 否 | 学生用户 | |
| 8 | student_id | varchar | 64 | 否 | 否 | 学生学号 |
| 9 | student_name | varchar | 64 | 否 | 否 | 学生姓名 |
| 10 | student_phone_number | varchar | 64 | 否 | 否 | 学生电话 |
| 11 | number_of_students | varchar | 64 | 否 | 否 | 学生人数 |
| 12 | dormitory_remarks | text | 65535 | 否 | 否 | 宿舍备注 |
| 13 | repair_request_limit_times | int | 是 | 否 | 维修申请限制次数 | |
| 14 | entry_and_exit_registration_limit_times | int | 是 | 否 | 出入登记限制次数 | |
| 15 | accommodation_application_limit_times | int | 是 | 否 | 住宿申请限制次数 | |
| 16 | visitor_reservation_limit_times | int | 是 | 否 | 访客预约限制次数 | |
| 17 | complaints_and_suggestions_limit_times | int | 是 | 否 | 投诉建议限制次数 | |
| 18 | attendance_record_limit_times | int | 是 | 否 | 录入考勤限制次数 | |
| 19 | cost_information_limit_times | int | 是 | 否 | 录入费用限制次数 | |
| 20 | create_time | datetime | 是 | 否 | 创建时间 | |
| 21 | update_time | timestamp | 是 | 否 | 更新时间 |
出入登记表主要存储出入登记的基本信息,包括出入登记ID、宿管用户、宿舍楼栋、宿舍楼层、学生用户、学生学号、学生姓名、学生电话、出入时间、出入类型、出入内容、创建时间、更新时间、来源表、来源ID、来源用户等,出入登记表主要数据结构如下表所示。
表4-9 entry_and_exit_registration(出入登记)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | entry_and_exit_registration_id | int | 是 | 是 | 出入登记ID | |
| 2 | dormitory_management_users | int | 否 | 否 | 宿管用户 | |
| 3 | dormitory_building | varchar | 64 | 否 | 否 | 宿舍楼栋 |
| 4 | dormitory_floor | varchar | 64 | 否 | 否 | 宿舍楼层 |
| 5 | student_users | int | 否 | 否 | 学生用户 | |
| 6 | student_id | varchar | 64 | 否 | 否 | 学生学号 |
| 7 | student_name | varchar | 64 | 否 | 否 | 学生姓名 |
| 8 | student_phone_number | varchar | 64 | 否 | 否 | 学生电话 |
| 9 | entry_and_exit_time | datetime | 否 | 否 | 出入时间 | |
| 10 | entry_and_exit_types | varchar | 64 | 否 | 否 | 出入类型 |
| 11 | entry_and_exit_content | text | 65535 | 否 | 否 | 出入内容 |
| 12 | create_time | datetime | 是 | 否 | 创建时间 | |
| 13 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 14 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 15 | source_id | int | 否 | 否 | 来源ID | |
| 16 | source_user_id | int | 否 | 否 | 来源用户 |
通知公告表主要存储通知公告的基本信息,包括通知公告ID、公告编号、公告标题、公告日期、公告图片、公告内容、创建时间、更新时间等,通知公告表主要数据结构如下表所示。
表4-10 notice_announcement(通知公告)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | notice_announcement_id | int | 是 | 是 | 通知公告ID | |
| 2 | announcement_number | varchar | 64 | 否 | 否 | 公告编号 |
| 3 | announcement_title | varchar | 64 | 否 | 否 | 公告标题 |
| 4 | announcement_date | date | 否 | 否 | 公告日期 | |
| 5 | announcement_image | varchar | 255 | 否 | 否 | 公告图片 |
| 6 | announcement_content | text | 65535 | 否 | 否 | 公告内容 |
| 7 | create_time | datetime | 是 | 否 | 创建时间 | |
| 8 | update_time | timestamp | 是 | 否 | 更新时间 |
维修申请表主要存储维修申请的基本信息,包括维修申请ID、宿管用户、宿舍楼栋、宿舍楼层、学生用户、学生学号、学生姓名、学生电话、报修日期、报修物件、报修内容、维修用户、维修状态、维修回复、审核状态、审核回复、创建时间、更新时间、来源表、来源ID、来源用户等,维修申请表主要数据结构如下表所示。
表4-11 repair_request(维修申请)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | repair_request_id | int | 是 | 是 | 维修申请ID | |
| 2 | dormitory_management_users | int | 否 | 否 | 宿管用户 | |
| 3 | dormitory_building | varchar | 64 | 否 | 否 | 宿舍楼栋 |
| 4 | dormitory_floor | varchar | 64 | 否 | 否 | 宿舍楼层 |
| 5 | student_users | int | 否 | 否 | 学生用户 | |
| 6 | student_id | varchar | 64 | 否 | 否 | 学生学号 |
| 7 | student_name | varchar | 64 | 否 | 否 | 学生姓名 |
| 8 | student_phone_number | varchar | 64 | 否 | 否 | 学生电话 |
| 9 | date_of_repair_report | date | 否 | 否 | 报修日期 | |
| 10 | reported_repair_object | varchar | 64 | 否 | 否 | 报修物件 |
| 11 | reported_repair_content | text | 65535 | 否 | 否 | 报修内容 |
| 12 | repair_users | int | 否 | 否 | 维修用户 | |
| 13 | maintenance_status | varchar | 64 | 否 | 否 | 维修状态 |
| 14 | repair_reply | text | 65535 | 否 | 否 | 维修回复 |
| 15 | examine_state | varchar | 16 | 是 | 否 | 审核状态 |
| 16 | examine_reply | varchar | 16 | 否 | 否 | 审核回复 |
| 17 | create_time | datetime | 是 | 否 | 创建时间 | |
| 18 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 19 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 20 | source_id | int | 否 | 否 | 来源ID | |
| 21 | source_user_id | int | 否 | 否 | 来源用户 |
访客预约表主要存储访客预约的基本信息,包括访客预约ID、宿管用户、宿舍楼栋、宿舍楼层、学生用户、学生学号、学生姓名、学生电话、来访时间、访客人数、预约内容、访客记录、审核状态、审核回复、创建时间、更新时间、来源表、来源ID、来源用户等,访客预约表主要数据结构如下表所示。
表4-12 visitor_reservation(访客预约)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | visitor_reservation_id | int | 是 | 是 | 访客预约ID | |
| 2 | dormitory_management_users | int | 否 | 否 | 宿管用户 | |
| 3 | dormitory_building | varchar | 64 | 否 | 否 | 宿舍楼栋 |
| 4 | dormitory_floor | varchar | 64 | 否 | 否 | 宿舍楼层 |
| 5 | student_users | int | 否 | 否 | 学生用户 | |
| 6 | student_id | varchar | 64 | 否 | 否 | 学生学号 |
| 7 | student_name | varchar | 64 | 否 | 否 | 学生姓名 |
| 8 | student_phone_number | varchar | 64 | 否 | 否 | 学生电话 |
| 9 | visiting_time | datetime | 否 | 否 | 来访时间 | |
| 10 | number_of_visitors | double | 否 | 否 | 访客人数 | |
| 11 | appointment_content | text | 65535 | 否 | 否 | 预约内容 |
| 12 | visitors_record | text | 65535 | 否 | 否 | 访客记录 |
| 13 | examine_state | varchar | 16 | 是 | 否 | 审核状态 |
| 14 | examine_reply | varchar | 16 | 否 | 否 | 审核回复 |
| 15 | create_time | datetime | 是 | 否 | 创建时间 | |
| 16 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 17 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 18 | source_id | int | 否 | 否 | 来源ID | |
| 19 | source_user_id | int | 否 | 否 | 来源用户 |
4.3本章小结
系统设计部分主要阐述了整个学生公寓管理系统的总体设计思路,包括系统架构和各模块的功能划分,并通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。
5系统实现
5.1学生用户功能模块
5.1.1登录模块
用户在登录页面输入用户名和密码,系统回检查输入的凭据是否与数据库中存储的信息匹配。若匹配,用户身份验证成功即可成功登录系统;若不匹配,系统会提示错误。界面布局如下图所示:
图5-1 登录界面图
登录关键代码如下所示:
| @PostMapping("login") public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) { log.info("[执行登录接口]"); String username = data.get("username"); String email = data.get("email"); String phone = data.get("phone"); String password = data.get("password"); List resultList = null; QueryWrapper wrapper = new QueryWrapper<User>(); Map<String, String> map = new HashMap<>(); |
5.1.2宿舍信息管理模块
学生用户可以查阅宿舍信息,浏览宿舍信息详细内容,提供维修申请、出入登记、住宿申请、访客预约、投诉建议等操作。支持学生提交维修申请、出入登记、住宿申请、访客预约等申请信息,并可进行投诉建议。界面布局如下图所示:
图5-2 宿舍信息管理界面图
宿舍信息查询关键代码如下所示:
| @RequestMapping("/get_list") public Map<String, Object> getList(HttpServletRequest request) { Map<String, Object> map = service.selectToPage(service.readQuery(request), service.readConfig(request)); return success(map); } |
5.1.3维修申请管理模块
学生用户可以查阅和添加自己的维修申请信息,确认维修申请的审核情况,跟踪维修进度。面布局如下图所示:
图5-3 维修申请添加界面图
添加维修申请关键代码如下所示:
| @PostMapping("/add") @Transactional public Map<String, Object> add(HttpServletRequest request) throws IOException { service.insert(service.readBody(request.getReader())); return success(1); } @Transactional public Map<String, Object> addMap(Map<String,Object> map){ service.insert(map); return success(1); } |
5.1.4出入登记管理模块
学生用户可以查阅和添加自己的出入登记信息。界面布局如下图所示:
图5-4 出入登记界面图
出入登记关键代码如下所示:
| @PostMapping("/add") @Transactional public Map<String, Object> add(HttpServletRequest request) throws IOException { service.insert(service.readBody(request.getReader())); return success(1); } @Transactional public Map<String, Object> addMap(Map<String,Object> map){ service.insert(map); return success(1); } |
5.1.5住宿申请管理模块
学生用户可以查阅和添加自己的住宿申请信息,确认住宿申请的审核情况。界面布局如下图所示:
图5-5 住宿申请界面图
住宿申请关键代码如下所示:
| @PostMapping("/add") @Transactional public Map<String, Object> add(HttpServletRequest request) throws IOException { service.insert(service.readBody(request.getReader())); return success(1); } @Transactional public Map<String, Object> addMap(Map<String,Object> map){ service.insert(map); return success(1); } |
5.1.6访客预约管理模块
学生用户可以查阅和添加自己的访客预约信息,确认访客预约信息的审核情况。界面布局如下图所示:
图5-6 访客预约界面图
访客预约关键代码如下所示:
| @PostMapping("/add") @Transactional public Map<String, Object> add(HttpServletRequest request) throws IOException { service.insert(service.readBody(request.getReader())); return success(1); } @Transactional public Map<String, Object> addMap(Map<String,Object> map){ service.insert(map); return success(1); } |
5.1.7投诉建议管理模块
学生用户可以查阅和添加自己的出入登记信息。界面布局如下图所示:
图5-7 投诉建议提交界面图
提交投诉建议关键代码如下所示:
| @PostMapping("/add") @Transactional public Map<String, Object> add(HttpServletRequest request) throws IOException { service.insert(service.readBody(request.getReader())); return success(1); } @Transactional public Map<String, Object> addMap(Map<String,Object> map){ service.insert(map); return success(1); } |
5.2宿管用户功能模块
5.2.1宿舍信息管理模块
宿管用户可查阅宿舍信息功能,浏览宿舍信息详细内容,支持更新宿舍备注等信息,提供录入考勤、录入费用等操作。负责录入学生用户的考勤和费用信息界面布局如下图所示:
图5-8 宿舍信息管理界面图
宿舍信息管理关键代码如下所示:
| @RequestMapping("/get_obj") public Map<String, Object> obj(HttpServletRequest request) { List resultList = service.selectBaseList(service.select(service.readQuery(request), service.readConfig(request))); if (resultList.size() > 0) { JSONObject jsonObject = new JSONObject(); jsonObject.put("obj",resultList.get(0)); return success(jsonObject); } else { return success(null); } } @PostMapping("/set") @Transactional public Map<String, Object> set(HttpServletRequest request) throws IOException { service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader())); return success(1); } |
5.2.2维修申请管理模块
宿管用户可以查阅学生用户提交给自己的维修申请信息,负责审核维修申请,并更新维修人员信息。界面布局如下图所示:
图5-9 维修信息更新界面图
维修信息更新关键代码如下所示:
| @PostMapping("/set") @Transactional public Map<String, Object> set(HttpServletRequest request) throws IOException { service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader())); return success(1); } |
5.2.3住宿申请管理模块
宿管用户可以查阅学生用户提交给自己的住宿申请信息,负责审核住宿申请。界面布局如下图所示:
图5-10 住宿申请审核界面图
住宿申请审核关键代码如下所示:
| @RequestMapping("/get_list") public Map<String, Object> getList(HttpServletRequest request) { Map<String, Object> map = service.selectToPage(service.readQuery(request), service.readConfig(request)); return success(map); } @PostMapping("/set") @Transactional public Map<String, Object> set(HttpServletRequest request) throws IOException { service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader())); return success(1); } |
5.2.4访客预约管理模块
宿管用户可以查阅学生用户提交给自己的访客预约信息,负责审核访客预约,并更新访客记录信息。界面布局如下图所示:
图5-11 访客预约记录界面图
记录访客预约关键代码如下所示:
| @PostMapping("/set") @Transactional public Map<String, Object> set(HttpServletRequest request) throws IOException { service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader())); return success(1); } @PostMapping("/add") @Transactional public Map<String, Object> add(HttpServletRequest request) throws IOException { service.insert(service.readBody(request.getReader())); return success(1); } @Transactional public Map<String, Object> addMap(Map<String,Object> map){ service.insert(map); return success(1); } |
5.2.5考勤记录管理模块
宿管用户可以查阅自己添加的考勤记录信息,支持浏览和更新考勤记录的详细内容。界面布局如下图所示:
图5-12 考勤记录录入界面图
录入考勤记录关键代码如下所示:
| @PostMapping("/add") @Transactional public Map<String, Object> add(HttpServletRequest request) throws IOException { service.insert(service.readBody(request.getReader())); return success(1); } @Transactional public Map<String, Object> addMap(Map<String,Object> map){ service.insert(map); return success(1); } |
5.2.6费用信息管理模块
宿管用户可以查阅自己添加的费用信息信息,支持浏览和更新费用信息的详细内容。界面布局如下图所示:
图5-13 费用信息录入界面图
录入费用信息关键代码如下所示:
| @PostMapping("/add") @Transactional public Map<String, Object> add(HttpServletRequest request) throws IOException { service.insert(service.readBody(request.getReader())); return success(1); } @Transactional public Map<String, Object> addMap(Map<String,Object> map){ service.insert(map); return success(1); } |
5.3维修用户功能模块
5.3.1通知公告管理模块
维修用户可以查阅通知公告信息,浏览通知公告详细内容。界面布局如下图所示:
图5-14 通知公告查看界面图
通知公告查阅关键代码如下所示:
| @RequestMapping("/get_list") public Map<String, Object> getList(HttpServletRequest request) { Map<String, Object> map = service.selectToPage(service.readQuery(request), service.readConfig(request)); return success(map); } |
5.3.2维修申请管理模块
维修用户可以查阅分配给自己的维修申请信息,浏览维修申请详细内容,支持更新维修状态和编辑维修回复。界面布局如下图所示:
图5-15 维修状态更新界面图
维修状态更新关键代码如下所示:
| @PostMapping("/set") @Transactional public Map<String, Object> set(HttpServletRequest request) throws IOException { service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader())); return success(1); } |
5.4管理员功能模块
5.4.1后台首页模块
后台首页模块提供管理员登录后的管理首页,展示系统的重要信息、功能入口及数据统计信息(包含宿舍信息、维修申请等统计图)界面布局如下图所示:
图5-16 后台首页界面图
5.4.2系统用户模块
系统用户模块提供查阅和管理系统用户功能,包含管理员对管理员、学生用户、宿管用户和维修用户等用户信息的添加、更新、封禁和删除等操作。界面布局如下图所示:
图5-17 系统用户界面图
系统用户管理关键代码如下所示:
| @PostMapping("/add") @Transactional public Map<String, Object> add(HttpServletRequest request) throws IOException { service.insert(service.readBody(request.getReader())); return success(1); } @Transactional public Map<String, Object> addMap(Map<String,Object> map){ service.insert(map); return success(1); } @RequestMapping(value = "/del") @Transactional public Map<String, Object> del(HttpServletRequest request) { service.delete(service.readQuery(request), service.readConfig(request)); return success(1); } |
5.4.3宿舍信息管理模块
宿舍信息管理模块提供查阅和管理宿舍信息功能,管理员可以增改删查所有宿舍信息,实现维修申请、出入登记、住宿申请、访客预约、投诉建议、录入考勤、录入费用等操作。界面布局如下图所示:
图5-18 宿舍信息管理界面图
宿舍信息管理关键代码如下所示:
| @PostMapping("/add") @Transactional public Map<String, Object> add(HttpServletRequest request) throws IOException { service.insert(service.readBody(request.getReader())); return success(1); } @RequestMapping("/get_list") public Map<String, Object> getList(HttpServletRequest request) { Map<String, Object> map = service.selectToPage(service.readQuery(request), service.readConfig(request)); return success(map); } @Transactional public Map<String, Object> addMap(Map<String,Object> map){ service.insert(map); return success(1); } @PostMapping("/set") @Transactional public Map<String, Object> set(HttpServletRequest request) throws IOException { service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader())); return success(1); } |
5.5本章小结
本章主要阐述学生公寓管理系统的系统实现,根据系统功能的划分,分别的对系统所需要实现的用户功能、宿管用户功能和管理员功能进行了分析和说明。
6系统测试
6.1测试目的
系统测试的主要目的是验证基于SSM架构的学生公寓管理系统的各项功能是否按照需求规格说明书的要求正确实现,确保系统在不同的运行环境下能够稳定、高效地工作[10]。在进行软件测试时,为了确保系统的可靠性、安全性和高效性,可以采用了单元测试、集成测试、性能测试等多种测试方法相结合的方式进行系统测试,有效地保障学生公寓管理系统的质量,确保其能够顺利上线并为用户提供优质的服务。
本次测试主要对进行严格系统测试,即在完整系统环境下,对系统功能、性能、安全性进行全面验证。按照用户需求场景设计测试用例,涵盖所有功能模块,确保系统整体稳定运行,包括正向、反向、异常等多种情况的验证。
以下是将主要对功能测试和性能测试进行编写测试用例,以验证系统功能是否按预期工作,确保系统在不同设备和浏览器中的表现一致,并评估系统在高负载情况下的响应时间和稳定性。
6.2测试用例
6.2.1功能测试
功能测试主要对登录功能、宿舍信息管理功能、维修申请管理功能、出入登记管理功能、住宿申请管理功能、访客预约管理功能、投诉建议管理功能等进行测试,测试用例如下所示。
登录功能测试用例设计如下表所示。
表6-1 登录功能测试用例
| 测试编号 | 测试目的 | 测试步骤 | 预期结果 | 实际结果 |
| TC001 | 验证用户能够成功登录 | 1. 打开登录页面。2. 输入正确的用户名和密码。3. 提交登录信息 | 登录成功,重定向至用户主页 | 与预期一致 |
| TC002 | 验证登录失败情况 | 1. 打开登录页面。2. 输入错误的密码。3. 提交登录信息。 | 显示登录失败的提示信息 | 与预期一致 |
宿舍信息管理功能测试用例设计如下表所示。
表6-2 宿舍信息管理功能测试用例
| 测试编号 | 测试目的 | 测试步骤 | 预期结果 | 实际结果 |
| TC001 | 验证宿舍信息添加功能 | 1. 登录管理员帐户。2. 进入宿舍信息管理界面。3. 点击添加,输入新宿舍信息详细内容。4. 提交。 | 新宿舍信息添加成功,显示在列表中 | 与预期一致 |
| TC002 | 验证宿舍信息删除功能 | 1. 登录管理员帐户。2. 进入宿舍信息管理界面。3. 选择一项或多项宿舍信息。4. 点击删除。 | 宿舍信息删除成功,不再显示在列表中 | 与预期一致 |
| TC003 | 验证宿舍信息修改功能 | 1. 登录管理员帐户。2. 进入宿舍信息管理界面。3. 点击修改,修改宿舍信息。4. 点击提交。 | 宿舍信息修改成功,显示在列表中 | 与预期一致 |
| TC004 | 验证宿舍信息搜索功能 | 1. 登录管理员帐户。2. 进入宿舍信息管理界面。3. 在搜索框输入关键词搜索特定宿舍信息。4. 点击搜索。 | 显示相关关键词下的特定宿舍信息 | 与预期一致 |
维修申请管理功能测试用例设计如下表所示。
表6-3 维修申请管理功能测试用例
| 测试编号 | 测试目的 | 测试步骤 | 预期结果 | 实际结果 |
| TC001 | 验证维修申请添加功能 | 1. 登录学生用户帐户。2. 进入维修申请管理界面。3. 点击添加,输入新维修申请详细内容。4. 提交 | 新维修申请添加成功,显示在列表中 | 与预期一致 |
| TC002 | 验证维修申请删除功能 | 1. 登录管理员帐户。2. 进入维修申请管理界面。3. 选择一项或多项维修申请。4. 点击删除。 | 维修申请删除成功,不再显示在列表中 | 与预期一致 |
| TC003 | 验证维修申请修改功能 | 1. 登录管理员帐户。2. 进入维修申请管理界面。3. 点击修改,修改维修申请。4. 点击提交。 | 维修申请修改成功,显示在列表中 | 与预期一致 |
| TC004 | 验证维修申请搜索功能 | 1. 登录系统。2. 进入维修申请管理界面。3. 在搜索框输入关键词搜索特定维修申请。4. 点击搜索。 | 显示相关关键词下的特定维修申请 | 与预期一致 |
| TC005 | 验证维修申请审核功能 | 1. 登录宿管用户帐户。2. 进入维修申请管理界面。3. 点击审核,更新审核状态及回复。4. 点击提交。 | 维修申请审核成功,审核状态更新 | 与预期一致 |
| TC006 | 验证维修信息更新功能 | 1. 登录宿管用户帐户。2. 进入维修申请管理界面。3. 点击详情,更新维修信息。4. 点击提交。 | 维修申请更新成功,维修人员及状态更新 | 与预期一致 |
出入登记管理功能测试用例设计如下表所示。
表6-4 出入登记管理功能测试用例
| 测试编号 | 测试目的 | 测试步骤 | 预期结果 | 实际结果 |
| TC001 | 验证出入登记添加功能 | 1. 登录学生用户帐户。2. 进入出入登记管理界面。3. 点击添加,输入新出入登记详细内容。4. 提交。 | 新出入登记添加成功,显示在列表中 | 与预期一致 |
| TC002 | 验证出入登记删除功能 | 1. 登录管理员帐户。2. 进入出入登记管理界面。3. 选择一项或多项出入登记。4. 点击删除。 | 出入登记删除成功,不再显示在列表中 | 与预期一致 |
| TC003 | 验证出入登记修改功能 | 1. 登录管理员帐户。2. 进入出入登记管理界面。3. 点击修改,修改出入登记。4. 点击提交。 | 出入登记修改成功,显示在列表中 | 与预期一致 |
| TC004 | 验证出入登记搜索功能 | 1. 登录系统。2. 进入出入登记管理界面。3. 在搜索框输入关键词搜索特定出入登记。4. 点击搜索。 | 显示相关关键词下的特定出入登记 | 与预期一致 |
住宿申请管理功能测试用例设计如下表所示。
表6-5 住宿申请管理功能测试用例
| 测试编号 | 测试目的 | 测试步骤 | 预期结果 | 实际结果 |
| TC001 | 验证住宿申请添加功能 | 1. 登录学生用户帐户。2. 进入住宿申请管理界面。3. 点击添加,输入新住宿申请详细内容。4. 提交 | 新住宿申请添加成功,显示在列表中 | 与预期一致 |
| TC002 | 验证住宿申请删除功能 | 1. 登录管理员帐户。2. 进入住宿申请管理界面。3. 选择一项或多项住宿申请。4. 点击删除。 | 住宿申请删除成功,不再显示在列表中 | 与预期一致 |
| TC003 | 验证住宿申请修改功能 | 1. 登录管理员帐户。2. 进入住宿申请管理界面。3. 点击修改,修改住宿申请。4. 点击提交。 | 住宿申请修改成功,显示在列表中 | 与预期一致 |
| TC004 | 验证住宿申请搜索功能 | 1. 登录系统。2. 进入住宿申请管理界面。3. 在搜索框输入关键词搜索特定住宿申请。4. 点击搜索。 | 显示相关关键词下的特定住宿申请 | 与预期一致 |
| TC005 | 验证住宿申请审核功能 | 1. 登录宿管用户帐户。2. 进入住宿申请管理界面。3. 点击审核,更新审核状态及回复。4. 点击提交。 | 住宿申请审核成功,审核状态更新 | 与预期一致 |
访客预约管理功能测试用例设计如下表所示。
表6-6 访客预约管理功能测试用例
| 测试编号 | 测试目的 | 测试步骤 | 预期结果 | 实际结果 |
| TC001 | 验证访客预约添加功能 | 1. 登录学生用户帐户。2. 进入访客预约管理界面。3. 点击添加,输入新访客预约详细内容。4. 提交 | 新访客预约添加成功,显示在列表中 | 与预期一致 |
| TC002 | 验证访客预约删除功能 | 1. 登录管理员帐户。2. 进入访客预约管理界面。3. 选择一项或多项访客预约。4. 点击删除。 | 访客预约删除成功,不再显示在列表中 | 与预期一致 |
| TC003 | 验证访客预约修改功能 | 1. 登录管理员帐户。2. 进入访客预约管理界面。3. 点击修改,修改访客预约。4. 点击提交。 | 访客预约修改成功,显示在列表中 | 与预期一致 |
| TC004 | 验证访客预约搜索功能 | 1. 登录系统。2. 进入访客预约管理界面。3. 在搜索框输入关键词搜索特定访客预约。4. 点击搜索。 | 显示相关关键词下的特定访客预约 | 与预期一致 |
| TC005 | 验证访客预约审核功能 | 1. 登录宿管用户帐户。2. 进入访客预约管理界面。3. 点击审核,更新审核状态及回复。4. 点击提交。 | 访客预约审核成功,审核状态更新 | 与预期一致 |
投诉建议管理功能测试用例设计如下表所示。
表6-7 投诉建议管理功能测试用例
| 测试编号 | 测试目的 | 测试步骤 | 预期结果 | 实际结果 |
| TC001 | 验证投诉建议添加功能 | 1. 登录学生用户帐户。2. 进入投诉建议管理界面。3. 点击添加,输入新投诉建议详细内容。4. 提交 | 新投诉建议添加成功,显示在列表中 | 与预期一致 |
| TC002 | 验证投诉建议删除功能 | 1. 登录管理员帐户。2. 进入投诉建议管理界面。3. 选择一项或多项投诉建议。4. 点击删除。 | 投诉建议删除成功,不再显示在列表中 | 与预期一致 |
| TC003 | 验证投诉建议修改功能 | 1. 登录管理员帐户。2. 进入投诉建议管理界面。3. 点击修改,修改投诉建议。4. 点击提交。 | 投诉建议修改成功,显示在列表中 | 与预期一致 |
| TC004 | 验证投诉建议搜索功能 | 1. 登录系统。2. 进入投诉建议管理界面。3. 在搜索框输入关键词搜索特定投诉建议。4. 点击搜索。 | 显示相关关键词下的特定投诉建议 | 与预期一致 |
| TC005 | 验证投诉建议审核功能 | 1. 登录宿管用户帐户。2. 进入投诉建议管理界面。3. 点击审核,更新审核状态及回复。4. 点击提交。 | 投诉建议审核成功,审核状态更新 | 与预期一致 |
6.2.2性能测试
性能测试主要从响应时间、负载、压力、稳定性、吞吐量、网络延迟等方面进行测试,性能测试用例如下表所示。
表6-8 性能测试用例
| 用例名称 | 测试目标 | 测试步骤 | 预期结果 | 实际结果 |
| 响应时间测试 | 测试系统响应请求的时间 | 1. 发送请求到指定API。2. 记录每次响应时间。3. 重复测试10次。 | 所有请求的响应时间小于2秒 | 与预期一致 |
| 负载测试 | 测试系统在特定负载下的表现 | 1. 设置虚拟用户数(如100、200、500等)。2. 发送并发请求。3. 监控资源使用情况。 | 系统能在1000个虚拟用户下正常响应 | 与预期一致 |
| 压力测试 | 测试系统在超负载下的稳定性 | 1. 逐步增加虚拟用户数。2. 监控响应时间和错误率。3. 确定系统崩溃点。 | 系统在高负载下能够响应,错误率低于1% | 与预期一致 |
| 稳定性测试 | 测试系统在长时间运行下的表现 | 1. 设置负载(如100用户)。2. 持续测试24小时。3. 记录响应时间和资源使用情况。 | 响应时间稳定,无明显波动 | 与预期一致 |
| 吞吐量测试 | 测试系统的处理能力 | 1. 设定时间段(如1分钟)。2. 测试不同负载下的吞吐量。3. 统计处理的请求数。 | 吞吐量应在预定范围内(如1000请求/分钟) | 与预期一致 |
| 网络延迟测试 | 测试远程访问的延迟 | 1. 设置不同地区的虚拟用户。2. 记录每个请求的延迟时间。3. 测量不同位置的平均延迟。 | 平均延迟少于300毫秒 | 与预期一致 |
6.3测试结果
经过对系统的全面测试,进行编写学生公寓管理系统的测试用例,本次测试过程主要对登录、宿舍信息管理、维修申请管理、出入登记管理、住宿申请管理、访客预约管理、投诉建议管理等核心功能及系统性能进行系统测试。在测试过程中,可以确保所有核心功能均能够按照预期的要求顺利进行,无明显功能缺失。系统能够妥善处理用户输入的错误数据,并提供友好的反馈信息。在常规的负载下,系统响应时间在可接受范围内,满足用户需求。综上所诉,本学生公寓管理系统功能完善,运行稳定,使用流畅,达到了预期设计要求。
6.4本章小结
本章主要对学生公寓管理系统的进行系统且严格的测试,编写测试用例,检测程序是否运行无误,以确保系统运转正常且数据库无误,并实现其预期的功能。
结 论
在基于SSM框架下的学生公寓管理系统设计与实现中,通过学生用户、宿管用户、维修用户以及管理员等角色的划分,实现了多层次的用户管理和权限控制。该系统的设计主要考虑了用户需求、系统功能的完整性、以及高效的技术实现,旨在简化业务流程,提高学生公寓管理效率和质量,提升用户体验。通过使用SSM架构,系统具备了良好的可扩展性、易维护性及高性能,并利用Shiro框架的实现用户权限管理和安全控制,提高系统安全性。通过对系统需求的详细分析,明确了用户的核心需求,实现了包括通知公告和宿舍信息管理、维修申请、出入登记、住宿申请、访客预约、投诉建议、考勤记录、费用管理等功能,基本满足整个学生公寓管理流程,有效提升管理效率和用户体验。通过数据库优化和缓存技术,系统提升了响应速度和并发处理能力。
在未来的发展中,可以进一步优化系统的响应速度和用户体验,加强对用户行为的分析与挖掘,以实现个性化功能。同时,可结合大数据和人工智能技术,提升平台的智能化水平,为用户提供更加智能化、便捷化的服务。此外,加强对安全性的防护和隐私保护,是平台未来发展的重要方向之一,以更好保障用户信息的安全与私密性,维护良好的用户口碑。
简而言之,通过不断优化和创新,基于SSM的学生公寓管理系统将更好地满足用户的多样化需求,成为用户信赖和选择的首要平台之一。通过本次项目,不仅深入理解了SSM框架的应用和学生公寓管理系统的设计思路,也积累了丰富的实际开发经验。未来,将进一步优化系统的稳定性和安全性,引入更多智能化和个性化的功能,以更好地满足用户需求和市场变化。
参考文献
- 张圣筛,李云峰.基于Java Web的用户点餐系统设计与实现[J].现代信息科技,2025,9(03):96-104.DOI:10.19850/j.cnki.2096-4706.2025.03.018.
- 吴艺佳,李向江.基于Java语言的蔬菜销售系统设计[J].科技创新与生产力,2025,46(02):130-133.
- 陈芳.基于MySQL数据库的数据录入系统设计研究[J].科技资讯,2024,22(20):35-37.DOI:10.16661/j.cnki.1672-3791.2405-5042-7194.
- 李惠娟,张红亮,杨立东,等.基于MySQL数据库的大学生档案管理系统开发[J].办公自动化,2024,29(13):73-76.
- 于秀明,宋丹,沙莎.基于SSM框架的电气类课程在线教育平台设计[J].无线互联科技,2025,22(03):85-88.
- 曹阳.基于Java语言面向小微企业系统的设计开发[J].电脑知识与技术,2025,21(01):45-47+56.DOI:10.14004/j.cnki.ckt.2025.0076.
- 金江.基于Java Web的SSM在线考试系统设计[J].现代信息科技,2024,8(17):105-110.DOI:10.19850/j.cnki.2096-4706.2024.17.020.
- 王冠龙.基于SSM的客房管理系统设计与实现[J].现代信息科技,2024,8(13):84-89.DOI:10.19850/j.cnki.2096-4706.2024.13.017.
- 刘玮玮.基于SSM框架图书借阅管理系统的研究与实现[J].工业控制计算机,2024,37(06):139-141.
- 庞万宏.基于SSM框架的科研诚信系统研究与设计[J].山西电子技术,2024,(03):107-109.
- 陈柳羽,宁雪梅,许舟洋.高校数字化宿舍管理系统设计与实现[J].电脑编程技巧与维护,2024,(10):113-116.DOI:10.16184/j.cnki.comprg.2024.10.025.
- 郭甲天,陈婷,向阳.一种基于SpringBoot框架校园宿舍管理系统的设计与实现[J].电脑知识与技术,2024,20(07):37-40.DOI:10.14004/j.cnki.ckt.2024.0444.
- 陈剑兴.高校学生公寓信息化管理系统设计[J].轻工科技,2023,39(05):101-104.
- 许梦微,王希胤.基于Shiro的加密机制研究[J].电脑知识与技术,2023,19(22):95-97.DOI:10.14004/j.cnki.ckt.2023.1236.
- 唐瑞明,谭倩芳.高校宿舍信息化管理系统设计[J].电子技术与软件工程,2023,(04):258-262.DOI:10.20109/j.cnki.etse.2023.04.060.
- 杨媛媛.基于Shiro框架的项目管理系统设计与开发[D].南京邮电大学,2022.DOI:10.27251/d.cnki.gnjdc.2022.000637.
- 霍佳璐,杨林生.基于Java的高校宿舍智能管理系统的设计与实现[J].信息与电脑(理论版),2022,34(22):134-136.
- 黄强.基于Web的高职院校学生宿舍管理系统设计与结构分析[J].无线互联科技,2022,19(20):78-80.
- Hongying Z .A Study on the Design of English Speaking Examination System Based on SSM Framework[J].Journal of Sensors,2022,2022
- Kewei W ,Yong F .Daily Information Management System for Postgraduates to Check In and Out of the Dormitory Based on Mobile Edge Computing[J].Mobile Information Systems,2021,2021
- 梁清华,胡安明.Apache Shiro框架在Web系统的安全应用研究[J].电脑知识与技术,2021,17(06):52-53.DOI:10.14004/j.cnki.ckt.2021.0420.
- 凌宇烽.高校学生公寓管理系统的设计与研究[J].科学技术创新,2021,(01):87-88.
致 谢
在完成本论文的研究与写作过程中,我深切感受到了来自各方的帮助和支持。在此,我衷心地向所有给予我帮助的人表示最诚挚的感谢。首先,我要特别感谢我的导师,不仅在学术上给予我无私的指导,而且在生活上给予我关怀和支持。是您严谨的学术态度和勤奋的工作精神将永远激励我不断前进。其次,我要感谢所有教导过我的老师们,是你们精彩课堂和深入的指导为我的研究工作提供了宝贵的知识和灵感。我还要感谢我的家人,他们的理解和支持是我完成学业的坚强后盾。在我遇到困难和挑战时,他们总是给予我鼓励和力量。此外,我也要感谢我的朋友和同学们,你们的陪伴和帮助使我的研究生活更加丰富多彩。我们共同度过的时光将成为我一生中宝贵的回忆。最后,我要感谢所有支持本项目,为本项目提供建设性意见的人员,没有他们的协助,本论文无法顺利完成。再次感谢所有帮助和支持我的人,是你们的帮助使我的研究之路不再孤单。
请关注点赞+私信博主,免费领取项目源码
1623

被折叠的 条评论
为什么被折叠?



