(2024最新毕设合集)基于Node.js的学院学生请销假系统-41072|可做计算机毕业设计JAVA、PHP、爬虫、APP、小程序、C#、C++、python、数据可视化、大数据、全套文案

摘  要

从20年代开始,计算机在人们的生活和工作中广泛应用,成为了人们生活、工作的得力助手。计算机深入到每个家庭和每个工作场所,网络办公和网络教学取代了传统的手工记录和管理方式。使用计算机办公可以不受时间和地点限制,通过计算机系统可以轻松实现跨区域的交流。

随着高等教育的普及,学生数量也持续增加。然而,传统的学生请假查询管理方式变得越来越不方便,手工查询管理降低了工作效率,增加了老师和学校的工作量,并且也不便于学生进行查询。因此,开发一个基于微信小程序的学院学生请销假系统成为必要。

本系统以实际应用为背景,在角色上划分了管理员、学生用户、书记用户、辅导用户、工办用户、教师用户这六个部分,实现了学生及其相关信息(请假、销假、课程表)的管理,方便学生资料的保留。教师、辅导员、书记等和学生均可以通过注册并登录到系统中,对请销假和课程表进行查询和管理。该学院学生请销假系统采用NodeJS和Express框架进行微信小程序开发,使用MySQL数据库存储数据。

关键词:学生请销假系统;微信小程序;NodeJS语言;Express框架;MySQL数据库。

Abstract

Since the 1920s, computers have been widely used in people's lives and work, becoming a powerful assistant for people's lives and work. Computers have penetrated into every home and workplace, and online office and teaching have replaced traditional manual recording and management methods. Using computers for office work is not limited by time and location, and cross regional communication can be easily achieved through computer systems.

With the popularization of higher education, the number of students continues to increase. However, the traditional way of managing student leave queries has become increasingly inconvenient. Manual query management reduces work efficiency, increases the workload of teachers and schools, and is also not convenient for students to query. Therefore, it is necessary to develop a college student leave application and cancellation system based on WeChat mini programs.

This system is based on practical applications and is divided into six parts in terms of roles: administrator, student user, secretary user, tutoring user, work office user, and teacher user. It realizes the management of students and their related information (leave, cancellation, course schedule), facilitating the retention of student information. Teachers, counselors, secretaries, and students can register and log in to the system to query and manage leave requests and course schedules. The college's student leave application and cancellation system uses NodeJS and Express frameworks for WeChat mini program development, and uses MySQL database to store data.

Keywords: Student leave application and cancellation system; WeChat Mini Program; NodeJS language; Express framework; MySQL data

目录

1 绪论

1.1选题背景

1.2研究现状

1.3开发工具及关键技术介绍

1.3.1微信开发者工具

1.3.2微小程序框架以及目录结构介绍

1.3.3 node.js技术

1.3.4 B/S体系工作原理

2学院学生请销假系统分析

2.1 可行性分析

2.2系统业务流程分析

2.3 系统需求分析

2.4 系统用例分析

3 学院学生请销假系统总体设计

3.1 系统模块设计

3.2 数据库设计

4学院学生请销假系统设计与实现

4.1 登录界面

4.2密码修改模块

4.3请假申请管理界面

4.4系统用户界面

4.5课程信息管理界面

4.6一级审批管理界面

4.7质询信息管理界面

5学院学生请销假系统测试

5.1 调试部分问题

5.2 系统测试用例

5.3 系统测试结果

结论

参考文献

 

1 绪论

1.1选题背景

在21世纪经济飞速发展的今天,各行业都广泛使用各种办公辅助软件,如企业的ERP软件、家庭的财务管理软件以及教育领域的学籍管理软件等。特别是在教育事业中,大部分学校已经开发了许多Web管理系统,供学生和教师进行在线学习和管理,如学籍系统、考试系统等。这些系统方便了数据维护和学生及其相关信息的管理,并在政治、经济、文化等多个领域广泛应用。

当前的教育已经不再仅仅以传统的单个班主任面向一群学生的课程教学形式为主,而是增加了各种不同辅助教学形式的多元化教学。这种变化正是由于计算机网络与教育的结合,利用网络形式的在线教学带来的众多优点所决定的。本课题研究的学院学生请销假系统以计算机网络技术为主线,针对学生请假信息管理进行了各种功能的设计和实现。主要的功能模块包括师生、辅导员、学工办、副书记等管理、学校课程安排、学生互动以及学生提交的请销假申请等。

通过该系统的研究与开发,学院可以更加便捷地管理学生请销假信息,提高工作效率和数据准确性。学生可以方便地提交请销假申请,并与教师们进行互动交流。该系统利用计算机网络技术为学院提供了一个高效、可靠的学生请销假管理平台,促进了学生和教师之间的沟通和协作。

1.2研究现状

目前,学院学生请销假系统的研究已经得到了广泛关注和探索。许多学校和研究机构致力于开发和改进学生请销假系统,以提高学生请销假管理的效率和便利性。这些系统通常包括请假申请、销假申请、请假审批、假期统计等功能模块,以满足学生和教师的需求。

在技术方面,学生请销假系统借助计算机网络技术的发展,通过Web或移动应用程序实现在线提交请销假申请,并实现学生与教师之间的快速沟通和交流。同时,数据管理和信息安全也是该领域的重要研究方向,研究者致力于优化数据存储、权限管理和信息加密等关键问题,以确保学生请销假信息的准确性和安全性。

此外,用户体验和界面设计也备受关注。研究者不断探索如何提供简洁直观、易于操作的界面,以提升用户的使用体验和满意度。一些研究还对系统的实际应用效果进行评估,并提出相应的改进建议,从而进一步完善学生请销假系统。

总体而言,学院学生请销假系统的研究正处于积极发展的阶段。未来的研究可继续深化数据管理和信息安全、用户体验和界面设计等方面,通过引入新技术如人工智能、大数据分析等,进一步提升系统的功能性和智能化水平,为学生请销假管理提供更加高效、便捷和智能的解决方案。

1.3开发工具及关键技术介绍

