摘 要
随着信息技术的迅猛发展,传统的学生请假管理方式逐渐暴露出效率低、管理复杂等问题,亟需通过现代化手段进行优化。基于SpringBoot框架的学生请假系统的设计与实现,旨在利用先进的技术提升学生请假管理的效率和便捷性。本文首先分析了现有学生请假管理模式的不足,并提出了基于SpringBoot的解决方案,通过Web技术构建一个集学生、教师和管理员为一体的智能化请假管理系统。
系统主要分为学生、教师和管理员三类用户角色。学生可以通过系统进行请假申请、查看课程信息、个人账户管理等操作,同时能够查看个人请假历史和请假趋势分析;教师负责审核学生的请假申请、管理班级考勤并查看请假趋势;管理员则负责整体系统的管理,包括用户管理、课程信息管理、请假申请审核以及系统通知和公告的发布等。系统采用SpringBoot框架作为后端开发平台,结合MySQL数据库进行数据存储,同时使用前端Vue框架实现用户界面的交互设计。
本文重点介绍了系统的功能模块设计、数据库设计以及系统的实现过程。通过对系统架构的详细设计与分析,本文指出该系统在提升学生请假管理效率、减少人工干预和提高系统响应速度等方面的优势。系统的实现不仅为学校提供了一个高效、便捷的学生请假管理平台,也为教育信息化建设提供了有益的实践经验。
该系统的成功实现将有效解决学校学生请假管理中的诸多问题,减少教师和管理员的工作量,提升学校管理的现代化水平。未来,系统可以根据不同学校的需求进行功能扩展和优化,进一步提高其适用性和智能化水平。
关键词:学生请假系统;Spring Boot;系统设计;数据库设计
Abstract
With the rapid development of information technology, traditional student leave management methods have gradually exposed problems such as low efficiency and complex management, which urgently need to be optimized through modern means. The design and implementation of a student leave system based on the SpringBoot framework aims to improve the efficiency and convenience of student leave management using advanced technology. This article first analyzes the shortcomings of the existing student leave management model and proposes a solution based on SpringBoot to build an intelligent leave management system that integrates students, teachers, and administrators through web technology.
The system is mainly divided into three types of user roles: students, teachers, and administrators. Students can apply for leave, view course information, manage personal accounts, and view their personal leave history and trend analysis through the system; Teachers are responsible for reviewing students' leave applications, managing class attendance, and checking leave trends; Administrators are responsible for the overall management of the system, including user management, course information management, leave application review, and the release of system notifications and announcements. The system adopts the SpringBoot framework as the backend development platform, combined with MySQL database for data storage, and uses the front-end Vue framework to implement user interface interaction design.
This article focuses on the functional module design, database design, and implementation process of the system. Through detailed design and analysis of the system architecture, this article points out the advantages of the system in improving the efficiency of student leave management, reducing manual intervention, and improving system response speed. The implementation of the system not only provides an efficient and convenient student leave management platform for schools, but also provides useful practical experience for the construction of educational informatization.
The successful implementation of this system will effectively solve many problems in school student leave management, reduce the workload of teachers and administrators, and enhance the modernization level of school management. In the future, the system can be expanded and optimized according to the needs of different schools, further improving its applicability and intelligence level.
Keywords: Student leave system; Spring Boot; System design; Database Design
1 前 言
1.1 研究背景和意义
1.2 国内外研究现状
1.3 论文结构与章节安排
2 关键技术
2.1 Java
2.2 MySQL
2.3 Spring Boot框架
2.4 B/S模式
3 系统分析
3.1 可行性分析
3.1.1 技术可行性
3.1.2 经济可行性
3.1.3 操作可行性
3.1.4 社会可行性
3.2 功能需求分析
3.3 系统性能分析
3.4 系统流程分析
4 系统设计
4.1 系统架构设计
4.2 功能模块设计
4.3 数据库设计
4.3.1 E-R图
4.3.2 数据库表结构设计
5 系统实现
5.1 学生用户模块
5.1.1 用户登录界面
5.1.2 用户注册界面
5.1.3 学校资讯界面
5.1.4 课程信息界面
5.1.5 请假趋势界面
5.2 教师用户模块
5.2.1 课程信息界面
5.2.2 请假申请界面
5.2.3 班级考勤界面
5.3 后台管理员模块
5.3.1 系统用户界面
5.3.2 课程信息管理界面
5.3.3 课程类型管理界面
5.3.4 系统管理界面
5.3.5 通知公告管理界面
6 系统测试
6.1 系统测试的目的
6.2 系统测试用例
6.3 系统测试结果
结束语
参考文献
致 谢
随着信息技术的飞速发展,教育管理的现代化已经成为提升教学质量和管理效率的重要手段[1]。传统的学生请假管理方式往往依赖纸质记录和手工操作,这种方式不仅效率低下,而且容易出现数据丢失、信息传递不畅等问题,给学校的日常管理带来了很大的挑战[2]。尤其是在大规模的学校中,学生的请假申请和审核过程复杂且耗时,教师和管理员需要投入大量精力进行管理,影响了教学工作和学校的行政效率。因此,如何通过现代信息技术提升学生请假管理的效率,成为教育管理中的一个亟待解决的问题。
在此背景下,设计了基于SpringBoot框架的学生请假系统。SpringBoot作为一个轻量级的Java开发框架,凭借其高效、简洁的特性,成为开发企业级应用和Web系统的重要工具[3]。结合SpringBoot框架的特点,设计和实现一个集学生、教师和管理员为一体的智能化请假管理系统,能够有效简化请假申请和审批流程,减少人工干预,提高信息的处理效率。该系统通过Web端平台实现数据的实时同步,学生可以便捷地提交请假申请,教师能够快速审批并记录考勤数据,管理员则可以对整个系统进行管理和监控[4]。
本研究的意义不仅在于通过技术手段提高学生请假管理的效率,还能够促进学校信息化建设的发展。随着教育信息化进程的推进,越来越多的学校开始采用数字化手段管理教学事务,智能化的请假管理系统可以在此过程中发挥重要作用[5]。通过该系统的设计与实现,学校能够实现对学生请假数据的集中管理和科学分析,从而为学校决策提供数据支持[6]。此外,该系统的实现对于推动教育行业的数字化转型,提升学校管理水平具有重要的实践意义和应用价值[7]。通过这一系统,学校能够更好地服务学生,减轻教师和管理员的负担,为实现更高效的教学管理模式奠定基础。
随着信息技术的不断发展,学生请假管理系统的研究在国内外得到了广泛关注。传统的学生请假管理方式普遍存在效率低、信息传递不畅和数据管理混乱等问题,迫切需要借助现代化技术手段进行改进。在国外,许多发达国家的学校早已实现了基于计算机和互联网的请假管理系统,并通过这些系统简化了学生请假和考勤的处理流程。这些系统通过集中的数据管理平台,能够有效提高学校管理效率,并为教学工作提供便利支持。例如,欧美的高校通常采用一体化的学生管理平台,其中包括请假申请、课程安排、学生考勤等功能,借助系统化管理提升了工作效率和数据准确性。
在国内,随着教育信息化的推进,越来越多的学校开始采用信息技术解决学生请假管理中的问题。国内一些学者和开发者提出了基于Web技术的学生请假管理系统,这些系统通常通过集成学生、教师和管理员等角色的功能,提供便捷的请假申请、审批及统计分析等功能。国内的研究和应用也在不断拓展,例如通过在线平台和移动端应用来提高系统的可访问性和用户体验,尤其是在大中型学校中,系统的运用已经开始覆盖学生的请假、考勤管理、成绩查询等多个方面,极大地提升了教学管理的效率。
尽管国内外在学生请假管理系统的研究和应用上取得了一定进展,但仍面临一些挑战。现有的系统多聚焦于基础功能的实现,而在系统的智能化、个性化和数据分析方面尚有待提升。同时,许多系统的用户界面和交互设计仍有待改进,以提高用户的使用体验。因此,基于SpringBoot框架设计并实现的学生请假管理系统,能够通过灵活的系统架构和便捷的功能实现,进一步提升学生请假管理的效率和智能化水平。通过对系统的不断优化,可以为学校提供更高效、更便捷的管理工具,同时为教育管理信息化发展提供有益的经验和实践。
本文共分为六章,章节内容安排如下:
第一章:前言,主要介绍学生请假系统领域研究的背景和意义,概述国内外研究的现状。
第二章:关键技术,主要探讨和说明实现学生请假系统的关键技术。
第三章:系统分析,主要从学生请假系统的可行性、功能、性能等方面进行分析,为后续系统设计提供理论支持。
第四章:系统设计,主要对学生请假系统功能模块、数据库进行功能设计。
第五章:系统实现,主要介绍了学生请假系统的功能、系统界面的实现。
第六章:系统测试,主要对学生请假系统进行测试,验证功能完整性、稳定性和安全性,评估系统在实际运行中的性能表现。
结束语。总结全文研究内容,提出对学生请假系统领域未来发展的展望和建议,指出研究的不足和可优化之处,为相关领域的进一步探索提供参考。
Java是一种跨平台的编程语言,广泛用于开发各种类型的应用程序,包括Web应用、移动应用和大型软件系统。在学生请假系统中,Java通常用于后端开发,提供强大的处理能力和稳定性。同时Java是一种面向对象的编程语言,支持封装、继承和多态等特性,使代码更易于维护和重用。还拥有丰富的标准库和第三方框架,如Spring、Hibernate等,可以大大提高开发效率。
MySQL是一种流行的开源关系型数据库管理系统,用于存储和管理数据。在学生请假系统中,MySQL可以用于数据存储、数据查询和数据管理等方面,用户可以免费使用和修改源代码,为平台提供可靠和高性能的数据库支持。MySQL支持多种存储引擎,如InnoDB和MyISAM,可以根据不同的应用场景选择合适的存储引擎,以提高性能;提供了多种数据安全机制,如用户权限管理、数据加密和备份恢复等,确保数据的安全性。
Spring Boot是一个用于构建微服务的Java框架,简化了Spring应用程序的开发和部署过程。Spring Boot通过自动配置和约定优于配置的理念,简化了Spring应用程序的开发过程,使开发者可以更快地构建和部署应用程序;拥有丰富的生态系统,如Spring Cloud、Spring Security等,可以满足各种企业级应用的需求。在学生请假系统中,Spring Boot可以快速搭建后端服务,并实现各种功能模块的集成和管理。
B/S模式,即浏览器/服务器模式,是一种常见的网络应用架构模式。在B/S模式中,用户通过浏览器作为客户端与服务器进行交互。在浏览器/服务器(browser / Server Architecture)系统中,用户只需通过浏览器,就能够轻松地向分布在网络各处的众多服务器发送海量的请求。B/S系统大大地简化了客户端的工作,让用户体验更加便捷。
从技术角度来看,Spring Boot作为一种轻量级、快速构建的Java框架,能够提高开发效率,降低系统的复杂程度,易于维护和升级。同时,MySQL作为关系型数据库,能够支持平台数据的存储与管理,保障系统的稳定性和高效性。因此,本系统具有技术可行性。
考虑到Springboot、Vue、MyBatis Plus及MySQL等均为开源技术,无需支付高昂的许可费用,大大降低了系统的开发成本。同时,这些技术拥有广泛的用户群体和成熟的社区支持,便于获取技术支持和资源共享。此外,系统的实施将显著提升用户体验,从而带来潜在的经济效益。因此,从经济角度来看,该系统的开发同样具备可行性。
系统设计应遵循用户友好原则,确保用户能够轻松上手并高效使用。通过合理的界面布局、直观的操作流程以及详尽的帮助文档,可以大大降低用户的学习成本,提高系统的操作可行性。此外,系统还应具备完善的权限管理和数据安全机制,确保操作的安全性和合规性。
学生请假系统在社会上的可行性较高。随着信息化进程的推进,学校对数字化管理需求日益增加。该系统通过自动化处理请假申请,减少了人工操作,提升了效率。其在线申请和审批功能便于师生沟通,节省时间和资源。系统支持Web平台,具有良好的兼容性和便捷性,符合现代教育管理的需求,因此具有较强的社会可行性,适合广泛应用于各类学校。
从技术、经济、操作和社会四个维度来看,学生请假系统的开发均具备高度的可行性。
本系统可以分为:学生用户、教师用户和管理员三大角色。
(一)学生用户角色用例如下图所示。

