springboot企业管理签到系统--附源码05492

基于SpringBoot的企业签到系统

摘要

本论文介绍了一种基于Spring Boot框架的企业管理签到系统的设计与实现。该系统为企业提供高效、便捷的员工考勤管理解决方案,支持管理员、经理及员工三个不同角色的功能需求。管理员角色具有全面的权限,包括系统用户管理、签到规则管理、部门信息管理、签到记录管理、申请记录管理、异常签到管理、考勤统计管理等,能够实现企业整体考勤的管理和监控。此外,管理员还可以进行通知提醒管理、权限管理及操作日志管理,确保系统的安全性和可操作性。

经理用户在权限上略有限制,主要关注签到规则、部门信息、考勤记录及统计功能,能够查看员工的日、周、月考勤情况,并管理相关的签到异常和申请记录。员工用户则主要拥有个人签到记录查询、考勤申请、异常签到处理以及个人中心等功能,满足员工自主管理和查询的需求。

通过这一系统,企业能够实现自动化考勤,减少人工管理的工作量,提高考勤数据的准确性与透明度,进而提升企业管理的效率。系统的实施有效促进了企业管理数字化转型,为企业提供了科学、高效的管理工具。

关键词:企业管理签到系统;SpringBoot;MySQL;Vue

Abstract

This paper introduces the design and implementation of an enterprise management check-in system based on the Spring Boot framework. This system provides efficient and convenient employee attendance management solutions for enterprises, supporting the functional requirements of three different roles: administrators, managers, and employees. The administrator role has comprehensive permissions, including system user management, check-in rule management, department information management, check-in record management, application record management, abnormal check-in management, attendance statistics management, etc., which can realize the overall attendance management and monitoring of the enterprise. In addition, administrators can also manage notifications, permissions, and operation logs to ensure the security and operability of the system.

Manager users have slight restrictions on permissions, mainly focusing on check-in rules, department information, attendance records, and statistical functions. They can view employees' daily, weekly, and monthly attendance status, and manage related check-in exceptions and application records. Employee users mainly have functions such as personal check-in record inquiry, attendance application, abnormal check-in processing, and personal center, which meet the needs of employee self-management and inquiry.

Through this system, enterprises can achieve automated attendance, reduce the workload of manual management, improve the accuracy and transparency of attendance data, and thereby enhance the efficiency of enterprise management. The implementation of the system effectively promotes the digital transformation of enterprise management and provides scientific and efficient management tools for enterprises.

Keywords: Enterprise management sign in system; SpringBoot; MySQL; Vue

目录

1 绪论

1.1 研究背景与意义

1.1.1 研究背景

1.1.2 研究意义

1.2 本国内外研究现状

1.2.1 国内现状

1.2.2 国外现状

1.3 主要研究内容

2 相关技术介绍

2.1 Java语言

2.2 B/S框架

2.3 SpringBoot框架

2.4 Vue技术

2.5 MySQL数据库

3 系统需求分析

3.1 功能需求分析

3.1.1 用户需求

3.1.2 功能需求

3.2 可行性分析

3.2.1 技术可行性

3.2.2 操作可行性

3.2.3 经济可行性

4 系统设计

4.1 系统设计流程

4.1.1 用户登录流程

4.1.2 添加信息流程

4.1.3 修改信息流程

4.1.4 删除信息流程

4.2 数据库表ER

4.3 数据库表物理设计

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.2.4 系统用户

5.2.5 部门人员管理

5.3 员工用户功能

5.3.1 签到规则管理

5.3.2 申请记录管理

5.3.3 异常签到管理

5.3.4 通知提醒管理

6 系统测试

6.1 测试环境

6.2 测试方法

6.3 测试内容

6.4 测试内容

6.5 测试结论

7 总结

参考文献

致谢

1绪论

1.1研究背景与意义

1.1.1研究背景

随着信息技术的快速发展,数字化转型成为现代企业提升管理效率、降低运营成本的重要手段。企业管理中,考勤管理作为人力资源管理的核心环节之一,直接影响到员工的工作表现、企业运营效率以及薪资管理。传统的考勤管理方法依赖人工记录和纸质档案,既繁琐又容易出现误差,且信息统计不及时、不准确,无法为企业决策提供可靠的数据支持。

随着云计算、物联网、大数据等技术的不断发展,基于信息技术的考勤管理系统逐渐成为企业管理的必然趋势。Spring Boot作为一种轻量级的开发框架,因其高效、灵活、易于扩展的特点,已经广泛应用于企业信息管理系统的开发中。在此背景下,开发一套基于Spring Boot框架的企业管理签到系统,能够帮助企业实现自动化、数字化的考勤管理,从而提升管理效率,降低人力成本,提高数据的准确性和实时性。

1.1.2研究意义

本研究的意义在于通过构建基于Spring Boot框架的企业管理签到系统,提升企业的管理效率、数据准确性和实时性。传统的人工考勤管理方法存在着繁琐、易出错的问题,且效率低下,无法及时获取考勤数据。借助信息化技术,系统能够实现考勤管理的自动化,减少人工干预,减少错误,提升数据的准确性,并为企业提供及时、可靠的考勤统计数据。

研究还推动了企业的数字化转型。随着信息技术的发展,越来越多的企业转向数字化管理,通过信息化的管理工具提升管理效能。本系统通过角色权限的区分,使得不同角色的管理需求得到满足,提供了精细化的考勤管理,并且保障了系统的安全性。考勤管理直接关系到员工薪资和企业运营,通过本系统能够为企业提供规范化、透明化的考勤管理,有效减少了人为因素对考勤管理的影响,避免了由此引发的争议。

最终,系统的实现有助于提高企业的竞争力,优化人力资源配置,提升整体运营效率,从而增强企业在市场中的竞争优势。因此,本研究不仅为企业提供了现代化的考勤管理工具,也为企业的数字化转型和管理水平提升提供了可行的解决方案。

1.2本国内外研究现状

1.2.1国内现状

在中国,随着信息技术的飞速发展,越来越多的企业开始采用数字化手段进行考勤管理。传统的纸质考勤卡、手工打卡已经逐步被各种电子化考勤系统取代。许多大型企业,如华为、阿里巴巴、腾讯等,已经实现了智能化考勤管理,利用人脸识别、指纹打卡等技术,确保考勤数据的准确性与安全性。

例如,阿里巴巴使用基于大数据和人工智能的考勤系统,员工的考勤记录通过系统自动统计,部门负责人可以实时查看员工的考勤状况并做出调整。这种数字化管理不仅提高了工作效率,还减轻了管理人员的工作压力。