1.3.1微信开发者工具

微信开发者工具是一款专为小程序开发而设计的应用,它不断改进,提供了便捷的操作方式,并且在开发过程中可以通过微信扫描二维码来访问,从而实现快速、准确的小程序开发和调试。

根据用户的需求,我们将采用不同的屏幕大小来制作小程序。

在完成了视图布置之后,可以通过执行编辑功能,快速更改当前的视图界面。

控制台:方便调试打印输出信息。

将代码上传至腾讯服务器,并在审核过程中填写版本号和备注信息,以确保代码的安全性和准确性。

通过查看资源文件,我们可以快速地调整相关项目的文件目录,从而实现断点调试。

使用远程调试技术,无论是在手机端还是PC端,都能够轻松地进行开发工作。

本地数据存储:显示的是本地存储的数据。

通过使用子父层级结构,我们可以更容易地进行视图调试。

微信的代码体积应该保持在2M 以内,而且在开发过程中,应该严格检查合法域名信息,并且为小程序的后台配置服务器域名。

微信开发者工具已经成为了开发过程中不可或缺的一部分,并且正在不断地改进和完善。

1.3.2程序框架以及目录结构介绍

这款微信小程序的设计旨在帮助用户快速、便捷地创建出一款拥有完全独特 特色的应用。它由一套完善的框架结构,将用户界面、操作界面、功能界面等多种功能完美结合,使用户只需要一点点的操作,就能轻松实现微信小程序的创建。框架的核心功能是一个快速的数据绑定机制,它能够轻松地将用户的信息和界面进行一致性的管理。它不仅支持对用户信息的实时监控,还能够根据用户的需求,实现对界面的快速调整和优化,从而使用户能够轻松地构建强大的微信小程序。

1.3.3 node.js主要功能:

V8引擎本身使用了一些最新的编译技术。这使得用Javascript这类脚本语言编写出来的代码运行速度获得了极大提升,又节省了开发成本。对性能的苛求是Node的一个关键因素。 Javascript是一个事件驱动语言,Node利用了这个优点,编写出可扩展性高的服务器。Node采用了一个称为“事件循环(event loop)”的架构,使得编写可扩展性高的服务器变得既容易又安全。提高服务器性能的技巧有多种多样。Node选择了一种既能提高性能,又能减低开发复杂度的架构。这是一个非常重要的特性。并发编程通常很复杂且布满地雷。Node绕过了这些,但仍提供很好的性能。

Node采用一系列“非阻塞”库来支持事件循环的方式。本质上就是为文件系统、数据库之类的资源提供接口。向文件系统发送一个请求时,无需等待硬盘(寻址并检索文件),硬盘准备好的时候非阻塞接口会通知Node。该模型以可扩展的方式简化了对慢资源的访问, 直观,易懂。尤其是对于熟悉onmouseover、onclick等DOM事件的用户,更有一种似曾相识的感觉。

虽然让Javascript运行于服务器端不是Node的独特之处,但却是其一强大功能。不得不承认,浏览器环境限制了我们选择编程语言的自由。任何服务器与日益复杂的浏览器客户端应用程序间共享代码的愿望只能通过Javascript来实现。虽然还存在其他一些支持Javascript在服务器端 运行的平台,但因为上述特性,Node发展迅猛,成为事实上的平台。

在Node启动的很短时间内,社区就已经贡献了大量的扩展库(模块)。其中很多是连接数据库或是其他软件的驱动,但还有很多是凭他们的实力制作出来的非常有用的软件。

最后,不得不提到的是Node社区。虽然Node项目还非常年轻,但很少看到对一个项目如此狂热的社区。不管是新手,还是专家,大家都围绕着项目,使用并贡献自己的能力,致力于打造一个探索、支持、分享、听取建议的乐土。

1.3.4 B/S体系工作原理:

   B/S架构采取浏览器请求,服务器响应的工作模式。

用户可以通过浏览器去访问Internet上由Web服务器产生的文本、数据、图片、动画、视频点播和声音等信息;

而每一个Web服务器又可以通过各种方式与数据库服务器连接,大量的数据实际存放在数据库服务器中;

从Web服务器上下载程序到本地来执行,在下载过程中若遇到与数据库有关的指令,由Web服务器交给数据库服务器来解释执行,并返回给Web服务器,Web服务器又返回给用户。在这种结构中,将许许多多的网连接到一块,形成一个巨大的网,即全球网。而各个企业可以在此结构的基础上建立自己的Internet。

在 B/S 模式中,用户是通过浏览器针对许多分布于网络上的服务器进行请求访问的,浏览器的请求通过服务器进行处理,并将处理结果以及相应的信息返回给浏览器,其他的数据加工、请求全部都是由Web Server完成的。通过该框架结构以及植入于操作系统内部的浏览器,该结构已经成为了当今软件应用的主流结构模式。

                 

2学院学生请销假系统分析

2.1 可行性分析

2.1.1 技术可行性分析

研究学院学生请销假系统的开发可行性后,将学院学生请销假系统所需要的角色划分整理成了图2-2和图2-3。

从开发工具来看,由于学院学生请销假系统是基于Node.js的,因此有许多开发工具可用于系统的开发。这些功能强大的开发工具可以为我设计学院学生请销假系统带来很大的便利。

从技术角度来看,对于我来开发一个学院学生请销假系统并不费事。学院学生请销假系统的开发可以简单地分为前端、后端和数据库的开发。在我之前的学习中,我已经掌握了许多涉及到的技术,并且网络上也有很多可以借鉴的技术点。例如,可以使用Node.js作为后端开发语言,使用Express框架进行Web应用程序的开发,使用MongoDB作为数据库。通过这样的技术选择,我可以减少开发学院学生请销假系统时的重复代码,从而更加便捷地完成毕设项目的编写。

从用户体验角度来看,市场上有许多广泛使用的系统案例可供参考。我可以综合这些系统的页面交互设计优点,根据我的毕设项目特点进行改进,以实现令用户满意的页面交互体验。