-
-
-
-
-
- 学生用户用例图
-
-
-
-
学生用户具体功能说明如下所示。
首页:展示系统概况,提供快速导航到各个模块,便于学生操作。
通知公告:查看学校发布的最新通知和公告,确保及时了解学校重要信息。
学校资讯:查看学校相关的新闻资讯和活动信息,保持对学校动态的了解。
课程信息:查看当前学期的课程安排及课程相关信息,方便学生进行课程管理。
我的账户:管理个人账户信息,包括修改密码、查看个人资料等。
个人中心:
个人首页:展示学生的基本信息和重要通知。
请假申请:学生可以在线提交请假申请,便于随时请假。
请假趋势:查看自己请假的历史记录和请假趋势分析。
收藏:保存喜欢或常用的内容,方便快速访问。
评论管理:管理自己对课程或学校资讯的评论内容。
(二)教师用户角色用例如下图所示。

-
-
-
-
-
- 教师用户用例图
-
-
-
-
教师用户具体功能说明如下所示。
首页:展示系统概况,提供快速导航,便于教师操作。
通知公告:查看学校发布的最新通知和公告,确保及时了解学校重要信息。
学校资讯:查看学校相关的新闻资讯和活动信息,掌握学校动态。
课程信息:查看和管理自己授课的课程信息,包括课程安排、学生请假情况等。
我的账户:管理个人账户信息,修改密码、更新个人资料等。
个人中心:
个人首页:展示教师基本信息和重要通知。
课程信息:查看并管理自己教授的课程信息。
请假申请:审核学生的请假申请,并进行处理。
班级考勤:查看和管理班级的考勤记录,跟踪学生的出勤情况。
请假趋势:查看自己班级的请假趋势和数据分析。
收藏:保存常用的课程资料和相关信息,方便快速访问。
评论管理:管理自己发布的评论,查看学生反馈。
(三)管理员角色用例如下图所示。