然而,在一些中小型企业中,虽然已经有了一定程度的考勤信息化,但仍然存在部分企业在信息化建设上投入不足,仍依赖传统的手工管理方式。部分企业还面临着数据安全、隐私保护等问题,尤其是对于员工个人信息的处理,仍需改进和完善。

1.2.2国外现状

在国外,考勤管理系统的应用已经非常成熟,并且伴随着云计算、物联网、人工智能等新兴技术的出现,很多国际企业已经采用了高度自动化和智能化的考勤管理系统。例如,全球知名企业IBM、谷歌、微软等都已经通过先进的数字化考勤系统实现了高效的员工考勤管理。

以IBM为例,该公司采用了基于云平台的考勤管理系统,员工的考勤数据通过云端实时上传,管理者可以根据不同地区和时区的需求灵活调整工作时间。这不仅提高了全球员工的考勤管理效率,也增强了数据的透明度和安全性。

此外,国外的一些新兴企业也在考勤管理中融入了创新技术。例如,像美国的Toggl这类创业公司,利用移动应用程序和云技术,使得员工可以随时记录和查看考勤信息。这种灵活且高效的管理方式,满足了远程办公和灵活工作时间等现代企业的需求。

总体来看,国外的考勤管理系统已经趋于智能化和精细化,尤其是在跨国公司中,全球化、分布式的工作方式使得现代考勤系统的需求更加多样化。而国内在此方面尽管取得了一定进展,但仍面临着信息化建设水平不均衡、技术应用深度不够等问题。

1.3主要研究内容

本研究设计并实现一套基于Spring Boot框架的企业管理签到系统,解决传统考勤管理中存在的效率低下、数据不准确等问题。通过结合现代技术,本系统能够实现自动化考勤、数据统计、权限管理等功能,优化企业管理流程,为企业提供更加科学、便捷的管理工具。研究内容主要包括以下几个方面:

需求分析与系统设计:首先,通过对不同角色用户(管理员、经理、员工)的需求分析,明确系统应具备的功能模块及其具体实现。主要功能包括系统用户管理、签到规则管理、部门信息管理、签到记录管理、异常签到管理、考勤统计等。结合企业实际需求,设计系统架构,确保系统在功能、性能和安全性等方面满足企业管理要求。

基于Spring Boot框架的系统开发:本研究采用Spring Boot框架进行系统的开发与实现。具体包括后台服务的开发、数据库设计、前端页面的实现以及用户交互逻辑的编写。Spring Boot框架具备高效、灵活和易于扩展的特点,能够有效提高系统的开发效率,且具备较强的维护性与扩展性。

角色权限管理与数据安全:研究设计了系统的多角色权限管理机制,确保不同角色的用户拥有不同的访问权限。管理员能够管理用户、查看考勤数据、设置规则等;经理可以查看考勤数据并进行部分管理;员工则主要负责个人考勤记录的查询和申请。通过权限管理,确保数据的安全性和隐私保护,避免未经授权的操作和信息泄露。

考勤数据的自动化管理与统计:系统应支持自动化签到记录的管理,并能够根据不同时间周期(日、周、月)对考勤数据进行统计与分析。研究重点设计考勤数据的收集、存储、查询与统计功能,确保系统能够快速、准确地处理大量数据并生成有效的报表。同时,系统应支持异常签到处理和考勤申请功能,以应对特殊情况。

系统的测试与优化:在系统开发完成后,进行系统的功能测试、性能测试和安全性测试,确保系统在多用户、高并发的情况下依然能够稳定运行。通过对系统的调优,提升数据库查询和数据处理速度,优化用户体验,确保系统具有良好的扩展性和可维护性。

系统的实施与应用:本研究最后通过实际企业应用案例,评估系统在企业中的应用效果,验证系统是否能够有效提高企业的考勤管理效率,降低管理成本,并为未来企业的数字化转型提供参考。

通过以上研究内容,本研究将为企业提供一套高效、智能、安全、易于维护的考勤管理解决方案,进一步推动企业的数字化转型,并提升整体管理水平。

2相关技术介绍

2.1Java语言

Java语言是一种广泛使用的高级编程语言,具有平台无关性、面向对象特性和丰富的标准库。Java通过Java虚拟机(JVM)实现跨平台运行,开发者可以编写一次代码,在任何支持JVM的环境中执行[1]。Java的面向对象特性使得代码复用和模块化变得更加容易,促进了软件的维护和扩展。Java支持多线程编程,允许开发者在同一程序中同时执行多个任务,提升了应用程序的性能。

Java语言的语法结构简洁且易于理解,吸引了大量开发者。Java的标准库包含数据结构、输入输出处理、网络编程等众多功能模块。这使得开发者在构建应用程序时能够高效利用已有工具,减少重复劳动。Java广泛应用于企业级应用、移动应用、Web开发和大数据处理等领域。

2.2 B/S框架

B/S(Browser/Server)架构是一种基于浏览器和服务器的系统架构模式,用户通过浏览器与服务器进行交互。B/S架构简化了客户端的部署和管理,用户无需在本地安装复杂的软件,只需使用标准浏览器即可访问应用程序。服务器端负责处理业务逻辑和数据存储,客户端则主要负责展示用户界面和数据交互[2]。B/S架构的设计使得系统更新和维护集中在服务器端,降低了维护成本。

B/S架构通常采用Web技术进行实现,包括HTML、CSS和JavaScript等。用户在浏览器中发起请求,服务器响应并返回数据。数据传输通常通过HTTP或HTTPS协议进行,B/S架构的灵活性使其适用于在线购物、信息管理系统和社交网络等各类应用场景[3]。由于其易于扩展性,B/S架构可以方便地支持大规模用户访问,适应不断变化的业务需求。

2.3 SpringBoot框架

SpringBoot框架是基于Spring框架的开源项目,简化Java应用程序的开发过程。SpringBoot通过约定优于配置的理念,减少了传统Spring应用的繁琐配置,开发者可以快速搭建和部署应用程序。框架提供了一系列默认配置,支持自动化配置,简化了应用启动的复杂性[4]。SpringBoot内置了嵌入式Web服务器,使得开发者能够独立运行Java应用,无需外部容器。

SpringBoot支持微服务架构,开发者可以轻松创建和管理多个微服务。框架集成了丰富的功能模块,包括安全、数据访问和消息中间件等,支持RESTful API和JSON数据格式的处理[5]。SpringBoot还提供了强大的监控和管理功能,允许开发者实时监控应用的健康状态和性能指标。借助SpringBoot,开发者能够高效构建和维护现代企业级应用,满足复杂业务需求。

2.4 Vue技术

Vue是一种渐进式JavaScript框架,专注于构建用户界面。Vue采用组件化的开发模式,允许开发者将应用程序拆分为独立的、可重用的组件,从而提高了开发效率和代码的可维护性[6]。框架的核心库专注于视图层,支持数据绑定和DOM操作,提供了简洁的API。Vue的虚拟DOM机制提升了应用的性能,减少了实际DOM操作的次数。