综上所述,从技术和用户体验的角度来看,开发学院学生请销假系统是可行的。通过选择适当的开发工具,合理运用已掌握的技术知识,并参考市场上成功的系统案例,我能够顺利完成这个毕设项目的开发。

2.1.2 经济可行性分析

从学院学生请销假系统的开发成本来看,学院学生请销假系统的设计和开发都是我自己完成的,没有其他成本上的开销。

从学院学生请销假系统的维护成本来看,学院学生请销假系统的开发遵循一套完整的代码编写规范,并且学院学生请销假系统的结构设计非常灵活,遵循高内聚低耦合的原则,因此易于维护和迭代开发。

在学院学生请销假系统上线之后,上线前期我会根据真实需求来调查,对使用我开发的学院学生请销假系统来制定一套符合的使用费。系统运行稳定后我会将推广范围到其他的景点当中,其他景点可以使用我的学院学生请销假系统,只需要缴纳一点点的定金,我会给他们引入广告投资和自营业务。

综合以上的分析,学院学生请销假系统所带来的经济效益将会带来极大的收益。并且随着我的推广,来使用我开发的学院学生请销假系统的市场将越来越大,学院学生请销假系统带来的利润也就越来越多。因此,从经济层面来看开发学院学生请销假系统的是可行的。

2.2系统业务流程分析

管理员权限下的工作流程主要为:管理员通过系统界面提供登录按钮并点击,转入管理员登录界面,并在界面上填入相应的管理员账户和管理员密码,进入管理员权限下的后台系统,并且在系统导航条设置了相应的操作功能。

用户权限下的工作流程主要为:用户通过系统提供的注册功能,进行身份验证并注册,而后在登录界面进行个人身份验证,并且进入用户的个人后台界面,并进行相应的操作。

学院学生请销假系统的业务流程如下图所示。

图2-1 系统业务流程图

2.3 系统需求分析

2.3.1 功能性需求分析

学院学生请销假系统从角色上划分为了管理员、学生用户、书记用户、辅导用户、工办用户、教师用户六种角色。

管理员角色:

  1. 登录:管理员的账号是在数据表表中直接设置生成的,不需要进行注册;

(2)系统用户管理:管理员可以对学院学生请销假系统中的管理员、书记用户、辅导用户、工办用户、教师用户及前台注册的学生用户进行审核管理。

(3)课程信息管理:可以查看到教师用户提交的课程内容,教师添加课程信息,查看学生请假情况和销假情况,可通过web端直接为其查询、添加、删除等操作;

4)请假申请管理:可以查看到学生用户提交的请假申请内容详情,同时还有一级审批,取消申请功能,可通过web端直接为其查询、删除等操作;

    5)一级审批管理:可以查看审批列表详情内容,同时包含二级审批、质询、销假功能,根据进行需要查询、删除等操作;

    6)二级审批管理:可以查看审批列表详情内容,同时包含三级审批、质询、销假功能,根据进行需要查询、删除等操作;

7)三级审批管理:可以查看审批列表详情内容,同时包含质询、销假功能,根据进行需要查询、删除等操作;

8)销假申请管理:可以查看销假申请列表里的内容,根据进行需要查询、删除等操作;

9)质询信息管理:可以查看质询信息列表里副书记,学工办,辅导员发布的内容,根据进行需要查询、删除等操作;

10)学校信息管理:可以查看学校信息列表里学生相关的信息,根据进行需要查询、删除、添加等操作;

(11)班级信息管理:可以查看班级信息列表里关于学校班级的信息,根据进行需要查询、删除、添加等操作;

    (12)系统管理:管理员对后台轮播图进行维护管理添加、删除等操作;

(13)通知公告管理:管理员可以对系统前台展示校园公告信息进行增删改查,方便用户进行查看。

14)资源管理:管理员查看资源管理模块里校园资讯、资讯分类内容等详情,根据进行需要查询、删除、添加等操作;

学生用户角色:

(1)用户注册登录:游客可以随时进入到系统中,对系统中的信息浏览,但是想要实现学生请假销假等操作,就必须有这个系统的账号,如果没有账号的话,可以注册以后进行相关的操作,同时用户还可以通过“基本信息”这以按钮对个人信息以及操作的信息进行管控。

(2)课程信息:点击“课信息”后跳转到课程信息详情界面,查看到学校发布的各种课程等详情信息,进行点赞、收藏、评论,根据自己的实际需求对自己不能完成的课程进行申请请假等操作。

(3)校园资讯:学生用户可以查看系统里学校发布的各类校园资讯内容并进行点赞、收藏、评论等操作;

(3)个人中心:学生用户后台可以查看并操作的权限功能;

(4)基本信息:可以对个人资料+密码修改+收藏的信息进行管控。

(5)请假申请:学生用户可以在这一项里对需要请假的课程进行资料填写并提交请假申请或者取消申请;

(6)一级审批:学生用户可以查看一级审批列表里的相关内容,通过详情查看最终的审核结果,根据需求可以对审核结果进行质询资料填申请提交或者销假,也可以通过辅导姓名、学生姓名、班级名称进行查询、重置等操作;

(7)二级审批:学生用户可以查看二级审批列表里的相关内容,通过详情查看最终的审核结果,根据需求可以对审核结果进行质询资料填申请提交或者销假,也可以通过学生姓名、班级名称、辅导姓名、工办姓名进行搜索查询;

(8)三级审批:学生用户可以查看二级审批列表里的相关内容,通过详情查看最终的审核结果,根据需求可以对审核结果进行质询资料填申请提交或者销假,也可以通过学生姓名、班级名称、辅导姓名、工办姓名进行搜索查询;

(9)销假申请:学生用户可以在这一项里对需要销假的课程进行资料填写并提交销假申请或者取消申请;

(10)质询信息:学生用户可以查看质询信息列表里的详情质询信息内容,可以通过班级名称、请假天数进行查询、重置、添加等操作。

教师用户

(1)课程信息管理:点击“课程信息管理”按钮会显示出课程的所有的信息,支持对课程信息的课程信息列表和课程信息添加进行查看评论、增删改查操作,教师可以添加课程信息,并查看学生请假情况和销假情况;