-
-
-
-
-
- 管理员用例图
-
-
-
-
系统后台管理端管理员具体功能说明如下所示。
后台首页:提供系统概览,显示关键数据和统计信息,方便管理员快速了解系统运行状态。
系统用户管理:管理员可以查看、编辑、删除系统用户(如教师、学生等),管理用户权限。
课程信息管理:管理员可以添加、修改、删除课程信息,确保课程内容更新及时。
请假申请管理:管理员审核、处理学生的请假申请,记录和管理学生的请假信息。
班级考勤管理:管理员查看并管理班级的考勤情况,处理缺席记录。
请假趋势管理:提供请假数据分析,管理员可以查看不同时间段或班级的请假趋势。
课程类型管理:管理员可以设置课程的分类,以便更好地组织和管理课程。
请假类型管理:管理员可以定义和管理不同类型的请假事由(如病假、事假等)。
班级名称管理:管理员可以管理班级信息,包括班级名称的添加和修改。
系统管理(轮播图):管理员可以设置系统首页的轮播图,更新宣传内容。
通知公告管理:管理员发布和管理通知公告,确保师生及时了解学校的重要信息。
资源管理:管理员管理学校资讯、资讯分类,确保信息更新和分类清晰。
对于学生请假系统,下面是系统性能分析表:
-
-
-
-
- 性能需求表
-
-
-
|
项目 |
内容 |
|
响应时间 |
系统对用户请求的响应时间需在500ms以内 |
|
并发用户数 |
系统需要支持1000个并发用户同时访问 |
|
吞吐量 |
系统每秒需要处理1000个请求 |
|
可用性 |
系统需要保证每月99.9%的可用性 |
|
数据安全 |
用户敏感数据需要加密存储,并支持数据库备份和恢复 |
|
数据一致性 |
系统中的数据操作需保证ACID特性,确保数据一致性 |
|
扩展性 |
系统需要支持水平扩展,能够方便地增加服务器节点以应对高请求量 |
|
可维护性 |
系统代码需要清晰易懂、结构良好,方便维护和修改 |
|
日志记录 |
系统需要记录用户操作日志、异常日志以及系统运行日志 |
|
监控报警 |
系统需要实时监控运行状态,当系统异常时能够及时发送警报通知相关人员 |
|
缓存设置 |
针对频繁使用的数据,系统需要进行合适的缓 |
(1)增加数据流程
系统中的所有用户(管理员、学生用户和教师用户)都可以实现增加数据功能,图3.4显示的就是在增加数据时的流程。

-
-
-
-
-
- 增加数据流程图
-
-
-
-
(2)修改数据流程
在录入系统信息的时候如果信息有错,可以对系统中的数据进行编辑。图3.5显示的就是修改数据的流程。

-
-
-
-
-
- 修改数据流程图
-
-
-
-
(3)删除数据流程
在系统中经常会出现一些过期的数据,那就可以直接删除这些数据,图3.6就是删除数据时的流程图。

-
-
-
-
-
- 删除数据流程图
-
-
-
-
(4)学生请假流程
首先,学生访问系统的首页,查看是否有请假需求。如果有需求,学生可以浏览通知公告、学校资讯和课程信息,也可以查看个人账户或进入个人中心。进入个人中心首页后,学生可以查看请假趋势、收藏的内容或评论管理等信息。如果确定需要请假,学生进入请假申请页面,填写相关信息并提交请假申请。整个流程便捷、清晰,确保了学生请假申请的高效处理和管理。图3.7就是学生请假流程图。

-
-
-
-
-
- 学生请假流程图
-
-
-
-
由于本系统在逻辑事务处理方面对数据库的操作比较频繁所以系统在底层连接数据库时并没有使用原生的JDBC,而是把JDBC进行了封装,封装之后相当于一个连接数据库的工具DB UTIL,这样使用起来会更加方便而且这样进行封装还可以降低系统中代码的冗余,当我们需要连接和使用数据库时只需要调用这个工具里面的一个方法就可以了。而且通过封装可以把对数据库的操作独立起来,当需要连接不同种类的数据库时只需要加以修改就可以达到目的。
DAO层本来并无这个类,它只是java中MVC构造里的一个model概念,主要就是里面的一些方法,而这些方法就是用来访问数据库的方法。我们在软件开发时DAO层我们一般都放接口和接口的实现类,用于来规范实现类的我们叫它接口,实现类重点用于对数据库的操纵。
MVC是一种系统研发的关键模型,M是Model模型,它是系统内部关键程序运行的核心,主要进行对数据库的各种操作。视图View是V也叫做视图,主要的作用是对一些数据进行显示。控制器Controller 是C执行从View的视图层来读取数据,然后控制用户的输入。
系统架构如下图所示。

功能模块设计是系统开发过程中的重要阶段,它旨在将系统划分为不同的模块,每个模块负责完成特定的功能或任务。学生请假系统由多个功能模块组成,每个模块下又包含具体的功能操作。功能模块图如下图所示。

E-R图有助于理清系统中的数据结构和关系,为后续的数据库表结构设计提供指导。在进行数据库设计之前,首先需要先绘制实体-关系(E-R)图。E-R图将帮助我们理清业务中的实体(Entity)及它们之间的关系(Relationship),从而为后续的数据库表设计提供基础。根据前文可以得出本学生请假系统拥有多个实体,在此列举主要实体,各个实体之间联系总E-R图如下图所示。