Vue支持双向数据绑定,能够自动更新视图与模型之间的变化。开发者可以通过Vue的指令系统,简化数据展示和事件处理。Vue还支持路由管理和状态管理,使得开发复杂单页面应用变得更加容易[7]。借助Vue的生态系统,开发者能够使用多种工具和库来扩展功能,满足不同的业务需求。Vue在前端开发中逐渐成为主流选择,受到广泛关注和应用。

2.5 MySQL数据库

MySQL是一种开源关系型数据库管理系统,广泛应用于Web应用和企业级数据存储。MySQL支持结构化查询语言,允许开发者通过标准语句进行数据的创建、读取、更新和删除操作[8]。数据库通过表格形式组织数据,支持数据完整性和约束条件的定义。MySQL的存储引擎机制使得用户可以根据具体需求选择不同的存储引擎,以优化性能和功能。

MySQL具有高性能和可扩展性,支持大规模数据存储和高并发访问。系统提供了丰富的用户权限管理和数据加密安全特性。MySQL能够与多种编程语言和框架兼容,广泛应用于内容管理系统、电子商务平台和数据分析等各种场景。

3系统需求分析

3.1功能需求分析

3.1.1用户需求

在进行基于Spring Boot的企业管理签到系统的功能需求分析时,需要根据不同角色的需求来设计系统功能。系统将支持管理员、经理和员工三类角色,因此功能需求会有所不同。以下是针对系统各个功能模块的需求分析:

1. 管理员功能需求分析

管理员是系统的最高权限用户,负责系统的全局管理和设置。管理员功能的核心需求包括:

系统用户管理:管理员能够管理所有系统用户(包括员工和经理)。功能包括添加、删除、修改用户信息,以及为用户分配角色(管理员、经理、员工)和权限。

签到规则管理:管理员可以设置并管理企业的考勤规则,包括工作时间、签到时间、迟到规则、假期管理等,并根据实际需要进行修改。

部门信息管理:管理员可以管理企业的部门信息,包括部门名称、部门负责人以及所属员工等。

部门人员管理:管理员能够查看并管理每个部门的员工,支持员工的调动、入职、离职等操作。

签到记录管理:管理员能够查看所有员工的签到记录,并进行数据审核、异常签到处理等。

申请记录管理:管理员负责审批员工的请假、加班等申请,并能查看所有申请记录的处理情况。

异常签到管理:管理员可查看异常签到记录(如迟到、忘记打卡等),并能根据实际情况进行调整或确认。

考勤统计管理:管理员可以查看并导出考勤统计报表(按日、周、月),支持员工考勤数据的统计和分析。

通知提醒管理:管理员可以设置通知规则,系统自动发送迟到、请假、审批等相关通知。

权限管理:管理员负责对系统进行权限管理,确保系统的安全性。管理员可以为不同角色配置不同的访问权限。

操作日志管理:管理员可以查看系统的操作日志,了解系统中所有管理操作的详细记录,确保系统的操作可追溯。

2. 经理功能需求分析

经理是系统中的中层用户,其权限低于管理员,主要涉及本部门员工的考勤管理。经理的功能需求包括:

系统用户管理:经理能够查看自己部门的所有员工信息,但无法修改其他部门的人员。

签到规则管理:经理可以查看公司全局的签到规则,但不能进行修改。

部门信息管理:经理能够查看自己部门的基本信息,如部门名称、部门结构、员工名单等。

部门人员管理:经理可以查看自己部门员工的详细信息,包括部门成员的入职、离职及调动情况。

签到记录管理:经理能够查看自己部门员工的签到记录,能够进行一些基础的操作,如修改或审批员工的签到异常记录。

申请记录管理:经理能够查看和审批自己部门员工提交的考勤相关申请,如请假、加班、调休等。

异常签到管理:经理负责查看和处理部门内员工的异常签到情况,并做出相应的审批。

考勤统计管理:经理可以查看本部门员工的考勤统计数据,包括日、周、月报表,帮助经理评估员工的出勤情况。

3. 员工功能需求分析

员工是系统中的基本用户,拥有查看和提交自己相关信息的权限。员工的功能需求包括:

签到规则查看:员工能够查看公司全局的签到规则,包括上下班时间、迟到规定、请假管理等。

部门信息查看:员工可以查看自己所在部门的基本信息,如部门名称、负责人等。

个人签到记录管理:员工可以查看自己的签到记录,确保个人考勤数据的准确性。

考勤申请管理:员工能够提交考勤相关的申请,包括请假、加班、调休等,并能查看申请的处理进度。

异常签到处理:员工能够查看并处理自己的异常签到记录(如忘记打卡、迟到等),并根据需要提交申诉。

通知提醒查看:员工能够接收系统自动发送的通知提醒,例如迟到提醒、审批通过提醒等。

个人中心:员工能够在个人中心查看个人信息,修改密码、联系方式等,查看自己的考勤记录,并了解自己未来的考勤计划。

3.1.2功能需求

本系统的功能需求为企业提供一个高效、智能的考勤管理平台,覆盖了从用户管理、签到规则、考勤记录、申请审批到考勤统计等各方面的需求。管理员拥有全方位的权限,可以进行系统用户管理、规则设置、部门管理、数据审核等操作;经理则主要负责部门内员工的考勤数据查看与审批;员工可以查询和申请自己的考勤记录,并处理异常签到情况。系统还提供了考勤统计与报表生成功能,以便管理员和经理进行数据分析。通过自动通知、权限管理、数据加密等安全措施,系统确保了数据的安全性与隐私保护,从而实现了企业考勤管理的自动化、精准化与透明化。系统功能结构图如图3-1所示。

图3-1系统功能结构图

3.2可行性分析

3.2.1技术可行性

系统采用当前主流的SpringBoot和Vue.js开发框架,具备良好的技术基础。这些技术已被广泛应用于多种商业项目,具备成熟的文档和社区支持,便于开发获取必要的资源与解决方案。个人拥有丰富的相关技术经验,能够有效应对潜在技术挑战。所需的软硬件资源易于获取,且具备良好的兼容性,降低了技术实现的难度。

3.2.2操作可行性

系统具备直观友好的用户界面,支持简便的导航和功能访问,极大地提升了用户的使用体验。系统提供了自定义的工作流程和角色权限管理,使不同层级的用户能够快速上手,完成各自的任务。。

3.2.3经济可行性

系统所使用的软件为开源技术,降低了使用费用,同时硬件成本较低,使得整体初始投入相对合理,具备较高性价比。因此,系统在经济上是完全可行的。

4系统设计