(2)请假申请记录管理:点击“请假申请管理”后跳转到请假申请界面,教师可以查看学生的请假申请内容,可以通过学生姓名、班级名称、辅导姓名进行搜索查询。

(3)一级审批管理:教师可以查看查询学生的一级审批列表里的详情内容,也可以通过学生姓名、班级名称、审核状态进行搜索查询;

(4)二级审批管理:教师可以查看查询学生的二级审批列表里的详情内容,也可以通过学生姓名、班级名称、辅导姓名、工办姓名进行搜索查询;

(5)三级审批管理:教师可以查看查询学生的三级审批列表里的详情内容,也可以通过学生姓名、班级名称、辅导姓名、工办姓名、书记姓名进行搜索查询;

(6)销假申请管理:教师可以查看销假申请里的详情内容,也可以通过学生姓名、班级名称、审核状态进行搜索查询。

辅导员用户

(1)课程信息管理:点击“课程信息管理”按钮会显示出课程的所有的信息,支持对课程信息的课程信息列表和课程信息添加进行查看等操作;

(2)请假申请记录管理:点击“请假申请管理”后跳转到请假申请界面,辅导员可以查看学生的请假申请内容,辅导员有一级二级审批权限,对学生的请假申请负责审批、回复辅导意见等,对于无法通过深刻的要向上级报告并写明原因,也可以通过学生姓名、班级名称、辅导姓名进行搜索查询、删除等操作。

(3)一级审批管理:辅导员可以查看查询学生的一级审批列表里的详情内容,也可以通过学生姓名、班级名称、审核状态进行搜索查询;

(4)二级审批管理:辅导员可以查看查询学生的二级审批列表里的详情内容,也可以通过学生姓名、班级名称、辅导姓名、工办姓名进行搜索查询;

(5)三级审批管理:辅导员可以查看查询学生的三级审批列表里的详情内容,也可以通过学生姓名、班级名称、辅导姓名、工办姓名、书记姓名进行搜索查询;

(6)销假申请管理:辅导员可以查看销假申请里的详情内容,也可以通过学生姓名、班级名称、审核状态进行搜索查询。

(7)质询信息:辅导员对质询信息列表进行相关操作等功能。

学工办用户:

(1)后台首页:学工办后台首页显示的界面是学校信息统计图,班级信息统计图可以进行查看;

(2)请假申请管理:学工办可以查看请假申请列表里学生请假申请的详细内容;

(3)一级审批管理:辅导员可以查看查询学生的一级审批列表里的详情内容,可以对详细进行回复、进行二级审批回复、质询回复、工办用户给出无法审批原因的情况得上报副书记,也就是三级审批,每个审批人员都可以向学生进行质询,也可以通过辅导姓名、学生名称、班级姓名进行搜索查询;

(4)二级审批管理:辅导员可以查看查询学生的二级审批列表里的详情内容,工办用户有二三级审批查看权限操作,可以对详细进行回复、进行三级审批回复、质询回复、也可以通过学生姓名、辅导名称、班级姓名、工办姓名进行搜索查询删除等操作;

(5)三级审批管理:工办用户对三级审批进行的权限管理等操作;

(6)销假申请管理:工办用户对销假申请管理进行的权限管理等操作;

(7)质询信息管理:工办用户在质询信息管理里对质询信息列表进行质询内容填写提交等操作;

(8)学校信息管理:工办用户对学校信息管理进行的权限管理等操作;

(9)班级信息管理:工办用户对班级信息管理进行的权限管理等操作;

副书记用户:

(1)请假申请管理:副书记已经对请假申请管理进行的权限管理等操作;

(2)一级审批管理:副书记用户对一级审批管理进行的权限管理等操作;

(3)二级审批管理:副书记对二级审批管理进行的权限等操作;

(4)三级审批管理:副书记对三级审批列表里的内容进行详情查看并可进行质询查看、质询回复,并可通过班级名称,学生姓名、辅导姓名、工办姓名、书记姓名进行查询、删除等操作;

(5)销假申请管理:副书记对销假申请管理列表进行详情查看内容,学生可以向辅导员、学工办、副书记进行销假申请,但只由辅导员审核就可以,并可通过班级名称,审核状态、学生姓名进行查询、删除等操作; 

(6)质询信息管理:副书记可对质询信息内容详情进行查看质询信息列表里质询信息的详细内容等操作。

2.3.2 非功能性分析

学院学生请销假系统的非功能性需求比如学院学生请销假系统的安全性怎么样可靠性怎么样性能怎么样可拓展性怎么样等。具体可以表示在如下2-1表格中:

2-1学院学生请销假系统非功能需求表

安全性

主要指学院学生请销假系统数据库的安装,数据库的使用和密码的设定必须合乎规范。

可靠性

可靠性是指学院学生请销假系统能够安装用户的指示进行操作,经过测试,可靠性90%以上。

性能

性能是影响学院学生请销假系统占据市场的必要条件,所以性能最好要佳才好。

可扩展性

比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。

易用性

用户只要跟着学院学生请销假系统的页面展示内容进行操作,就可以了。

可维护性

学院学生请销假系统开发的可维护性是非常重要的,经过测试,可维护性没有问题

2.4 系统用例分析

根据上一节功能分析,可以得出系统的用例,学生用户角色用例如图2.1所示。

图2.1 学院学生请销假系统学生用户用例图

管理员用例如图2.2所示。

2.2学院学生请销假系统管理员用例图

教师用户用例如图2.3所示。

图2.3 学院学生请销假系统教师用户用例图

辅导员用户用例如图2.4所示。

图2.4 学院学生请销假系统辅导员用户用例图

学工办用户用例如图2.5所示。

图2.5 学院学生请销假系统学工办用户用例图

副书记用户用例如图2.6所示。

图2.6学院学生请销假系统副书记用户用例图

3 学院学生请销假系统总体设计

3.1 系统模块设计