在E-R图确定后,接下来可以根据实体和关系的属性设计数据库表结构。在E-R图明确了实体和它们之间的关系后,接下来可以开始设计数据库表结构。每个实体对应一个数据库表,每个属性对应表中的字段。如下列表格所示,在此列举主要数据表。
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
token_id |
int |
10 |
0 |
N |
Y |
临时访问牌ID | |
|
2 |
token |
varchar |
64 |
0 |
Y |
N |
临时访问牌 | |
|
3 |
info |
text |
65535 |
0 |
Y |
N | ||
|
4 |
maxage |
int |
10 |
0 |
N |
N |
2 |
最大寿命:默认2小时 |
|
5 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
6 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
7 |
user_id |
int |
10 |
0 |
N |
N |
0 |
用户编号: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
article_id |
mediumint |
8 |
0 |
N |
Y |
文章id:[0,8388607] | |
|
2 |
title |
varchar |
125 |
0 |
N |
Y |
标题:[0,125]用于文章和html的title标签中 | |
|
3 |
type |
varchar |
64 |
0 |
N |
N |
0 |
文章分类:[0,1000]用来搜索指定类型的文章 |
|
4 |
hits |
int |
10 |
0 |
N |
N |
0 |
点击数:[0,1000000000]访问这篇文章的人次 |
|
5 |
praise_len |
int |
10 |
0 |
N |
N |
0 |
点赞数 |
|
6 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
7 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
8 |
source |
varchar |
255 |
0 |
Y |
N |
来源:[0,255]文章的出处 | |
|
9 |
url |
varchar |
255 |
0 |
Y |
N |
来源地址:[0,255]用于跳转到发布该文章的网站 | |
|
10 |
tag |
varchar |
255 |
0 |
Y |
N |
标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开 | |
|
11 |
content |
longtext |
2147483647 |
0 |
Y |
N |
正文:文章的主体内容 | |
|
12 |
img |
varchar |
255 |
0 |
Y |
N |
封面图 | |
|
13 |
description |
text |
65535 |
0 |
Y |
N |
文章描述 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
type_id |
smallint |
5 |
0 |
N |
Y |
分类ID:[0,10000] | |
|
2 |
display |
smallint |
5 |
0 |
N |
N |
100 |
显示顺序:[0,1000]决定分类显示的先后顺序 |
|
3 |
name |
varchar |
16 |
0 |
N |
N |
分类名称:[2,16] | |
|
4 |
father_id |
smallint |
5 |
0 |
N |
N |
0 |
上级分类ID:[0,32767] |
|
5 |
description |
varchar |
255 |
0 |
Y |
N |
描述:[0,255]描述该分类的作用 | |
|
6 |
icon |
text |
65535 |
0 |
Y |
N |
分类图标: | |
|
7 |
url |
varchar |
255 |
0 |
Y |
N |
外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 | |
|
8 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
9 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
auth_id |
int |
10 |
0 |
N |
Y |
授权ID: | |
|
2 |
user_group |
varchar |
64 |
0 |
Y |
N |
用户组: | |
|
3 |
mod_name |
varchar |
64 |
0 |
Y |
N |
模块名: | |
|
4 |
table_name |
varchar |
64 |
0 |
Y |
N |
表名: | |
|
5 |
page_title |
varchar |
255 |
0 |
Y |
N |
页面标题: | |
|
6 |
path |
varchar |
255 |
0 |
Y |
N |
路由路径: | |
|
7 |
parent |
varchar |
64 |
0 |
Y |
N |
父级菜单 | |
|
8 |
parent_sort |
int |
10 |
0 |
N |
N |
0 |
父级菜单排序 |
|
9 |
position |
varchar |
32 |
0 |
Y |
N |
位置: | |
|
10 |
mode |
varchar |
32 |
0 |
N |
N |
_blank |
跳转方式: |
|
11 |
add |
tinyint |
3 |
0 |
N |
N |
1 |
是否可增加: |
|
12 |
del |
tinyint |
3 |
0 |
N |
N |
1 |
是否可删除: |
|
13 |
set |
tinyint |
3 |
0 |
N |
N |
1 |
是否可修改: |
|
14 |
get |
tinyint |
3 |
0 |
N |
N |
1 |
是否可查看: |
|
15 |
field_add |
text |
65535 |
0 |
Y |
N |
添加字段: | |
|
16 |
field_set |
text |
65535 |
0 |
Y |
N |
修改字段: | |
|
17 |
field_get |
text |
65535 |
0 |
Y |
N |
查询字段: | |
|
18 |
table_nav_name |
varchar |
500 |
0 |
Y |
N |
跨表导航名称: | |
|
19 |
table_nav |
varchar |
500 |
0 |
Y |
N |
跨表导航: | |
|
20 |
option |
text |
65535 |
0 |
Y |
N |
配置: | |
|
21 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
22 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
class_attendance_id |
int |
10 |
0 |
N |
Y |
班级考勤ID | |
|
2 |
teacher_users |
int |
10 |
0 |
Y |
N |
0 |
教师用户 |
|
3 |
teachers_name |
varchar |
64 |
0 |
Y |
N |
教师姓名 | |
|
4 |
class_name |
varchar |
64 |
0 |
Y |
N |
班级名称 | |
|
5 |
number_of_attendance |
double |
9 |
2 |
Y |
N |
0.00 |
出勤人数 |
|
6 |
number_of_people_on_leave |
double |
9 |
2 |
Y |
N |
0.00 |
请假人数 |
|
7 |
attendance_date |
date |
10 |
0 |
Y |
N |
考勤日期 | |
|
8 |
remarks_information |
text |
65535 |
0 |
Y |
N |
备注信息 | |
|
9 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
10 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
class_name_id |
int |
10 |
0 |
N |
Y |
班级名称ID | |
|
2 |
class_name |
varchar |
64 |
0 |
Y |
N |
班级名称 | |
|
3 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
4 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
code_token_id |
int |
10 |
0 |
N |
Y | ||
|
2 |
token |
varchar |
255 |
0 |
Y |
N | ||
|
3 |
code |
varchar |
255 |
0 |
Y |
N |
验证码 | |
|
4 |
expire_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
失效时间 |
|
5 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
6 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
collect_id |
int |
10 |
0 |
N |
Y |
收藏ID: | |
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
收藏人ID: |
|
3 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: | |
|
4 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: | |
|
5 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
|
6 |
title |
varchar |
255 |
0 |
Y |
N |
标题: | |
|
7 |
img |
varchar |
255 |
0 |
Y |
N |
封面: | |
|
8 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
9 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
comment_id |
int |
10 |
0 |
N |
Y |
评论ID: | |
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
评论人ID: |
|
3 |
reply_to_id |
int |
10 |
0 |
N |
N |
0 |
回复评论ID:空为0 |
|
4 |
content |
longtext |
2147483647 |
0 |
Y |
N |
内容: | |
|
5 |
nickname |
varchar |
255 |
0 |
Y |
N |
昵称: | |
|
6 |
avatar |
varchar |
255 |
0 |
Y |
N |
头像地址:[0,255] | |
|
7 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
8 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
9 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: | |
|
10 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: | |
|
11 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
course_information_id |
int |
10 |
0 |
N |
Y |
课程信息ID | |
|
2 |
course_name |
varchar |
64 |
0 |
Y |
N |
课程名称 | |
|
3 |
course_images |
varchar |
255 |
0 |
Y |
N |
课程图片 | |
|
4 |
teacher_users |
int |
10 |
0 |
Y |
N |
0 |
教师用户 |
|
5 |
teachers_name |
varchar |
64 |
0 |
Y |
N |
教师姓名 | |
|
6 |
course_type |
varchar |
64 |
0 |
Y |
N |
课程类型 | |
|
7 |
course_hours |
varchar |
64 |
0 |
Y |
N |
课程学时 | |
|
8 |
course_introduction |
longtext |
2147483647 |
0 |
Y |
N |
课程简介 | |
|
9 |
hits |
int |
10 |
0 |
N |
N |
0 |
点击数 |
|
10 |
collect_len |
int |
10 |
0 |
N |
N |
0 |
收藏数 |
|
11 |
leave_application_limit_times |
int |
10 |
0 |
N |
N |
0 |
请假限制次数 |
|
12 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
13 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
course_type_id |
int |
10 |
0 |
N |
Y |
课程类型ID | |
|
2 |
course_type |
varchar |
64 |
0 |
Y |
N |
课程类型 | |
|
3 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
4 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
hits_id |
int |
10 |
0 |
N |
Y |
点赞ID: | |
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
点赞人: |
|
3 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
4 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
5 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: | |
|
6 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: | |
|
7 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
leave_application_id |
int |
10 |
0 |
N |
Y |
请假申请ID | |
|
2 |
student_users |
int |
10 |
0 |
Y |
N |
0 |
学生用户 |
|
3 |
student_name |
varchar |
64 |
0 |
Y |
N |
学生姓名 | |
|
4 |
teacher_users |
int |
10 |
0 |
Y |
N |
0 |
教师用户 |
|
5 |
teachers_name |
varchar |
64 |
0 |
Y |
N |
教师姓名 | |
|
6 |
course_name |
varchar |
64 |
0 |
Y |
N |
课程名称 | |
|
7 |
leave_type |
varchar |
64 |
0 |
Y |
N |
请假类型 | |
|
8 |
leave_duration |
double |
9 |
2 |
Y |
N |
0.00 |
请假时长 |
|
9 |
proof_documents |
varchar |
255 |
0 |
Y |
N |
证明文件 | |
|
10 |
leave_time |
date |
10 |
0 |
Y |
N |
请假时间 | |
|
11 |
reason_for_leave |
text |
65535 |
0 |
Y |
N |
请假原因 | |
|
12 |
examine_state |
varchar |
16 |
0 |
N |
N |
未审核 |
审核状态 |
|
13 |
examine_reply |
varchar |
16 |
0 |
Y |
N |
审核回复 | |
|
14 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
15 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
16 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表 | |
|
17 |
source_id |
int |
10 |
0 |
Y |
N |
来源ID | |
|
18 |
source_user_id |
int |
10 |
0 |
Y |
N |
来源用户 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
leave_trend_id |
int |
10 |
0 |
N |
Y |
请假趋势ID | |
|
2 |
teacher_users |
int |
10 |
0 |
Y |
N |
0 |
教师用户 |
|
3 |
teachers_name |
varchar |
64 |
0 |
Y |
N |
教师姓名 | |
|
4 |
student_users |
int |
10 |
0 |
Y |
N |
0 |
学生用户 |
|
5 |
student_name |
varchar |
64 |
0 |
Y |
N |
学生姓名 | |
|
6 |
class_name |
varchar |
64 |
0 |
Y |
N |
班级名称 | |
|
7 |
number_of_leave_requests |
double |
9 |
2 |
Y |
N |
0.00 |
请假次数 |
|
8 |
leave_duration |
double |
9 |
2 |
Y |
N |
0.00 |
请假时长 |
|
9 |
remarks_information |
text |
65535 |
0 |
Y |
N |
备注信息 | |
|
10 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
11 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
leave_type_id |
int |
10 |
0 |
N |
Y |
请假类型ID | |
|
2 |
leave_type |
varchar |
64 |
0 |
Y |
N |
请假类型 | |
|
3 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
4 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
notice_id |
mediumint |
8 |
0 |
N |
Y |
公告id: | |
|
2 |
title |
varchar |
125 |
0 |
N |
N |
标题: | |
|
3 |
content |
longtext |
2147483647 |
0 |
Y |
N |
正文: | |
|
4 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
5 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
praise_id |
int |
10 |
0 |
N |
Y |
点赞ID: | |
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
点赞人: |
|
3 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
4 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
5 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: | |
|
6 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: | |
|
7 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
|
8 |
status |
bit |
1 |
0 |
N |
N |
1 |
点赞状态:1为点赞,0已取消 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
schedule_id |
smallint |
5 |
0 |
N |
Y |
日程ID:[0,32767] | |
|
2 |
content |
varchar |
255 |
0 |
Y |
N |
日程内容 | |
|
3 |
scheduled_time |
datetime |
19 |
0 |
Y |
N |
计划时间 | |
|
4 |
user_id |
int |
10 |
0 |
N |
N |
用户id | |
|
5 |
create_time |
datetime |
19 |
0 |
Y |
N |
创建时间 | |
|
6 |
update_time |
datetime |
19 |
0 |
Y |
N |
更新时间 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
score_id |
int |
10 |
0 |
N |
Y |
评分ID: | |
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
评分人: |
|
3 |
nickname |
varchar |
64 |
0 |
Y |
N |
昵称: | |
|
4 |
score_num |
double |
5 |
2 |
N |
N |
0.00 |
评分: |
|
5 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
6 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
7 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: | |
|
8 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: | |
|
9 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
slides_id |
int |
10 |
0 |
N |
Y |
轮播图ID: | |
|
2 |
title |
varchar |
64 |
0 |
Y |
N |
标题: | |
|
3 |
content |
varchar |
255 |
0 |
Y |
N |
内容: | |
|
4 |
url |
varchar |
255 |
0 |
Y |
N |
链接: | |
|
5 |
img |
varchar |
255 |
0 |
Y |
N |
轮播图: | |
|
6 |
hits |
int |
10 |
0 |
N |
N |
0 |
点击量: |
|
7 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
8 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
student_users_id |
int |
10 |
0 |
N |
Y |
学生用户ID | |
|
2 |
student_name |
varchar |
64 |
0 |
Y |
N |
学生姓名 | |
|
3 |
student_gender |
varchar |
64 |
0 |
Y |
N |
学生性别 | |
|
4 |
class_name |
varchar |
64 |
0 |
Y |
N |
班级名称 | |
|
5 |
student_id |
varchar |
64 |
0 |
Y |
N |
学生学号 | |
|
6 |
contact_information |
varchar |
16 |
0 |
Y |
N |
联系方式 | |
|
7 |
examine_state |
varchar |
16 |
0 |
N |
N |
已通过 |
审核状态 |
|
8 |
user_id |
int |
10 |
0 |
N |
N |
0 |
用户ID |
|
9 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
10 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
teacher_users_id |
int |
10 |
0 |
N |
Y |
教师用户ID | |
|
2 |
teachers_name |
varchar |
64 |
0 |
Y |
N |
教师姓名 | |
|
3 |
teacher_gender |
varchar |
64 |
0 |
Y |
N |
教师性别 | |
|
4 |
contact_information |
varchar |
16 |
0 |
Y |
N |
联系方式 | |
|
5 |
examine_state |
varchar |
16 |
0 |
N |
N |
已通过 |
审核状态 |
|
6 |
user_id |
int |
10 |
0 |
N |
N |
0 |
用户ID |
|
7 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
8 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
upload_id |
int |
10 |
0 |
N |
Y |
上传ID | |
|
2 |
name |
varchar |
64 |
0 |
Y |
N |
文件名 | |
|
3 |
path |
varchar |
255 |
0 |
Y |
N |
访问路径 | |
|
4 |
file |
varchar |
255 |
0 |
Y |
N |
文件路径 | |
|
5 |
display |
varchar |
255 |
0 |
Y |
N |
显示顺序 | |
|
6 |
father_id |
int |
10 |
0 |
Y |
N |
0 |
父级ID |
|
7 |
dir |
varchar |
255 |
0 |
Y |
N |
文件夹 | |
|
8 |
type |
varchar |
32 |
0 |
Y |
N |
文件类型 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
user_id |
int |
10 |
0 |
N |
Y |
用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
|
2 |
state |
smallint |
5 |
0 |
N |
N |
1 |
账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
|
3 |
user_group |
varchar |
32 |
0 |
Y |
N |
所在用户组:[0,32767]决定用户身份和权限 | |
|
4 |
login_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
上次登录时间: |
|
5 |
phone |
varchar |
11 |
0 |
Y |
N |
手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 | |
|
6 |
phone_state |
smallint |
5 |
0 |
N |
N |
0 |
手机认证:[0,1](0未认证|1审核中|2已认证) |
|
7 |
username |
varchar |
16 |
0 |
N |
N |
用户名:[0,16]用户登录时所用的账户名称 | |
|
8 |
nickname |
varchar |
16 |
0 |
Y |
N |
昵称:[0,16] | |
|
9 |
password |
varchar |
64 |
0 |
N |
N |
密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 | |
|
10 |
|
varchar |
64 |
0 |
Y |
N |
邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 | |
|
11 |
email_state |
smallint |
5 |
0 |
N |
N |
0 |
邮箱认证:[0,1](0未认证|1审核中|2已认证) |
|
12 |
avatar |
varchar |
255 |
0 |
Y |
N |
头像地址:[0,255] | |
|
13 |
open_id |
varchar |
255 |
0 |
Y |
N |
针对获取用户信息字段 | |
|
14 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
group_id |
mediumint |
8 |
0 |
N |
Y |
用户组ID:[0,8388607] | |
|
2 |
display |
smallint |
5 |
0 |
N |
N |
100 |
显示顺序:[0,1000] |
|
3 |
name |
varchar |
16 |
0 |
N |
N |
名称:[0,16] | |
|
4 |
description |
varchar |
255 |
0 |
Y |
N |
描述:[0,255]描述该用户组的特点或权限范围 | |
|
5 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: | |
|
6 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: | |
|
7 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
|
8 |
register |
smallint |
5 |
0 |
Y |
N |
0 |
注册位置: |
|
9 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
10 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
用户输入用户名和密码后,系统首先对这些输入进行基本的格式验证,确保用户名和密码符合系统设定的格式要求(如长度、特殊字符要求等)。系统接收到用户输入后,会根据用户名查找系统中存储的用户信息数据库或者其他持久化存储方式。系统需要验证密码的正确性,验证成功即可成功登录。