4.1系统设计流程

4.1.1用户登录流程

用户输入用户名和密码后,系统先检查输入是否为空,再验证用户名是否存在,若存在则通过用户名获取密码并校验。若密码正确则登录成功,否则提示密码错误。若用户名不存在或无法登录,提示用户操作无效。如图4-1所示。

图4-1登录流程图

4.1.2添加信息流程

管理员可以添加信息,用户添加可以自己权限内的信息,输入信息后,要想利用这个软件来进行系统的安全管理,首先需要登录到该软件中。添加信息流程如图4-2所示。

图4-2添加信息流程图

4.1.3修改信息流程

用户首先选择需要修改的记录,输入修改后的数据,系统判断输入数据是否合法。若数据不合法,提示重新输入;若数据合法,则将修改后的数据写入数据库,完成操作后流程结束。修改信息流程图如图4-3所示。

图4-3修改信息流程图

4.1.4删除信息流程

用户选择需要删除的记录后,系统判断是否确认删除。若未确认,返回选择环节;若确认删除,则更新数据库,删除对应记录,完成操作后流程结束。删除信息流程图如图4-4所示。

图4-4删除信息流程图

4.2数据库表ER

数据库概念模型是数据库设计的一个阶段,它描述了数据库中数据的逻辑结构和之间的关系,而不关注具体的实现细节[9]。概念模型通常用于数据库设计的初期阶段,以帮助开发人员和用户理解数据库中存储的数据以及数据之间的关系。

数据库概念模型通常采用高层次的概念来描述数据,常见的概念模型包括实体-关系模型(Entity-Relationship Model,ERM)、面向对象模型(Object-Oriented Model)等。在概念模型中,数据被抽象为实体(Entity)和实体之间的关系(Relationship),并且定义了实体的属性(Attribute),通常以E-R图来表达。实体属性图如图4-5所示。

图4-11 E R实体图

4.3数据库表物理设计

体育馆管理系统中,教练数据库表物理设计表,如表4-1所示。

数据库表结构文档

表 4-1-abnormal_check_in(异常签到)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

abnormal_check_in_id

int

异常签到ID

2

division_manager

int

部门经理

3

managers_name

varchar

64

经理姓名

4

department_name

varchar

64

部门名称

5

managers_phone_number

varchar

64

经理电话

6

employee_users

int

员工用户

7

employee_name

varchar

64

员工姓名

8

exception_type

varchar

64

异常类型

9

check_in_time

datetime

签到时间

10

abnormal_description

text

65535

异常描述

11

create_time

datetime

创建时间

12

update_time

timestamp

更新时间

13

source_table

varchar

255

来源表

14

source_id

int

来源ID

15

source_user_id

int

来源用户

表 4-2-access_token(登陆访问时长)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

token_id

int

临时访问牌ID

2

token

varchar

64

临时访问牌

3

info

text

65535

信息

4

maxage

int

最大寿命:默认2小时

5

create_time

timestamp

创建时间

6

update_time

timestamp

更新时间

7

user_id

int

用户编号

表 4-3-application_record(申请记录)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

application_record_id

int

申请记录ID

2

division_manager

int

部门经理

3

managers_name

varchar

64

经理姓名

4

department_name

varchar

64

部门名称

5

managers_phone_number

varchar

64

经理电话

6

employee_users

int

员工用户

7

employee_name

varchar

64

员工姓名

8

application_status

varchar

64

申请状态

9

application_date

date

申请日期

10

application_remarks

text

65535

申请备注

11

examine_state

varchar

16

审核状态

12

examine_reply

varchar

16

审核回复

13

sign_in_record_limit_times

int

更新限制次数

14

create_time

datetime

创建时间

15

update_time

timestamp

更新时间

16

source_table

varchar

255

来源表

17

source_id

int

来源ID

18

source_user_id

int

来源用户

表 4-4-auth(用户权限管理)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

auth_id

int

授权ID

2

user_group

varchar

64

用户组

3

mod_name

varchar

64

模块名

4

table_name

varchar

64

表名

5

page_title

varchar

255

页面标题

6

path

varchar

255

路由路径

7

parent

varchar

64

父级菜单

8

parent_sort

int

父级菜单排序

9

position

varchar

32

位置

10

mode

varchar

32

跳转方式

11

add

tinyint

是否可增加

12

del

tinyint

是否可删除

13

set

tinyint

是否可修改

14

get

tinyint

是否可查看

15

field_add

text

65535

添加字段

16

field_set

text

65535

修改字段

17

field_get

text

65535

查询字段

18

table_nav_name

varchar

500

跨表导航名称

19

table_nav

varchar

500

跨表导航

20

option

text

65535

配置

21

create_time

timestamp

创建时间

22

update_time

timestamp

更新时间

表 4-5-code_token(验证码)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

code_token_id

int

验证码ID

2

token

varchar

255

令牌

3

code

varchar

255

验证码

4

expire_time

timestamp

失效时间

5

create_time

timestamp

创建时间

6

update_time

timestamp

更新时间

表 4-6-daily_attendance_statistics(日考勤统计)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

daily_attendance_statistics_id

int

日考勤统计ID

2

manager_user

int

经理用户

3

managers_name

varchar

64

经理姓名

4

department_name

varchar

64

部门名称

5

managers_phone_number

varchar

64

经理电话

6

statistical_object

varchar

64

统计对象

7

attendance_frequency

double

出勤次数

8

number_of_latencies

double

迟到次数

9

number_of_early_departures

double

早退次数

10

statistical_date

date

统计日期

11

statistical_remarks

text

65535

统计备注

12

create_time

datetime

创建时间

13

update_time

timestamp

更新时间

表 4-7-department_information(部门信息)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

department_information_id

int

部门信息ID

2

division_manager

int

部门经理

3

managers_name

varchar

64

经理姓名

4

department_name

varchar

64

部门名称

5

managers_phone_number

varchar

64

经理电话

6

number_of_departments

double

部门人数

7

date_of_incorporation

date

成立日期

8

departmental_responsibilities

text

65535

部门职责

9

department_personnel_limit_times

int

分配限制次数

10

create_time

datetime

创建时间

11

update_time

timestamp

更新时间

表 4-8-department_personnel(部门人员)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

department_personnel_id

int

部门人员ID

2

division_manager

int

部门经理

3

managers_name

varchar

64

经理姓名

4

department_name

varchar

64

部门名称

5

managers_phone_number

varchar

64

经理电话

6

employee_users

int

员工用户

7

employee_name

varchar

64

员工姓名

8

employee_phone_number

varchar

64

员工电话

9

remarks_information

text

65535

备注信息

10

sign_in_record_limit_times

int

签到打卡限制次数

11

application_record_limit_times

int

补签申请限制次数