根据第二章中学院学生请销假系统的功能分析可知,学院学生请销假系统中整体功能模块图如图3.1所示, 

图3.1学院学生请销假系统功能模块图

3.2 数据库设计

3.3.1 数据库概念结构设计

下面是整个学院学生请销假系统中主要的数据库表总E-R实体关系图。

图3.2学院学生请销假系统总E-R关系图

3.2.2 数据库逻辑结构设计

表access_token (登陆访问时长)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

用户编号:

表article (文章:用于内容管理系统的文章)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

文章描述

表article_type (文章分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

表auth (用户权限管理)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

position

varchar

32

0

Y

N

位置:

8

mode

varchar

32

0

N

N

_blank

跳转方式:

9

add

tinyint

3

0

N

N

1

是否可增加:

10

del

tinyint

3

0

N

N

1

是否可删除:

11

set

tinyint

3

0

N

N

1

是否可修改:

12

get

tinyint

3

0

N

N

1

是否可查看:

13

field_add

text

65535

0

Y

N

添加字段:

14

field_set

text

65535

0

Y

N

修改字段:

15

field_get

text

65535

0

Y

N

查询字段:

16

table_nav_name

varchar

500

0

Y

N

跨表导航名称:

17

table_nav

varchar

500

0

Y

N

跨表导航:

18

option

text

65535

0

Y

N

配置:

19

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

20

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表class_information (班级信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

class_information_id

int

10

0

N

Y

班级信息ID

2

class_name

varchar

64

0

Y

N

班级名称

3

number_of_people_taking_leave

int

10

0

Y

N

0

请假人数

4

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

5

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表collect (收藏)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

表comment (评论)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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:

表course_information (课程信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

course_information_id

int

10

0

N

Y

课程信息ID

2

teacher

int

10

0

Y

N

0

任课教师

3

teachers_name

varchar

64

0

Y

N

教师姓名

4

course_name

varchar

64

0

Y

N

课程名称

5

course_start_time

datetime

19

0

Y

N

开课时间

6

course_type

varchar

64

0

Y

N

课程类型

7

course_cover

varchar

255

0

Y

N

课程封面

8

course_introduction

text

65535

0

Y

N

课程简介

9

lecture_location

text

65535

0

Y

N

讲课地点

10

hits

int

10

0

N

N

0

点击数

11

praise_len

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

更新时间

表first_level_approval (一级审批)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

first_level_approval_id

int

10

0

N

Y

一级审批ID

2

first_level_approval

int

10

0

Y

N

0

一级审批

3

tutor_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

leave_days

varchar

64

0

Y

N

请假天数

8

start_time

varchar

64

0

Y

N

开始时间

9

end_time

varchar

64

0

Y

N

结束时间

10

reason_for_leave

text

65535

0

Y

N

请假原因

11

approval_status

varchar

64

0

Y

N

审批状态

12

approval_time

datetime

19

0

Y

N

审批时间

13

counseling_opinions

text

65535

0

Y

N

辅导意见

14

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

15

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表hits (用户点击)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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:

表inquiry_information (质询信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

inquiry_information_id

int

10

0

N

Y

质询信息ID

2

secretary_user

int

10

0

Y

N

0

书记用户

3

office_users

int

10

0

Y

N

0

工办用户

4

tutoring_users

int

10

0

Y

N

0

辅导用户

5

student_users

int

10

0

Y

N

0

学生用户

6

class_name

varchar

64

0

Y

N

班级名称

7

leave_days

varchar

64

0

Y

N

请假天数

8

start_time

varchar

64

0

Y

N

开始时间

9

end_time

varchar

64

0

Y

N

结束时间

10

reason_for_leave

text

65535

0

Y

N

请假原因

11

inquiry_content

text

65535

0

Y

N

质询内容

12

student_response

text

65535

0

Y

N

学生回复

13

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

14

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表leave_application (请假申请)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

class_name

varchar

64

0

Y

N

班级名称

5

teacher_users

int

10

0

Y

N

0

教师用户

6

teachers_name

varchar

64

0

Y

N

教师姓名

7

first_level_approval

int

10

0

Y

N

0

一级审批

8

tutor_name

varchar

64

0

Y

N

辅导姓名

9

leave_days

int

10

0

Y

N

0

请假天数

10

start_time

datetime

19

0

Y

N

开始时间

11

end_time

datetime

19

0

Y

N

结束时间

12

leave_certificate

varchar

255

0

Y

N

请假证明

13

reason_for_leave

text

65535

0

Y

N

请假原因

14

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

15

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表leave_cancellation_application (销假申请)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

leave_cancellation_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

class_name

varchar

64

0

Y

N

班级名称

5

leave_days

varchar

64

0

Y

N

请假天数

6

start_time

varchar

64

0

Y

N

开始时间

7

end_time

varchar

64

0

Y

N

结束时间

8

reason_for_leave

text

65535

0

Y

N

请假原因

9

return_to_school_time

datetime

19

0

Y

N

返校时间

10

reason_for_cancelling_leave

text

65535

0

Y

N

销假事由

11

examine_state

varchar

16

0

N

N

未审核

审核状态

12

examine_reply

varchar

16

0

Y

N

审核回复

13

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

14

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表notice (公告)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

表office_users (工办用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

office_users_id

int

10

0

N

Y

工办用户ID

2

name_of_work_office

varchar

64

0

Y

N

工办姓名

3

gender_of_work_office

varchar

64

0

Y

N

工办性别

4

contact_phone_number

varchar

64

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

更新时间

表praise (点赞)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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已取消

表school_information (学校信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

school_information_id

int

10

0

N

Y

学校信息ID

2

school_name

varchar

64

0

Y

N

学校名称

3

number_of_students_on_campus

int

10

0

Y

N

0

在校人数

4

number_of_people_taking_leave

int

10

0

Y

N

0

请假人数

5

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表secondary_approval (二级审批)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

secondary_approval_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

class_name

varchar

64

0

Y

N

班级名称

5

leave_days

varchar

64

0

Y

N

请假天数

6

start_time

varchar

64

0

Y

N

开始时间

7

end_time

varchar

64

0

Y

N

结束时间

8

reason_for_leave

text

65535

0

Y

N

请假原因

9

first_level_approval

int

10

0

Y

N

0

一级审批

10

tutor_name

varchar

64

0

Y

N

辅导姓名

11

counseling_opinions

text

65535

0

Y

N

辅导意见

12

secondary_approval

int

10

0

Y

N

0

二级审批

13

name_of_work_office

varchar

64

0

Y

N

工办姓名

14

approval_time

datetime

19

0

Y

N

审批时间

15

public_opinion

text

65535

0

Y

N

公办意见

16

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

17

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表secretary_user (书记用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

secretary_user_id

int

10

0

N

Y

书记用户ID

2

name_of_secretary

varchar

64

0

Y

N

书记姓名

3

secretarys_gender

varchar

64

0

Y

N

书记性别

4

contact_phone_number

varchar

64

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

更新时间

表sensitive_vocabulary (敏感词汇)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

sensitive_vocabulary_id

int

10

0

N

Y

敏感词汇ID

2

sensitive_vocabulary

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

更新时间

表slides (轮播图)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

表student_users (学生用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

contact_phone_number

varchar

64

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

更新时间

表teacher_users (教师用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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_phone_number

varchar

64

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

更新时间

表third_level_approval (三级审批)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

third_level_approval_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

class_name

varchar

64

0

Y

N

班级名称

5

leave_days

varchar

64

0

Y

N

请假天数

6

start_time

varchar

64

0

Y

N

开始时间

7

end_time

varchar

64

0

Y

N

结束时间

8

reason_for_leave

text

65535

0

Y

N

请假原因

9

first_level_approval

int

10

0

Y

N

0

一级审批

10

tutor_name

varchar

64

0

Y

N

辅导姓名

11

counseling_opinions

text

65535

0

Y

N

辅导意见

12

secondary_approval

int

10

0

Y

N

0

二级审批

13

name_of_work_office

varchar

64

0

Y

N

工办姓名

14

opinions_from_the_office_of_industry_and_commerce

text

65535

0

Y

N

工办意见

15

third_level_approval

int

10

0

Y

N

0

三级审批

16

name_of_secretary

varchar

64

0

Y

N

书记姓名

17

approval_time

datetime

19

0

Y

N

审批时间

18

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

19

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表tutoring_users (辅导用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

tutoring_users_id

int

10

0

N

Y

辅导用户ID

2

tutor_name

varchar

64

0

Y

N

辅导姓名

3

coaching_gender

varchar

64

0

Y

N

辅导性别

4

contact_phone_number

varchar

64

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

更新时间

表upload (文件上传)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

文件类型

表user (用户账户:用于保存用户登录信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

user_id

mediumint

8

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

email

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

创建时间:

表user_group (用户组:用于用户前端身份和鉴权)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

4学院学生请销假系统设计与实现

学院学生请销假系统的详细设计与实现主要是根据前面的学院学生请销假系统的需求分析和学院学生请销假系统的总体设计来设计页面并实现业务逻辑。主要从学院学生请销假系统界面实现、业务逻辑实现这两部分进行介绍

4.1 登录界面

学院学生请销假系统中的前台上注册后的用户是可以通过自己的账户名和密码进行登录的,当用户输入完整的自己的账户名和密码信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到学院学生请销假系统的首页中;否则将会提示相应错误信息,用户登录界面如下图4.1所示。

图4-1 登录界面图

登录的逻辑代码如下所示。

const md5 = require("md5");

var Controller = require("../core/controller.js");

class Login extends Controller {

constructor(config) {

super(

Object.assign({

tpl: "./login/",

service: "user",

},

config

)

);

}

}

Login.prototype.api = async function(ctx) {

var body = ctx.request.body;

var obj = await $.services["user"].get_obj({

username: body.username

},{like:false});

if (obj) {

var group = await $.services["user_group"].get_obj({

name:obj.user_group

})

if (group){

if (group.name!=="管理员"){

var sql = "select examine_state from "+ group.source_table +" WHERE user_id = " + obj.user_id;

var userExamine = await $.mysql.run(sql);

if (userExamine && userExamine.length > 0 && userExamine[0].examine_state!=="已通过"){

return {

error: {

code: 70000,

message: "该用户审核未通过"

},

};

}

}

if (obj.state!==1){

return {

error: {

code: 70000,

message: "用户非可用状态,不能登录"

},

};

}

var password = md5(body.password);

if (password === obj.password) {

ctx.session.user = obj;

var date = Date.parse(new Date());

var token = md5(obj.user_id + "_" + date);

await $.services["access_token"].add({

token,

info: JSON.stringify(obj),

user_id:obj.user_id

});

obj.token = token;

return {

result: {obj}

};

} else {

return {

error: {

code: 70000,

message: "密码错误"

},

};

}

}else {

return {

error: {

code: 70000,

message: "用户组不存在"

},

};

}

} else {

return {

error: {

code: 70000,

message: "账户不存在"

}

};

}

};

4.2密码修改模块

系统中所有的操作者能够变更自己的密码信息,执行该功能首先必须要登入系统,然后选择密码变更选项以后在给定的文本框中填写初始密码和新密码来完成修改密码的操作。在填写的时候,假如两次密码填写存在差异,那么此次密码变更操作失败,下面的图片展示的就是该板块对应的界面。

图4-2 密码修改界面图

密码修改代码如下:

Change_password.prototype.api = async function(ctx) {

var user = $.services.user;

var body = ctx.request.body;

var token = ctx.headers["x-auth-token"];

var access_token = await $.services["access_token"].get_obj({

token

});

var info = JSON.parse(access_token.info);

var username = info.username;

var o_password = md5(body.o_password);

var change_password = md5(body.password);

var obj = await user.get_obj({

username

});

if (obj) {

if (o_password == obj.password) {

var bl_for = await user.set({

username

}, {

password: change_password

});

if (bl_for) {

return {

result: "修改成功"

};

} else {

return {

error: {

code: 70000,

message: "修改失败",

},

};

}

} else {

return {

error: {

code: 70000,

message: "密码错误",

},

};

}

} else {

return {

error: {

code: 70000,

message: "账户不存在",

},

};

}

};

4.3请假申请管理界面

教师用户可以查看到学生提交的请假申请信息,对提交的申请记录信息进行查询等操作,界面如下图4.3所示。                                             

 

图4-3请假申请管理界面图

4.4系统用户界面

学院学生请销假系统中的管理员在“系统用户”这一菜单是中可以对注册的学生用户、教师用户、辅导用户、工办用户、书记用户以及管理员人员进行管控,界面如下图4.4所示。

图4-4系统用户界面图

4.5课程信息管理界面

教师可以添加课程信息,点击“课程信息”按钮会显示自己添加的课程信息,如果想要添加新的课程信息,点击“添加”按钮根据提示输入课程信息,点击“提交”后在课程安排界面就可以显示了,如果信息有错可以对课程信息进行更新维护,也可以直接删除某一课程安排。教师也可查看学生请假情况和销假情况,对课程信息列表里的内容进行查询,查看评论,并可查看学生对课程的请假申请情况,界面如下图4.5所示。

图4-5 课程信息管理界面图

4.6一级审批管理界面

管理员可以查看到学生提交的请假申请信息,请假审核由辅导员负责审核就行,对提交的请假信息进行查询,删除操作,界面如下图4.6所示。

图4-6一级审批管理界面图

4.7质询信息管理界面

管理员可以查看到学院各用户如副书记、学工办、辅导员提交的质询信息,对提交的请假信息进行查询,删除操作,界面如下图4.7所示。

图4-7质询信息管理界面图

质询信息管理逻辑代码如下:

Controller.prototype.add = async function(ctx) {

var result = await this.service.add(ctx.request.body, this.config);

if (this.service.error) {

return {

error: this.service.error,

};

}

return {

result,

};

};

5学院学生请销假系统测试

学院学生请销假系统测试是为了检验软件是否达到设计要求,是否存在错误,通过测试的方法来检查学院学生请销假系统,以便发现学院学生请销假系统中的错误。测试工作是保证学院学生请销假系统质量的关键。

5.1 调试部分问题

问题1:数据库无法添加中文。

解决过程:在Node.js中,可以使用MySQL作为数据库。首先,确保数据库的字符集设置为utf8或utf8mb4,以支持中文字符。可以通过以下代码修改数据库的字符集:

ALTER DATABASE your_database_name CHARACTER SET utf8;

效果:能在新库的表中添加中文。

问题2:控制台报错前台与后台参数不一致

解决过程:检查代码,找到报错参数进行修改。如果仍然报错,尝试重新启动服务器。可以通过以下命令重启Node.js服务器:

pm2 restart your_app_name

效果:重启项目后不再报错。

问题3:报错No bean named 'sysLogServiceImpl' available找不到名为sysLogServiceImpl的bean的对象。

解决过程:在Node.js中,通常不使用Bean注解,而是使用模块导出和引入的方式。请确保你正确地导出和引入了名为'sysLogServiceImpl'的模块。例如,在模块文件中,可以使用以下方式导出模块:

module.exports = {

  sysLogServiceImpl: your_module_object

};

然后在需要使用该模块的文件中,使用以下方式引入模块:

const sysLogService = require('./your_module_file').sysLogServiceImpl;

效果:重新调试项目,不再报错。

问题4:启动项目时报错:Mapped Statements collection does not contain value for

解决过程:在Node.js中,可能出现此错误的原因有多种。可以尝试检查Mapper映射地址是否正确配置。确保在mybatis-config文件中正确指定了Mapper文件的路径。例如:

const path = require('path');

const MyBatisMapper = require('mybatis-mapper');

MyBatisMapper.createMapper([

  path.resolve(__dirname, 'your_mapper_file.xml')

]);

效果:项目启动后,不再报错。

5.2 系统测试用例

系统测试包括:用户登录功能测试、课程信息查看功能测试、学校信息添加、学生请假、密码修改功能测试,如表5-1、5-2、5-3、5-4、5-5所示:

用户登录功能测试:

表5-1 用户登录功能测试表

用例名称

用户登录系统

目的

测试用户通过正确的用户名和密码可否登录功能

前提

未登录的情况下

测试流程

1) 进入登录页面

2) 输入正确的用户名和密码

预期结果

用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入

实际结果

实际结果与预期结果一致

课程信息查看功能测试:

表5-2 课程信息查看功能测试表

用例名称

课程信息查看

目的

测试课程信息查看功能

前提

用户登录

测试流程

点击教师信息列表

预期结果

可以查看到所有教师信息

实际结果

实际结果与预期结果一致

管理员添加学校信息界面测试:

表5-3 管理员添加学校信息界面测试表

用例名称

学校信息发布测试用例

目的

测试学校信息发布功能

前提

用户正常登录情况下

测试流程

1)管理员点击学校信息管理就,然后点击添加后并填写信息。

2)点击进行提交。

预期结果

提交以后,页面首页会显示新的学校信息 

实际结果

实际结果与预期结果一致

密码修改功能测试:

表5-4 密码修改功能测试表

用例名称

密码修改测试用例

目的

测试管理员密码修改功能

前提

管理员用户正常登录情况下

测试流程

1)管理员密码修改并完成填写。

2)点击进行提交。

预期结果

使用新的密码可以登录

实际结果

实际结果与预期结果一致

5.3 系统测试结果

通过编写学院学生请销假系统的测试用例,已经检测完毕用户登录模块、课程信息查看模块、学校信息添加模块、密码修改功能测试,通过这4大模块为学院学生请销假系统的后期推广运营提供了强力的技术支撑。

结论

至此,学院学生请销假系统已经完成。在开始开发之前,我进行了大量准备工作,并阅读了许多文献资料。从中,我学到了许多宝贵的方法和设计思路,对系统的开发起到了重要的作用。在系统的开发过程中,我选择了自己熟悉的技术,如Node.js、Express框架和MySQL数据库。这些技术都是我在之前的学习中掌握的,而其中的许多设计思路和方法则是通过不断的学习和实践摸索出来的经验。尽管工作量相对较大,但正是由于之前的积累和准备,我才能够顺利地完成这个项目。这再次证明了积累经验和做好准备的重要性。

当然,在系统的设计和实现过程中,离不开导师和同学们的帮助。正是因为他们的指导和支持,我才能够按时完成这个系统。在这个过程中,我也获得了很多收获。虽然该系统还有改进的空间,但由于我的专业知识有限,无法做到十分完美。希望将来有机会能够真正投入使用,并继续改进和完善。

以上是学院学生请销假系统开发的总结和感悟。通过准备工作和文献资料的阅读,以及导师和同学们的帮助,我成功地完成了这个项目。同时,我也意识到自己还有很多需要学习和提高的地方,希望能够在实践中不断成长和进步。

参考文献

[1]马恒昌. 以“四个四”心理工作模式护航学生成才——以安康职业技术学院为例 [J]. 陕西教育(高教), 2024, (02): 84-88.

[2]张嫱. 读技师班的大学生成为抢手的“π型人才”[N]. 工人日报, 2024-01-31 (006).

[3]林芹. 高质量就业导向下提升独立学院学生职业素养的研究 [J]. 现代职业教育, 2024, (03): 77-80.

[4]吴奕,贾冬艳. 微媒体背景下高职院校学生“微党建”工作创新研究——以辽宁农业职业技术学院为例 [J]. 辽宁农业职业技术学院学报, 2024, 26 (01): 69-72.

[5]Kabamba M H ,Khouzam M ,Dagenais R M . Vnode: Low-Overhead Transparent Tracing of Node.js-Based Microservice Architectures [J]. Future Internet, 2023, 16 (1):

[6]一想到要请假,就有负罪感 [J]. 班组天地, 2023, (11): 60.

[7] Liao Q ,Zhang R ,Ou Z , et al. TROP2 is highly expressed in triple-negative breast cancer CTCs and is a potential marker for epithelial mesenchymal CTCs [J]. Molecular Therapy: Oncology, 2024, 32 (1): 200762-.

[8]赵斌,陈俊生. Medical Express未来医疗无人机 [J]. 包装工程, 2023, 44 (20): 463.

[9]杨芬,宋晓燕. MySQL数据库应用的课程教学分析 [J]. 电子技术, 2023, 52 (10): 180-181.

[10]柴青山. 基于Node.js的新华社大屏幕蓝信监控系统应用研究 [J]. 中国传媒科技, 2023, (10): 150-153.

[11]李淑玲,朱彤. 基于Node.js技术的在线测试系统设计方案 [J]. 科技资讯, 2023, 21 (19): 35-38.

[12]邓杰海,刘薇,汤小燕. 基于Node.js的开源架构Electron赋能前端开发 [J]. 现代计算机, 2023, 29 (16): 87-92.

[13]蒋银虎. 基于UML的高校学生请假管理系统分析建模与设计实现 [J]. 电脑知识与技术, 2023, 19 (21): 38-41.

[14]Sunday O B ,Nduka O S . MySQL Database Server: Deploying Software Application to Enhance Visibility and Accountability [J]. Current Journal of Applied Science and Technology, 2023, 42 (4): 16-23.

[15]阚允浩,储慧,王静等. 基于C语言的请假系统 [J]. 电脑知识与技术, 2022, 18 (16): 51-53.

[16]刘德华. 高校公共体育课请假现象研究——以中国地质大学(武汉)为例 [J]. 当代体育科技, 2022, 12 (01): 160-163.

[17]丁卫峰. 谈高职学生请假管理变迁——以××××职业学院为例 [J]. 品位·经典, 2021, (13): 140-141+169.

[18]周清松,付星宇. 高校学生请假管理系统的设计与开发 [J]. 电脑知识与技术, 2021, 17 (13): 63-66+85.

[19]李晓彤,赵洪凯. 基于Web技术的学生在线签假管理系统的设计与开发 [J]. 实验室科学, 2021, 24 (01): 40-43+48.

[20]闫博. 混合模式下高校学生请假管理系统设计研究 [J]. 信息通信, 2020, (08): 163-164.

致  谢

时间过的很快,不知不觉,在大学的学习生活即将结束。毕业之际,我真诚地向帮助过我的老师、家人、同学、朋友们表达感谢。首先要感谢的是我的母校。感谢母校给了我美好的生活和优越的学习环境,使我能学到了很多知识,也不断的变得优秀;感谢家人在这四年期间一直给与我的爱和无条件的支持,让我没有后顾之忧地完成学业;感谢软件学院的任课老师们给我鼓励和认可,让我有信心去做好每一件事情;感谢同学们的帮助,让我的大学生活更有意义。在此次毕业设计的实现过程中, 我得到了老师们的耐心指导让我顺利完成了该设计。从最初的选题和开题开始,老师就给予我很多帮助,他们认真负责的态度、丰富的景点经验让我学到了很多。

同时也要感谢我敬爱的班主任和实训校园论坛的老师,他们在各个方面都教给了我丰富的经验,在面对各种困难时如何处理。因为今年的特殊性,老师们不仅在学习中给我以精心的指导,同时还在其它方面给予我观关怀,指导老师不辞辛苦的为大家录制视频和一遍遍讲解让我心怀感激之情。在此,我真诚的感恩、感谢我的指导健身教练们。

还要感谢实习期间不厌其烦教导我鼓励我的技术师傅,他指导了我各个方面的技巧,尤其是编程方面,迄今我的很多技巧和编写规范都有赖于他的指导、纠正。

最后还要特别感谢身边的各位同学们,一直支持鼓励我,无论何时何种境况。我很荣幸获得同学们的帮助,也很开心能够和大家共度大学四年的时光。

最后的最后,再次发自肺腑的感谢所有帮助过我的人。

免费领取项目源码,请关注❤点赞收藏并私信博主,谢谢-

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值