-
-
-
-
-
- 用户登录界面设计
-
-
-
-
登录关键代码如下:
/**
* 登录
* @param data
* @param httpServletRequest
* @return
*/
@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;
Map<String, String> map = new HashMap<>();
if(username != null && "".equals(username) == false){
map.put("username", username);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}
else if(email != null && "".equals(email) == false){
map.put("email", email);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}
else if(phone != null && "".equals(phone) == false){
map.put("phone", phone);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}else{
return error(30000, "账号或密码不能为空");
}
if (resultList == null || password == null) {
return error(30000, "账号或密码不能为空");
}
//判断是否有这个用户
if (resultList.size()<=0){
return error(30000,"用户不存在");
}
User byUsername = (User) resultList.get(0);
Map<String, String> groupMap = new HashMap<>();
groupMap.put("name",byUsername.getUserGroup());
List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));
if (groupList.size()<1){
return error(30000,"用户组不存在");
}
UserGroup userGroup = (UserGroup) groupList.get(0);
//查询用户审核状态
if (!StringUtils.isEmpty(userGroup.getSourceTable())){
String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());
if (res==null){
return error(30000,"用户不存在");
}
if (!res.equals("已通过")){
return error(30000,"该用户审核未通过");
}
}
//查询用户状态
if (byUsername.getState()!=1){
return error(30000,"用户非可用状态,不能登录");
}
String md5password = service.encryption(password);
if (byUsername.getPassword().equals(md5password)) {
// 存储Token到数据库
AccessToken accessToken = new AccessToken();
accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));
accessToken.setUser_id(byUsername.getUserId());
Duration duration = Duration.ofSeconds(7200L);
redisTemplate.opsForValue().set(accessToken.getToken(), accessToken,duration);
// 返回用户信息
JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));
user.put("token", accessToken.getToken());
JSONObject ret = new JSONObject();
ret.put("obj",user);
return success(ret);
} else {
return error(30000, "账号或密码不正确");
}
}
用户注册时,系统要求用户提供必要的信息,例如用户名、密码、电子邮件地址等。这些信息通常由用户在注册表单中输入,并通过前端验证确保格式的正确性。注册过程完成后,系统会为新用户创建一个账户。这包括分配一个唯一的用户ID和设置初始的权限或者角色。