12

abnormal_check_in_limit_times

int

异常签到限制次数

13

create_time

datetime

创建时间

14

update_time

timestamp

更新时间

15

source_table

varchar

255

来源表

16

source_id

int

来源ID

17

source_user_id

int

来源用户

表 4-9-employee_users(员工用户)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

employee_users_id

int

员工用户ID

2

manager_user

int

经理用户

3

department_name

varchar

64

部门名称

4

employee_name

varchar

64

员工姓名

5

employee_gender

varchar

64

员工性别

6

employee_phone_number

varchar

64

员工电话

7

examine_state

varchar

16

审核状态

8

user_id

int

用户ID

9

create_time

datetime

创建时间

10

update_time

timestamp

更新时间

表 4-10-hits(用户点击)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

hits_id

int

点赞ID

2

user_id

int

点赞人

3

create_time

timestamp

创建时间

4

update_time

timestamp

更新时间

5

source_table

varchar

255

来源表

6

source_field

varchar

255

来源字段

7

source_id

int

来源ID

表 4-11-manager_user(经理用户)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

manager_user_id

int

经理用户ID

2

managers_name

varchar

64

经理姓名

3

department_name

varchar

64

部门名称

4

manager_gender

varchar

64

经理性别

5

managers_phone_number

varchar

64

经理电话

6

examine_state

varchar

16

审核状态

7

user_id

int

用户ID

8

create_time

datetime

创建时间

9

update_time

timestamp

更新时间

表 4-12-monthly_attendance_statistics(月考勤统计)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

monthly_attendance_statistics_id

int

月考勤统计ID

2

manager_user

int

经理用户

3

managers_name

varchar

64

经理姓名

4

department_name

varchar

64

部门名称

5

managers_phone_number

varchar

64

经理电话

6

statistical_object

varchar

64

统计对象

7

attendance_frequency

double

出勤次数

8

number_of_latencies

double

迟到次数

9

number_of_early_departures

double

早退次数

10

statistical_month

varchar

64

统计月份

11

statistical_remarks

text

65535

统计备注

12

create_time

datetime

创建时间

13

update_time

timestamp

更新时间

表 4-13-notification_reminder(通知提醒)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

notification_reminder_id

int

通知提醒ID

2

reminder_title

varchar

64

提醒标题

3

employee_users

int

员工用户

4

employee_name

varchar

64

员工姓名

5

department_name

varchar

64

部门名称

6

reminder_type

varchar

64

提醒类型

7

reminder_content

text

65535

提醒内容

8

create_time

datetime

创建时间

9

update_time

timestamp

更新时间

表 4-14-operation_log(操作日志表)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

operation_log_id

int

操作日志ID

2

user_group

varchar

64

用户角色

3

user_name

varchar

64

用户账号

4

routes

varchar

64

模块名称

5

create_time

datetime

创建时间

6

update_time

timestamp

更新时间

表 4-15-schedule(日程管理)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

schedule_id

smallint

日程ID

2

content

varchar

255

日程内容

3

scheduled_time

datetime

计划时间

4

user_id

int

用户ID

5

create_time

datetime

创建时间

6

update_time

datetime

更新时间

表 4-16-score(评分)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

score_id

int

评分ID

2

user_id

int

评分人

3

nickname

varchar

64

昵称

4

score_num

double

评分

5

create_time

timestamp

创建时间

6

update_time

timestamp

更新时间

7

source_table

varchar

255

来源表

8

source_field

varchar

255

来源字段

9

source_id

int

来源ID

表 4-17-sign_in_record(签到记录)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

sign_in_record_id

int

签到记录ID

2

division_manager

int

部门经理

3

managers_name

varchar

64

经理姓名

4

department_name

varchar

64

部门名称

5

managers_phone_number

varchar

64

经理电话

6

employee_users

int

员工用户

7

employee_name

varchar

64

员工姓名

8

sign_in_type

varchar

64

签到类型

9

check_in_frequency

varchar

64

签到次数

10

check_in_time

datetime

签到时间

11

check_in_location

varchar

64

签到地点

12

location_address

varchar

64

当前位置

13

location_lng

varchar

64

当前位置经度

14

location_lat

varchar

64

当前位置纬度

15

create_time

datetime

创建时间

16

update_time

timestamp

更新时间

17

source_table

varchar

255

来源表

18

source_id

int

来源ID

19

source_user_id

int

来源用户

表 4-18-sign_in_rules(签到规则)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

sign_in_rules_id

int

签到规则ID

2

rule_theme

varchar

64

规则主题

3

rule_type

varchar

64

规则类型

4

release_date

date

发布日期

5

cover_photo

varchar

255

封面图片

6

rule_details

text

65535

规则详情

7

create_time

datetime

创建时间

8

update_time

timestamp

更新时间

表 4-19-upload(文件上传)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

upload_id

int

上传ID

2

name

varchar

64

文件名

3

path

varchar

255

访问路径

4

file

varchar

255

文件路径

5

display

varchar

255

显示顺序

6

father_id

int

父级ID

7

dir

varchar

255

文件夹

8

type

varchar

32

文件类型

表 4-20-user(用户账户)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

user_id

int

用户ID

2

state

smallint

账户状态:(1可用|2异常|3已冻结|4已注销)

3

user_group

varchar

32

所在用户组

4

login_time

timestamp

上次登录时间

5

phone

varchar

11

手机号码

6

phone_state

smallint

手机认证:(0未认证|1审核中|2已认证)

7

username

varchar

16

用户名

8

nickname

varchar

16

昵称

9

password

varchar

64

密码

10

email

varchar

64

邮箱

11

email_state

smallint

邮箱认证:(0未认证|1审核中|2已认证)

12

avatar

varchar

255

头像地址

13

open_id

varchar

255

针对获取用户信息字段

14

create_time

timestamp

创建时间

表 4-21-user_group(用户组)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

group_id

mediumint

用户组ID

2

display

smallint

显示顺序

3

name

varchar

16

名称

4

description

varchar

255

描述

5

source_table

varchar

255

来源表

6

source_field

varchar

255

来源字段

7

source_id

int

来源ID

8

register

smallint

注册位置

9

create_time

timestamp

创建时间

10

update_time

timestamp

更新时间

表 4-22-weekly_attendance_statistics(周考勤统计)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

weekly_attendance_statistics_id

int

周考勤统计ID

2

manager_user

int

经理用户

3

managers_name

varchar

64

经理姓名

4

department_name

varchar

64

部门名称

5

managers_phone_number

varchar

64

经理电话

6

statistical_object

varchar

64

统计对象

7

attendance_frequency

double

出勤次数

8

number_of_latencies

double

迟到次数

9

number_of_early_departures

double

早退次数

10

statistical_cycle