-
-
-
-
-
- 用户注册界面设计
-
-
-
-
注册关键代码如下:
/**
* 注册
* @param user
* @return
*/
@PostMapping("register")
public Map<String, Object> signUp(@RequestBody User user) {
// 查询用户
Map<String, String> query = new HashMap<>();
Map<String,Object> map = JSON.parseObject(JSON.toJSONString(user));
query.put("username",user.getUsername());
List list = service.selectBaseList(service.select(query, new HashMap<>()));
if (list.size()>0){
return error(30000, "用户已存在");
}
map.put("password",service.encryption(String.valueOf(map.get("password"))));
service.insert(map);
return success(1);
}
在学校资讯模块中,学生可以浏览学校的新闻、活动、学术讲座等相关内容。学校通过该功能向学生发布最新的校园活动信息、学术动态以及其他相关通知,增强学生对学校活动的参与感和信息的及时性。在详情页可以点赞、收藏和评论。
学校资讯主界面图如下所示。

学生可以通过该功能查看自己的课程安排、教师信息以及课程内容。系统会显示每门课程的上课时间、地点、学分等信息,学生可以方便地了解每学期的课程安排,帮助学生合理安排学习计划。在详情页可以点赞、收藏、评论和请假。
课程信息主界面图如下所示。

-
-
-
-
-
- 课程信息主界面设计
-
-
- 请假趋势界面
-
-
该功能展示学生过去请假的趋势分析,例如请假频率、请假类型等,帮助学生了解自己的请假行为,并根据历史数据做出相应的调整。请假趋势主界面图如下所示。

教师在个人中心管理自己的课程信息,包括查看课程列表、修改课程安排、设置课程内容等。教师还可以查看学生的请假记录和考勤情况,确保课程教学的正常进行。
课程信息主界面图如下所示。

-
-
-
-
-
- 课程信息界面设计
-
-
-
-
课程信息添加代码如下:
@PostMapping("/add")
@Transactional
public Map<String, Object> add(HttpServletRequest request) throws IOException {
service.insert(service.readBody(request.getReader()));
return success(1);
}
public Map<String, Object> addMap(Map<String,Object> map){
service.insert(map);
return success(1);
}
教师可以通过此功能模块审核学生的请假申请。教师可以查看学生提交的请假事由、请假时间等信息,并决定是否批准学生的请假。该模块支持学生上传证明材料,教师可以进行验证。
请假申请主界面图如下所示。

教师可以查看和添加班级的考勤记录。该功能展示学生的出勤情况,帮助教师跟踪学生的出勤率。教师还可以手动调整考勤记录,处理异常情况。
班级考勤主界面图如下所示。

管理员可以管理系统中的所有用户,包括学生用户和教师用户。此功能允许管理员添加、修改、删除用户信息,并根据需要调整用户权限,确保系统的安全性和可控性。
系统用户主界面图如下所示。

-
-
-
-
-
- 系统用户界面设计
-
-
-
-
添加系统用户信息关键代码:
@PostMapping("/add")
@Transactional
public Map<String, Object> add(HttpServletRequest request) throws IOException {
service.insert(service.readBody(request.getReader()));
return success(1);
}
public Map<String, Object> addMap(Map<String,Object> map){
service.insert(map);
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);
}
该功能模块用于管理学校的课程类型。管理员可以定义不同的课程类型(如必修课、选修课等),并将课程划分到不同的类型下。此功能有助于学校在课程安排和统计时进行更加细致的分类管理。
课程类型管理界面如下所示。

-
-
-
-
-
- 课程类型管理详情界面设计
-
-
-
-
添加课程类型代码如下:
@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);
}
管理员可以对轮播图进行管理,包括添加、修改、删除轮播图,设置轮播图属性等。
系统管理界面如下所示。

管理员可以发布公告信息,所有用户都可以查看公告信息。同时,管理员还需要能够查看和管理所有公告信息。
通知公告管理界面如下所示。