varchar

64

统计周期

11

statistical_remarks

text

65535

统计备注

12

create_time

datetime

创建时间

13

update_time

timestamp

更新时间

5系统实现

5.1管理员功能实现

5.1.1管理员登录

管理员登录页面是企业管理签到系统的入口,专为系统管理员设计。通过该页面,管理员可以输入用户名和密码进行身份验证,成功登录后进入系统后台管理界面,拥有管理和配置系统的权限。登录页面设计简洁直观,确保管理员能够快速、便捷地进入系统。为了保障账户的安全性,管理员登录页面通常还会包括验证码功能,以防止恶意攻击和自动化登录尝试。管理员登录界面如图5-1所示。

图5-1管理员登录界面。

5.1.2后台首页

后台首页是系统的核心管理界面,提供重要的实时数据和考勤情况,帮助管理员和经理快速了解企业或部门的考勤状况。首页包括快捷入口、公告、任务提醒、操作日志和考勤统计,确保管理人员能够高效处理员工的考勤异常、请假申请等事项。通过这一界面,管理员可以快速进入各个管理功能模块,提升工作效率。后台界面如图5-2所示。

图5-2后台首页界面。

5.1.3签到规则管理

签到规则管理模块用于创建和维护企业的考勤规则,包含规则主题、类型、发布日期、封面图片、规则详情等内容,确保规则清晰明确。管理员可以查看规则列表,了解每条规则的创建时间、更新时间及相关详情,并根据需要对规则进行编辑或删除操作。此外,管理员还可以新增签到规则,确保企业的考勤管理政策灵活调整,满足实际需求。签到规则界面如图5-3所示。

图5-3签到规则管理界面。

5.1.4部门信息管理

部门信息管理模块用于管理企业内各部门的基本信息,包括部门经理、部门名称、部门电话、部门人数、成立日期、部门职责等内容。管理员可以查看所有部门的信息列表,了解每个部门的基本情况,并根据需要进行编辑或添加新部门信息。部门信息包括经理姓名、电话、部门人数、成立日期以及职责说明,帮助管理员清晰了解每个部门的组织架构和职能。部门信息管理界面如图5-4所示。

图5-4部门信息管理界面。

5.1.5日考勤统计管理

管理员日考勤统计管理页面帮助管理员高效管理和分析员工的考勤数据。通过经理姓名和部门名称的筛选功能,管理员可以快速查询特定经理或部门的考勤情况。页面还提供查询、重置和删除功能,方便管理员调整查询条件、清除筛选信息或删除不必要的考勤记录。此外,页面还展示了出勤次数和迟到次数的详细数据,帮助管理员评估员工的出勤表现和及时性,从而采取相应的管理措施。日考勤统计界面如图5-5所示。

图5-5日考勤统计管理界面。

5.2用户功能

5.2.1用户注册页面

用户注册页面是企业管理签到系统的入口之一,为新用户提供创建账户的功能。页面设计简洁直观,用户需要填写必要的个人信息,如用户名、密码、邮箱或手机号等,并通过验证码进行验证,确保注册过程的安全性。注册完成后,用户可以根据角色(管理员、经理、员工)登陆系统并访问相应的功能模块。该页面支持必要的验证机制,如密码强度要求和信息重复检查,确保系统的安全性和数据的准确性。用户注册页面如图5-6所示。

图5-6用户注册界面。

5.2.2用户登录页面

登录页面为用户提供安全的身份验证入口,通过输入用户名和密码登录系统,访问相应的功能模块。用户登录页面如图5-7所示。

图5-7用户登录界面。

5.2.3经理用户首页

经理首页界面是经理登录后的主控制面板,提供了部门考勤概览、任务提醒、考勤统计和快捷操作入口等功能。通过该界面,经理可以快速查看部门员工的考勤情况,处理待审批的考勤申请,并分析部门的考勤数据。经理用户界面如图5-8所示。

图5-8经理用户首页界面。

5.2.4系统用户

经理可以通过系统管理功能,添加和管理自己部门内员工的账号,确保部门考勤和信息管理的顺利进行。系统用户界面如图5-9所示。

图5-9系统用户界面。

5.2.5部门人员管理

部门人员管理模块允许管理员或经理查看和管理自己部门的人员信息,包括部门经理姓名、部门名称、员工姓名及联系方式等。通过部门人员列表,经理可以查询到部门内所有员工的详细信息,进行相应的操作如修改、更新或删除人员信息。系统用户界面如图5-10所示。

图5-10部门人员管理界面。

5.3员工用户功能

5.3.1签到规则管理

员工用户签到规则管理功能允许员工查看公司制定的签到规定,包括签到时间、迟到规则等,确保员工了解并遵守考勤要求。签到规则管理界面如图5-11所示。

图5-11员工签到管理界面。

5.3.2申请记录管理

员工用户申请记录管理功能允许员工查看和管理自己的考勤申请记录,包括请假、加班和补签等申请,员工可以方便地跟踪申请的状态,并及时更新相关信息。申请记录管理界面如图5-12所示。

图5-12申请记录管理界面。

5.3.3异常签到管理

异常签到管理功能允许管理员或经理查看和处理员工的异常签到情况,包括迟到、早退、漏打卡等问题。该功能帮助管理员识别员工的签到异常,并提供相应的处理选项,如修改签到时间、批准或拒绝补签申请等。异常签到管理界面如图5-13所示。

图5-13异常签到管理界面。

5.3.4通知提醒管理

通知提醒管理功能用于管理员工的考勤相关通知和提醒事项。通过该功能,管理员可以设置和管理系统自动发送的通知规则,如迟到提醒、请假审批通知、考勤异常提醒等。员工也可以接收到相关的考勤信息,确保员工能够及时了解和响应考勤相关事项。通知提醒管理界面如图5-14所示。

图5-14通知提醒管理界面。

6系统测试

6.1测试环境

系统的测试环境如表6-1所示。

表6-1 测试环境

类别

配置项

详细信息

硬件环境

服务器CPU

Intel Xeon E5-2680 v4

内存

32GB DDR4

硬盘

1TB SSD

网络带宽

100Mbps

软件环境

操作系统

Windows Server 2019

数据库

MySQL 8.0

Web服务器

Tomcat 9.0

开发框架

SpringBoot 2.5

前端框架

Vue.js 2.6

Java版本

JDK 11

浏览器

Chrome 88, Firefox 85

6.2测试方法

系统测试的主要目的是确保系统的功能、性能和稳定性满足需求规格说明书中的要求,并验证系统在实际使用环境中的可用性和可靠性。通过测试,可以发现软件中的缺陷、漏洞和潜在问题,确保系统运行的准确性、完整性和安全性。在功能测试中,目的是验证系统各功能模块是否按设计实现预期功能,例如用户登录、信息管理、数据查询等核心功能是否准确执行。性能测试的目的是验证系统在高并发、数据量大等压力场景下的响应时间和处理能力,确保系统具备良好的性能。兼容性测试的目的是确保系统在不同的硬件、软件和浏览器环境中能正常运行。测试还包括对异常处理和边界条件的验证,确保系统在异常场景下能够正确处理和恢复。最终,通过测试确保系统可以安全稳定地部署上线,为用户提供可靠的服务。

6.3测试内容

系统测试采用多种测试方法,以全面验证系统的功能和性能。功能测试采用黑盒测试方法,通过设计测试用例直接验证系统功能是否符合需求,无需了解内部代码逻辑。例如,设计用例验证用户登录模块,通过输入合法和非法的用户名与密码,检查系统响应是否符合预期。性能测试采用压力测试和负载测试方法,通过模拟高并发用户访问、数据处理的场景,评估系统的响应时间、吞吐量和稳定性。兼容性测试通过在不同操作系统、浏览器和硬件设备上运行系统,验证其在不同环境中的适应性。异常测试通过设计边界条件和异常输入,检查系统对非法数据和操作的处理能力。测试用例的设计需覆盖系统的所有功能模块和接口,确保测试过程的全面性。通过系统测试方法的综合应用,可以有效发现问题,并为系统的优化和改进提供依据。

6.4测试内容

系统的测试用例表格如下图所示。

表6-2 系统测试用例表

测试项

测试用例

问题

结论

登录功能测试

打开登录页面 输入正确的用户名和密码 点击“登录”按钮

符合预期

登录功能测试

打开登录页面 输入错误的用户名 输入正确的密码 点击“登录”按钮

符合预期

登录功能测试

打开登录页面 输入正确的用户名 输入错误的密码 点击“登录”按钮

符合预期

登录功能测试

打开登录页面 输入不存在的用户名和密码 点击“登录”按钮

符合预期

注册功能测试

打开注册页面 输入合法的用户名、密码、邮箱等信息 点击“注册”按钮

符合预期

注册功能测试

打开注册页面 输入已存在的用户名 输入其他合法信息 点击“注册”按钮

符合预期

注册功能测试

打开注册页面 输入合法用户名但密码不符合要求(如长度不足) 点击“注册”按钮

符合预期

注册功能测试

打开注册页面 输入合法用户名和密码但邮箱格式错误 点击“注册”按钮

符合预期

查看签到信息测试

登录系统 进入企业管理签到页面 浏览、名称、出勤等信息

符合预期

查看签到信息测试

登录系统 进入企业管理页面 使用搜索栏输入关键词搜索签到信息

符合预期

查看签到信息测试

登录系统 进入企业管理页面 点击签到详情查看完整信息

符合预期

查看签到信息测试

登录系统 进入企业管理页面 不输入任何搜索条件直接点击搜索

符合预期

签到统计测试

登录系统 进入考勤统计,浏览签到信息,使用搜索栏搜索信息

符合预期

签到统计测试

登录系统 进入考勤统计,浏览签到信息,使用搜索栏搜索信息,提交信息

符合预期

签到统计测试

登录系统 进入考勤统计,浏览签到信息,使用搜索栏搜索信息,提交信息,可重置,删除

符合预期

签到统计测试

登录系统 进入考勤统计,浏览签到信息,使用搜索栏搜索信息,提交信息,可重置,删除,点击详情

符合预期

6.5测试结论

经过全面的功能测试、性能测试、安全性测试和兼容性测试,企业管理签到系统整体表现良好,能够满足企业日常考勤管理的需求。所有核心功能,包括签到记录管理、异常签到处理、考勤申请审批、统计报表等,均能按预期运行,满足管理员、经理和员工的操作需求。在性能方面,系统在高并发访问、数据查询和报表生成的压力下,响应时间保持在可接受范围内,能够承受企业日常运营中的高负载。安全性方面,系统的权限管理、数据加密和日志记录等安全措施有效保障了用户数据的安全性,抵御了常见的安全攻击,确保了敏感数据的保护。在兼容性方面,系统在不同操作系统和浏览器上均能稳定运行,兼容性测试结果良好,确保用户在不同环境下的使用体验一致。综上所述,系统通过了各项测试,表现稳定、功能完善,具备了应用到企业日常考勤管理中的所有要求,测试结果表明系统在各个方面都能满足预期目标,具备实际使用的条件。

7总结

本系统是一个企业考勤管理平台,通过数字化手段提升企业考勤管理的效率和准确性。系统主要包括管理员、经理和员工三类用户,每个角色根据权限具有不同的功能。管理员负责全局管理,能够设置考勤规则、管理系统用户、处理异常签到、查看考勤统计等。经理主要负责本部门的考勤管理,包括审批员工考勤申请、查看部门的考勤数据、处理员工异常签到等。员工则可通过系统查询和管理自己的签到记录、提交请假或加班申请、查看考勤规则等。

系统提供了灵活的功能管理,如签到规则管理、部门人员管理、考勤统计与报表功能、通知提醒管理等,帮助企业实时跟踪员工的出勤情况并进行数据分析。通过异常签到管理,系统能及时识别并处理员工的迟到、早退等问题,确保考勤数据的准确性。通知提醒功能进一步提高了工作效率,通过自动化的考勤相关提醒确保员工及时知晓考勤变动,减少误差。