-
-
-
-
-
- 通知公告管理界面设计
-
-
-
-
上传图片关键代码如下:
@PostMapping("/upload")
public Map<String, Object> upload(@RequestParam("file") MultipartFile file) {
log.info("进入方法");
if (file.isEmpty()) {
return error(30000, "没有选择文件");
}
try {
//判断有没路径,没有则创建
String filePath = System.getProperty("user.dir") + "/src/main/resources/static/";
File targetDir = new File(filePath);
if (!targetDir.exists() && !targetDir.isDirectory()) {
if (targetDir.mkdirs()) {
log.info("创建目录成功");
} else {
log.error("创建目录失败");
}
}
String fileName = file.getOriginalFilename();
File dest = new File(filePath + fileName);
log.info("文件路径:{}", dest.getPath());
log.info("文件名:{}", dest.getName());
file.transferTo(dest);
JSONObject jsonObject = new JSONObject();
jsonObject.put("url", "/api/upload/" + fileName);
return success(jsonObject);
} catch (IOException e) {
log.info("上传失败:{}", e.getMessage());
}
return error(30000, "上传失败");
系统开发到了最后一个阶段那就是系统测试,系统测试对软件的开发其实是非常有必要的。因为没什么系统一经开发出来就可能会尽善尽美,再厉害的系统开发工程师也会在系统开发的时候出现纰漏,系统测试能够较好的改正一些bug,为后期系统的维护性提供很好的支持。通过系统测试,开发人员也可以建立自己对系统的信心,为后期的系统版本的跟新提供支持。
系统测试包括:用户登录功能测试、课程信息查看功能测试、班级名称添加、班级名称搜索、密码修改功能测试,如表6-1、6-2、6-3、6-4、6-5所示:
表6-1 用户登录功能测试表
|
用例名称 |
用户登录系统 |
|
目的 |
测试用户通过正确的用户名和密码可否登录功能 |
|
前提 |
未登录的情况下 |
|
测试流程 |
1) 进入登录页面 2) 输入正确的用户名和密码 |
|
预期结果 |
用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入 |
|
实际结果 |
实际结果与预期结果一致 |
课程信息查看功能测试:
表6-2课程信息查看功能测试表
|
用例名称 |
课程信息查看 |
|
目的 |
测试课程信息查看功能 |
|
前提 |
用户登录 |
|
测试流程 |
点击课程信息列表 |
|
预期结果 |
可以查看到所有课程信息 |
|
实际结果 |
实际结果与预期结果一致 |
管理员添加班级名称界面测试:
表6-3 管理员添加班级名称界面测试表
|
用例名称 |
班级名称添加测试用例 |
|
目的 |
测试班级名称添加功能 |
|
前提 |
管理员正常登录情况下 |
|
测试流程 |
1)管理员点击班级名称添加,填写信息。 2)点击进行提交。 |
|
预期结果 |
提交以后,班级名称列表会显示新的班级名称信息 |
|
实际结果 |
实际结果与预期结果一致 |
班级名称搜索功能测试:
表6-4班级名称搜索功能测试表
|
用例名称 |
班级名称搜索测试 |
|
目的 |
测试班级名称搜索功能 |
|
前提 |
无 |
|
测试流程 |
1)在搜索框填入搜索关键字。 2)点击搜索按钮。 |
|
预期结果 |
页面显示包含有搜索关键字的班级名称 |
|
实际结果 |
实际结果与预期结果一致 |
密码修改功能测试:
表6-5 密码修改功能测试表
|
用例名称 |
密码修改测试用例 |
|
目的 |
测试管理员密码修改功能 |
|
前提 |
管理员用户正常登录情况下 |
|
测试流程 |
1)管理员密码修改并完成填写。 2)点击进行提交。 |
|
预期结果 |
使用新的密码可以登录 |
|
实际结果 |
实际结果与预期结果一致 |
通过编写学生请假系统的测试用例,已经检测完毕用户登录模块、课程信息查看模块、班级名称添加模块、班级名称搜索模块、密码修改功能测试,通过这5大模块为学生请假系统的后期推广运营提供了强力的技术支撑。
经过一个学期的毕业设计的实现完成已接近尾声,到目前为止,当我回想起整个学期的系统开发日,收获颇丰。毕业设计的主要任务是建立一个智能化的学生请假系统,主要使用springboot+vue框架和Mysql数据库的开发工具,对系统的每个功能模块进行相对应的操作,最后,系统调试结果表明系统基本可以满足功能要求。
学生请假系统的开发对我大学学习的改进有很大帮助。它使我能够学习计算机知识的相关技术方面问题及与人交往的沟通交流方面,让我意识到无论我们做什么,我们都需要坚持不懈,努力工作,只有这样尝试了并且坚持去做了,我们才可以成功,才可以获得成功的喜悦,如果没有尝试,只是想,那连成功的机会都没有,实际操作进行做了,才会越来越近的靠近成功,随着道路一路向前,未来的路是美好的。
在项目的设计过程中,我克服了各种困难,并且在面对这些困难,我积极的面对,想办法解决问题,并且更好的掌握了理论知识和动手操作实践能力,从系统的开发到设计完成,我完成了一个更全面、更完善、更安全的管理系统,这也让我取得了很大的成就感,也使我对未来的生活更有信心。
- 王凤林.移动互联网条件下学生请销假制度创新研究[J].教育信息化论坛,2020,(07):36-37.
- 阳海峰,胡耀文.学生请假系统助推高校学生管理[J].山西青年,2020,(06):73.
- 张学芹.基于Java的学生请假管理系统设计与实现[J].无线互联科技,2024,21(04):90-93+111.
- 李晓彤,赵洪凯.基于Web技术的学生在线签假管理系统的设计与开发[J].实验室科学,2021,24(01):40-43+48.
- 闫博.混合模式下高校学生请假管理系统设计研究[J].信息通信,2020,(08):163-164.
- 蒋银虎.基于UML的高校学生请假管理系统分析建模与设计实现[J].电脑知识与技术,2023,19(21):38-41.DOI:10.14004/j.cnki.ckt.2023.1067.
- 阚允浩,储慧,王静,等.基于C语言的请假系统[J].电脑知识与技术,2022,18(16):51-53.DOI:10.14004/j.cnki.ckt.2022.1222.
- 周清松,付星宇.高校学生请假管理系统的设计与开发[J].电脑知识与技术,2021,17(13):63-66+85.DOI:10.14004/j.cnki.ckt.2021.1349.
- 李震,陶亮,张颖,等.智慧教学环境下Java程序设计课程的混合式教学模式构建与实践[C]//河南省民办教育协会.2024高等教育发展论坛暨思政研讨会论文集(上册).四川大学锦江学院;,2024:3.DOI:10.26914/c.cnkihy.2024.017247.
- 段瑞,李方一.Java项目任务教学研究与设计[C]//河南省民办教育协会.2024年高等教育发展论坛论文集(上册).绵阳城市学院;,2024:2.DOI:10.26914/c.cnkihy.2024.009751.
- 杨华,陈水容,唐天国,等.基于混合模式的学生请假管理系统的研究与开发[J].电脑知识与技术,2020,16(07):69-70+84.DOI:10.14004/j.cnki.ckt.2020.0764.
- 胡耀文,阳海峰.基于ASP.NET的高校学生请假管理系统的设计与实现[J].数码世界,2020,(02):195.
- Aung T S ,Aung H L,Funabiki N, et al.An Implementation of Web-based Personal Platform for Programming Learning Assistant System with Instance File Update Function[J].Engineering Letters,2024,32(2):
- Wang Q ,Zheng L ,Hong R .Exploration on the Teaching Model of Java Programming and Practice for Students with No Programming Background[J].Advances in Educational Technology and Psychology,2024,8(6):
- Zhang J .Teaching Reform of Java Program Design Based on Vocational Education Cloud Platform[J].Journal of Higher Education Teaching,2024,1(5):
- Wai H K ,Funabiki N,Aung T S, et al.Answer Code Validation Program with Test Data Generation for Code Writing Problem in Java Programming Learning Assistant System[J].Engineering Letters,2024,32(5):
- Ullenboom C .Java Programming Exercises:Volume Two: Java Standard Library[M].CRC Press:2024-03-30.
- 陈李秋,吴丽.应用微信小程序设计高校学生请假考勤系统[J].福建电脑,2019,35(12):70-72.DOI:10.16707/j.cnki.fjpc.2019.12.025.
- 李琪,吴洋,郑鑫.学生请假系统的研究与设计[J].电子世界,2019,(19):169-170.DOI:10.19353/j.cnki.dzsj.2019.19.092.
- 田升,郭凤婷,刘印锋.基于Web的学生请假管理设计与实现[J].电脑编程技巧与维护,2019,(06):100-103.DOI:10.16184/j.cnki.comprg.2019.06.038.
这次毕业设计能够完成,最重要的就是来自指导老师的帮助,老师不厌其烦的对我的论文及毕业设计提出非常有建设性的建议,我的毕设施能够完成离不开老师的帮助。我对老师由衷的表示感谢,
其次要感谢大学四年里学院里所有的任课老师的教导,老师们在我整个大学四年里给予了我丰富的知识,让我能够在大学中不虚度光阴,踏踏实实的学习,没有这些老师不辞辛劳的教诲,我无法完成这四年的学业。
最后,我要感谢我的家人和同学们。感谢父母在物质与精神上给予我无限的支持和鼓励。感谢我的同学们,在论文写作期间,你们给予了我许多宝贵的建议和帮助,让我在学术研究的道路上不再孤单。
再次感谢所有在我大学生活中给予我帮助和支持的人们。您们的关怀和鼓励将永远铭刻在我的心中,成为我未来前行的动力。
由于自己的水平有限,毕设仍然存在着很大的缺陷,各位老师若提出意见,我会努力改正。
点赞+收藏+关注 →私信领取本源代码、数据库
关注博主下篇更精彩
一键三连!!!
一键三连!!!
一键三连!!!
感谢一键三连!!!
基于SpringBoot的学生请假系统
1017

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