参考文献

  1. 尹应荆.JAVA编程语言在计算机软件开发中的应用[J].石河子科技,2023,(05):45-47.
  2. 刘江涛,王亮亮,吴庆茹,等.基于B/S模式的铁路勘测设计案例信息化管理系统设计与实现[J].铁路计算机应用,2021,30(03):32-35.
  3. 张丹丹,李弘.基于B/S架构的办公管理系统设计与开发[J].铁路通信信号工程技术,2024,21(09):44-48+106.
  4. 王志亮,纪松波.基于SpringBoot的Web前端与数据库的接口设计[J].工业控制计算机,2023,36(03):51-53.
  5. 熊永平.基于SpringBoot框架应用开发技术的分析与研究[J].电脑知识与技术,2021,15(36):76-77.
  6. 赵媛.基于Vue的Web系统前端性能优化分析[J].电脑编程技巧与维护,2024,(09):44-46.
  7. 秦冬.浅析Vue框架在前端开发中的应用[J].信息与电脑(理论版),2024,36(13):61-63.
  8. 李艳杰.MySQL数据库下存储过程的综合运用研究[J].现代信息科技,2023,7(11):80-82+88.
  9. 周晓玉,崔文超.基于Web技术的数据库应用系统设计[J].信息与电脑(理论版),2023,35(09):189-191.
  10. 李俊萌.计算机软件测试技术与开发应用策略分析[J].信息记录材料,2023,24(03):50-52.
  11. Mallory J P ,Hampshire K P .Fostering Autonomy: A Technology-Aided Check-In/Check-Out Intervention for Online High School Students With Autism[J].Journal of Special Education Technology,2025,40(1):13-27.
  12. Phillips A K ,Wash A ,Hutchinson K , et al.Early Check-In Protocol: Identifying Medication Issues in Patients with Cancer at Health System Specialty Pharmacy.[J].Journal of pharmacy practice,2025,8971900251318574.
  13. Run V C A S ,Candel J G B ,Buenen G A .Strengthening team cohesion in the emergency department through a color-coded well-being check-in: are you ‘ready to roll?’[J].Internal and Emergency Medicine,2025,(prepublish):1-3.
  14. 高艳婷,林香兰.以自主签到活动提升大班幼儿时间管理能力[J].福建教育,2023,(42):51-52.
  15. 邹艳华.基于人脸识别的智能教室签到管理系统设计[J].自动化应用,2022,(06):80-82+87.DOI:10.19769/j.zdhy.2022.06.024.
  16. 李涛,会议签到管理平台.陕西省,西安中途信息科技有限公司,2022-06-01.
  17. 张帆,人脸识别签到管理系统v1.0.湖南省,湖南盛年信息科技有限公司,2022-05-01.
  18. 张帆,会议签到管理系统v1.0.湖南省,湖南盛年信息科技有限公司,2022-03-01.
  19. 赵美名.基于智慧人像技术的高校签到管理系统[J].科技风,2021,(34):16-18.DOI:10.19392/j.cnki.1671-7341.202134006.
  20. 张良杰.融合蓝牙的改进型智慧课堂签到管理子系统[J].新型工业化,2020,10(09):42-44+47.DOI:10.19335/j.cnki.2095-6649.2020.09.015.

致谢

在本项目的实施过程中,许多人给予了我无私的支持和帮助,令我深感感谢。

我要衷心感谢我的指导老师。不仅在项目的初期提供了宝贵的建议,还在整个过程中给予了我细致入微的指导。专业知识和严谨态度始终激励着我,让我在遇到困难时能够保持信心,继续前行。每一次的讨论都让我对项目有了更深刻的理解,帮助我克服了许多技术难题。

我也要感谢参与用户测试的同学们。你们的反馈和建议为我们系统的优化提供了重要的参考,帮助我们更好地理解用户需求。正是因为有了你们的参与,我们才能够不断改进,提升系统的用户体验。感谢所有支持我的家人和朋友。你们的理解与鼓励让我在项目的紧张时刻始终能够保持积极的心态,成为我前进的动力。每当我遇到挑战时,想到你们的支持,我就能够重新振作,继续努力。最后,我要感谢所有在我职业发展过程中给予帮助的人。每一次的交流与分享都让我受益匪浅,拓宽了我的视野,让我在这条道路上走得更加坚定。

项目的完成不仅是我个人努力的结果,更是许多人共同支持与协作的成果。在此,我再次向所有关心和支持我的人表达衷心的感谢。希望未来我们能够继续携手,共同创造更多的价值和成就。

代码:


连接数据库的文件在Resources 文件夹下的application.yml文件,代码如下:

server:

  port: 5000

  servlet:

    context-path: /api

spring:

  mvc:

    static-path-pattern: /upload/**

  resources:

    static-locations: file:此处填写地址/project93355/server/src/main/resources/static

datasource:    

jdbc:mysql://127.0.0.1:3306/projectxxxxx?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8

    username: root

    password: root

    driver-class-name: com.mysql.cj.jdbc.Driver

    type: com.alibaba.druid.pool.DruidDataSource

  jackson:

    property-naming-strategy: CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES

    default-property-inclusion: ALWAYS

    time-zone: GMT+8

    date-format: yyyy-MM-dd HH:mm:ss

  servlet:

 项目启动文件Application.java,代码如下:

@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})

@EnableJpaRepositories

@MapperScan("com.project.demo.dao")

public class Application {

    public static void main(String[] args) {

        SpringApplication.run(Application.class,args);

    }

}

修改数据代码如下:

    @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);

    }

删除一条数据代码如下:

    @RequestMapping(value = "/del")

    @Transactional

    public Map<String, Object> del(HttpServletRequest request) {

        service.delete(service.readQuery(request), service.readConfig(request));

        return success(1);

    }

    public void delete(Map<String,String> query,Map<String,String> config){

        QueryWrapper wrapper = new QueryWrapper<E>();

        toWhereWrapper(query, "0".equals(config.get(FindConfig.GROUP_BY)),wrapper);

        baseMapper.delete(wrapper);

        log.info("[{}] - 删除操作:{}",wrapper.getSqlSelect());

    }

通过请求的参数获取列表数据,代码如下:

    @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);

    }

获取某个组下面的数量,代码如下:

    @RequestMapping(value = {"/count_group", "/count"})

    public Map<String, Object> count(HttpServletRequest request) {

        Integer value= service.selectSqlToInteger(service.groupCount(service.readQuery(request), service.readConfig(request)));

        return success(value);

    }

注册页登录代码如下:

    /**

     * 注册

     * @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);

}     

MD5加密,代码如下:

    public String encryption(String plainText) {

        String re_md5 = new String();

        try {

            MessageDigest md = MessageDigest.getInstance("MD5");

            md.update(plainText.getBytes());

            byte b[] = md.digest();

            int i;

            StringBuffer buf = new StringBuffer("");

            for (int offset = 0; offset < b.length; offset++) {

                i = b[offset];

                if (i < 0)

                    i += 256;

                if (i < 16)

                    buf.append("0");

                buf.append(Integer.toHexString(i));

            }

            re_md5 = buf.toString();

        } catch (Exception e) {

            e.printStackTrace();

        }

        return re_md5;

}

登录页代码如下:

 /**

     * 登录

     * @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<>()));

        }

       

找回密码,接收用户输入的用户名、密码、验证码,并进行条件判断,代码如下:

    /**

     * 找回密码

     * @param form

     * @return

     */

    @PostMapping("forget_password")

    public Map<String, Object> forgetPassword(@RequestBody User form,HttpServletRequest request) {

        JSONObject ret = new JSONObject();

        String username = form.getUsername();

        String code = form.getCode();

        String password = form.getPassword();

        // 判断条件

        if(code == null || code.length() == 0){

            return error(30000, "验证码不能为空");

        }

        if(username == null || username.length() == 0){

            return error(30000, "用户名不能为空");

        }

        if(password == null || password.length() == 0){

            return error(30000, "密码不能为空");

        }

请关注点赞+私信博主,免费领取项目源码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值