校园事务是大学生日常生活中不可或缺的一部分,包括课程查询、教务管理、校园活动信息等。然而,目前大多数学校在校园事务的通知发布和信息查询方面还依赖传统的官方网站和邮件通知,这种方式存在信息不及时、查找不方便等问题。本文旨在通过引入SpringBoot和Vue框架,结合云开发工具,为小程序开发者提供完整的原生云端支持和微信服务支持,设计并实现“事事通”校园事务通知小程序,能够整合各个学校的校园事务系统,并提供丰富多样的功能,有助于提高大学生的生活便利性和信息获取效率。
本文通过分析校园事务通知小程序的功能需求,建立与学校校园事务管理系统的接口,实现与学校系统的数据对接与同步。设计和开发通用的校园事务通知小程序,包括用户界面设计、交互设计、功能开发等。最后进行功能测试和用户体验评估,收集用户反馈,优化小程序的设计和性能。旨在通过此研究,将能够为高校提供一种便捷、高效的校园事务通知方式,提升学生的生活质量和学习体验。同时,研究成果还具有一定的推广价值,可供其他高校参考和借鉴,推动整个高校校园事务管理的发展。
关键词 云开发;Springboot;校园事务通知小程序 ;MySQL
The design and implementation of a campus affairs notification mini program called "Shi Shi Tong Tong"
Major: xxx Grade: xxx Class: xx Student: xxx
Supervisor: xxx
Abstract Campus affairs are an indispensable part of the daily lives of college students, including course inquiries, academic management, and campus activity information. However, currently most schools still rely on traditional official websites and email notifications for campus affairs notification and information retrieval, which has problems such as untimely information and inconvenient search. This article aims to provide complete native cloud support and WeChat service support for mini program developers by introducing the SpringBoot and Vue frameworks, combined with cloud development tools. It designs and implements the "Shi Shi Tong" campus affairs notification mini program, which can integrate the campus affairs systems of various schools and provide rich and diverse functions, helping to improve the convenience of life and information acquisition efficiency of college students.
This article analyzes the functional requirements of the campus affairs notification mini program, establishes an interface with the school campus affairs management system, and realizes data integration and synchronization with the school system. Design and develop a universal campus affairs notification mini program, including user interface design, interaction design, functional development, etc. Finally, perform functional testing and user experience evaluation, collect user feedback, and optimize the design and performance of the mini program. The aim of this study is to provide a convenient and efficient way for universities to notify campus affairs, improve the quality of life and learning experience of students. At the same time, the research results also have certain promotional value, which can be used as a reference and inspiration for other universities, promoting the development of campus affairs management in the entire university.
Key words Cloud development; Springboot; Campus affairs notification mini program; MySQL
目录
1 绪论
1.1 研究背景与意义
随着互联网技术的发展,移动互联网应用成为人们生活中不可或缺的一部分。校园生活是青年学生成长发展的关键阶段,而校园事务通知的传达和管理对于学生的成长、学校的管理和教育质量都具有重要意义。然而,传统的校园事务通知方式存在信息传达效率低、便捷性不高的问题。因此,利用移动互联网技术开发一款校园事务通知小程序,将可以更好地满足校园事务通知的需求。
传统的校园事务通知方式通常是通过纸质传单或班级口头传达,存在信息传达不及时、传达范围有限等问题。学生平时需要了解校园内的各类通知,并及时跟进相关事宜,传统的校园事务通知方式需要学校各部门投入大量人力物力进行信息传达和管理,效率较低。通过开发校园事务通知小程序,将可以实现快速、准确地将通知信息传达给所有关联的学生和教职员工,提高通知传达效率。学生可以在手机或电脑上随时查看通知,方便及时了解并参与校园事务。通过校园事务通知小程序,学生不仅可以及时了解校园事务,还可以参与相关活动和项目,提升教育质量,这对于学生的个人发展和学校的教育质量都具有重要意义。
1.2开发现状
随着手机普及和移动互联网的迅猛发展,校园生活也逐渐数字化,对于学生来说,获取校园内的最新信息和参与校园事务变得越来越便利和高效。校园事务通知小程序作为一种新兴的信息传播方式在各大高校中得到广泛应用。
目前,已有许多校园事务通知小程序推出并取得较好的效果。这些小程序提供了学生社交、学习资源和校园活动信息等多方面的功能。例如,一些小程序提供了学生社交功能,学生可以在线交流、学习、分享经验和解答问题。另一些小程序为学生提供了学习资源,如教材、习题库、在线课程等,方便学生学习和提升自己的学术能力。此外,一些小程序还可以帮助学生获取校园内的各类活动信息,如讲座、比赛、学生会活动等,提供给学生更多参与社团和组织的机会。
然而,目前存在一些问题和挑战需要进一步研究和解决。首先,学生在使用校园事务通知小程序时可能会遇到信息过载的问题,即过多的信息使学生难以筛选和获取所需信息。其次,一些小程序在学生使用体验和功能方面仍然存在不足,例如界面设计不够简洁友好、功能使用不够便捷等。此外,一些小程序还存在隐私和数据安全问题,学生可能担心个人信息被滥用或泄露。
综上所述,虽然校园事务通知小程序已经在高校中得到广泛应用,但仍需要进一步研究和完善。校园事务通知小程序的开发旨在提高学校对校园信息的管理和传播效率,方便师生之间的交流与互动,促进校园内的信息共享和校园文化建设。未来,随着智能手机的进一步普及和技术的不断更新,校园事务通知小程序将在校园内扮演越来越重要的角色。
1.3论文主要研究内容
“事事通”校园事务通知小程序的开发及实现,所研究的主要内容如下:
(1)首先是确定选题,确定好所要做的系统,并对系统的背景及现在面临的一些问题等进行系统的初步确认。
(2)系统确认完成后,结合系统开发的需求进行确认系统开发所使用的技术,“事事通”校园事务通知小程序的开发使用前后端分离的架构设计,SpringBoot和Vue的技术选型,采用微信开发者工具,MySQL数据库进行平台的搭建开发,确认好使用的技术进行技术分析,所使用的技术是否可以完成系统的实现。
(3)确定好系统使用的技术,进行确认系统所划分的用户触,并且根据用户触划分确定所要设计的功能模块,对“事事通”校园事务通知小程序的设计主要划分别为普通用户和管理员,并且所使用的功能模块也相应不同,但系统的数据库实现的内容是交互的,普通用户可以随时根据自己的需求进行通知信息搜索及阅读,对于管理员可以根据自己的权限进行在线信息的处理及操作。
(4)系统的功能模块确认完成后进行程序及界面的设计,设计完成后,组通过测试来判断程序是否完善,对于系统测试,要不同的用户进行不同的内容编辑及提交,及使用不同的测试方式找出程序中存在的漏洞,并对程序出现的漏洞问题进行在线解决处理,如果测试系统没有任何问题时,可以将系统上传进行正式操作使用。
1.4论文组织结构
本文共分为七章,章节内容安排如下:
第一章:引言。主要介绍了课题研究的背景,国内目前相关研究现状以及本文的研究内容与主要工作。
第二章:相关技术介绍。主要对本系统使用的相关技术和开发工具进行介绍。
第三章:系统需求分析。主要从系统的用户、功能等方面进行需求分析。
第四章:系统概要设计。主要对系统框架、系统功能模块、数据库进行功能设计。
第五章:系统实现。主要介绍了系统框架搭建、系统界面的实现。
第六章:系统测试。主要对系统的部分界面进行测试并对主要功能进行测试。
2 相关技术介绍
2.1 微信开发者工具
微信开发者工具是一款专为小程序开发而设计的应用,它不断改进,提供了便捷的操作方式,并且在开发过程中可以通过微信扫描二维码来访问,从而实现快速、准确的小程序开发和调试。
根据用户的需求,我们将采用不同的屏幕大小来制作小程序。
在完成了视图布置之后,可以通过执行编辑功能,快速更改当前的视图界面。
控制台:方便调试打印输出信息。
将代码上传至腾讯服务器,并在审核过程中填写版本号和备注信息,以确保代码的安全性和准确性。
通过查看资源文件,我们可以快速地调整相关项目的文件目录,从而实现断点调试。
使用远程调试技术,无论是在手机端还是PC端,都能够轻松地进行开发工作。
本地数据存储:显示的是本地存储的数据。
通过使用子父层级结构,我们可以更容易地进行视图调试。
微信的代码体积应该保持在2M 以内,而且在开发过程中,应该严格检查合法域名信息,并且为小程序的后台配置服务器域名。
微信开发者工具已经成为了开发过程中不可或缺的一部分,并且正在不断地改进和完善。
2.2 云开发CloudBase
云开发(CloudBase)是云端一体化的后端云服务 ,采用 serverless 架构,免去了移动应用构建中繁琐的服务器搭建和运维。同时云开发提供的静态托管、命令行工具(CLI)、Flutter SDK 等能力降低了应用开发的门槛。使用云开发可以构建完整的小程序/小游戏、H5、Web、移动 App 等应用。
云开发是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
在云开发的体系架构下,云开发的基础能力可用于多场景下开发:
(1)微信小程序:云开发为小程序开发者提供完整的原生云端支持和微信服务支持。
(2)微信公众号/H5 应用/PC Web 应用:云开发为 H5 类应用提供丰富 SDK 能力,可作为公众号后台,普通 H5 应用,H5 活动页,同时也支持作为 PC Web 后台应用,例如 Web 管理系统,Web 网站等。
(3)移动应用:云开发推出了 Flutter SDK,在 iOS、Android 等移动应用平台中集成,可以方便使用云函数、云存储等能力。
2.3 JAVA技术
Java语言在计算机的程序应用过程当中,属于非常重要的一个应用软件,因为它的性能比较高,而且能够应用在多重领域当中,因此该程序在计算机的软件程序应用当中的范围相对来说是比较广泛的。而从专业的技术角度来说,Java程序的应用的实用性也是非常强的,这是因为它与传统的C语言或C++相比没有太大的基本结构的变化,也就是说它的语法结构是相对单一,而且具有稳定的特性,还有更重要的一点是Java程序语言的基本参考对象就是C语言,所以他的程序编写并不是很复杂,而且还能够起到优化工作效率提升系统设计本身的基础功能的作用,因此他也就受到了非常广泛的程序员们的青睐。
在此次进行系统设计开发研究的过程当中,还发现Java程序语言之所以能够得到市场上更多用户的好评和青睐,其根本原因在于他能够具备各种语言的自身独特优点的展现,也就是说它的兼容性是常强的。因此,我们因此我们可以说在任何一个程序的开发过程当中,Java语言程序的应用是必不可少的,它他在程序员进行改动的时候,哪怕是一个程序字母的改动,都可以形成一种特定的程序,这是 Java程序,非常独特的另一个优点。不仅如此,Java源程序的可移植性也是非常大,而且它的安全系数很高,能够通过不同方式进行移植到其他程序当中,而且可以兼容不同程序的系统,在运行的过程当中,其安全系数也是非常强的,能够确保用户在使用网络的过程当中去确保网络的安全,而正是基于这样的可移植性,为程序员节约了很多的系统语言程序的开发设计的时间,这是非常难得的一种自有优势。
2.4 Vue主要功能
Vue(读音/vjuː/,相似于view)是一种具有高度灵活性的JavaScript架构,能够从基础到顶级,从低到高地实现多种功能,从而创造出一个完整的、高效的用户体验。Vue的核心库专注于视觉表示,它的操作简单,并且可以轻松地将其与其他第三方库和已存在的项目进行集成。此外,Vue可以通过搭配先进的工具和多样的支撑性库,来实现对复杂的网站(SPA)的高效管理。
Vue.Vue作为一种逐步改善的用户体验的框架,具备了独特的优势:首先,它的基础结构更加简单,而且可以轻松地被更多的人使用,而Vue的核心库则更加专注于视觉层,可以轻松地被更多的人使用,也可以被更多的库和现成的项目所使用。Vue 具备强大的功能,可以利用其内置的多个文档组件以及其强大的生态系统,来实现更加精简、高效的单页应用。
Vue.js 旨在通过最少的 API ,实现对数据的有效绑定,并将其转换为多种形式的视图组件。
Vue.js 虽然不是一个完美的框架,但它可以帮助我们更好地理解和实现复杂的页面应用。它的视图层特性使得它更容易学习,并且可以与其他库或已有项目进行整合,从而提高效率。
2.5 Springboot框架
Spring框架是一个由SpringBoot公司发布的开放式框架,旨在通过其可扩展的特性来支持多种不同的编码方式。尽管Spring框架不会影响任何特定的编码方式,但其出色的性价比和可扩展性,已经成为EJB(EnterpriseSpringBootBeans)框架的重要组成部分,并且一直得到越来越多的人的青睐。Spring框架不仅可以有效地支撑开发,而且还可以充分利用其独有的控制反转功能,以及支撑多种持久性技术,从而将托管对象的生命周期变得更加容易,并且可以支撑声明性的事务处理,还可以支撑多种Web框架,从而有效地推动开发。
Spring框架拥有强大的IOC功能,可以轻松地实现SpringBoot对象的调度与操作,从而更好地支持项目的运行。此外,Spring还支持将SpringBoot对象的生命周期进行可视化,以实现更加灵活的调度与操作。Spring框架提供了一种新的、高效的容器设计工具,它能够根据XML文件和AOP注解的指引,从多个源中提取和组织相应的参数,从而实现多种功能。此外,它还提供了一种面向服务的框架,它能够根据用户的需求,自动调整参数,从而提高系统的效率和性能。Spring框架的AOP框架具有强大的功能,可以满足各种复杂的需求[10]。尽管AspectJ框架的性能不及其他框架,但是Spring AOP的出色表现使其在各种应用场景中都具有出色的表现,例如:在事务处理、远程控制、网络安全、数据共享、文件共享、网络安全协议、网络安全协议。
SpringBoot的事务处理框架提供了一种灵活的方式,可以将不同的内容、不同的时间段、不同的类型的数据进行处理,并且可以将这些处理结果存储到一起。此外,Spring还提供了一系列的事务模型。Spring的事务框架提供了一种灵活的方式,它允许用户根据需要调整事务的类型,例如XML、SpringBoot等,同时还支持快速的消息传输、缓冲等特性,从而有效地帮助开发者处理日益增长的数据需求。这款应用程序拥有强大的功能,能够兼容各种常见的数据处理框架,包括SpringBoot、iBATS/MyBATIs、Hibernate、SpringBoot)数据对象(JDO)、Apache OJB、Apache Cayne等,并能够将其与Spring的事务处理功能相结合,从而实现更加高效的数据处理。SpringMVC最初的目的是要替代StrutsWeb框架,因此,开发者决定将其与传统的web页面框架进行改造,使其能更好地支持用户的访问。这样,SpringMVC就能更好地支持用户的需求,从而提高web页面的性能。
3 系统分析设计
3.1 可行性分析
可行性分析是系统分析的第一步,通过可行性分析我们可以得出系统是不是值得开发,如果系统的开发是不可信的,那么就没有必要再进行下面的操作,对于本“事事通”校园事务通知小程序在可行性方面进行了技术、经济以及操作的分析。
3.1.1 技术可行性分析
“事事通”校园事务通知小程序在技术上采用的是Java语言、基于Browser/Server模式,前台使用了Vue.js、HTML、CSS等技术,后台使用了Springboot框架结合MySQL数据库,这些技术在校期间都已经学习过,而且用这些技术开发过一些小的系统,同时在实际开发中Java功能强大被普通应用,因此开发技术是没有问题的。
3.1.2 经济可行性分析
开发“事事通”校园事务通知小程序并不需要投入太多,开发工具、服务器、数据库等,都可以通过网络搜索、下载、安装,只需要一台普通的计算机就可以完成操作,而且在系统功能规划上都是通过问卷调查了解用户需求,通过百度、知网库、学校图书馆查阅相关系统,了解它们对系统具体实现的功能需求,然后进行设计开发,不存在任何开销,因此系统的开发在经济方面是可行的。
3.1.3 操作可行性分析
“事事通”校园事务通知小程序的在开发的时候充分了解用户群体,对于使用智能机不熟练的用户也进行考虑在内,在小程序的开发中首页有醒目的导航栏,使得即使没有使用过小程序的用户,也可以根据导航栏的提示进行操作,非常方便,因此系统在操作上是可行的。
3.2 系统流程分析
3.2.1 用户登录流程
第一步,为了保证系统的安全性,用户需要在登录窗口中输入自己的个人信息,并确保信息准确无误。如果输入的信息不正确,将会弹出提示框,导致用户登录失败,需要重新输入,如图3-1所示。
图3-1登录操作流程图
3.2.2 信息添加流程
“事事通”校园事务通知小程序可以实现快速、准确地收集和处理各种信息,而且在使用过程中,只有在按照指定的界面和指定的参考文献,才能够正确地获取和处理信息,而若信息未能满足预期,就会被退出第一步,并且在第二步中,还会继续检查信息的准确性,以确保最终的结果能够满足预期的目标。
图3-2 信息添加流程图
3.2.3 信息删除流程
无论是何种用户角色,只要进入了不正常的系统操作界面,就可以使用不同的信息内容来进行操作。当用户尝试删除系统中的数据时,必须先ACK这些数据是否已经被删除,如果没有,就应该按照图3-3的指示进行操作,以免影响系统的正常运行。
图3-3 信息删除流程图
3.3 功能需求分析
(1)通知信息模块:“事事通”校园事务通知小程序最主要的功能就是搜索通知信息并进行阅读,提交已读记录。所以系统中需要管理员添加各种校园事务通知信息供用户查询,已读,管理员和教职员工在此模块主要是对校园事务通知信息的增删改查,游客实现对校园事务信息的查询,普通用户则实现校园事务校园事务的已读、点赞、评论、收藏等操作。如下图3-4所示。
图3-4 通知信息模块用例图
(2)交流论坛模块:管理员在后台可以对交流论坛及其分类进行增删改查,游客实现查看交流论坛,用户进行发布帖子、收藏、点赞、评论操作。如下图3-5所示。
图3-5交流论坛模块用例图
(3)学校资讯模块:管理员在后台可以对学校资讯及其分类进行增删改查,游客实现查看学校资讯,用户进行收藏、点赞、评论。如下图3-6所示。
图3-6学校资讯模块用例图
(4)用户管理模块:在前台游客可以通过注册,然后参与到系统当中,管理员可以对注册的用户进行修改、删除、查询、也可以添加新的用户。如下图3-7所示。
图3-7用户管理模块用例图
(5)已读记录管理:用户对已经阅读查收校园事务通知信息可以进行已读记录提交,可以填写用户已读记录内容,如下图3-8所示。
图3-8已读记录管理模块用例图
(6)我的模块:我的模块是前台用户独有的功能,可以在“我的”管理基本信息、收藏、已读记录、提醒信息,我的用例如下图3-9所示。
图3-9我的管理模块用例图
3.4 非功能性需求分析
系统的非功能需求方面主要是从系统的安全性、存储性、可靠性、易学性、稳定性等方面进行分析:
(1)安全性:系统的安全问题是开发者首先要考虑的,如果系统存在安全隐患,可能使得用户个人信息被泄露,给用户带来困扰,造成损失。
(2)储存性:因为用户使用的关于校园事务的网站,普通用户多,而且登录后要查询各种校园事务信息,那就需要一个强大的数据库来进行数据的存储,对数据库的要求是非常严格的,本系统选用的是MYSQL数据库,MYSQL的运行速度很快,执行命令的速度也非常快,而且体积小。
(3)可靠性:可靠性指的是用户在进行校园事务信息查询、评论以及已读的时候,能够按照用户的指示进行显示信息,如果用户点击查询校园事务详细信息,显示出来的是不可已读的信息,那就违背用户的初衷。
(4)易学性:系统的开发面向对象学历不尽相同,所有在开发的时候要考虑系统操作应该简单,不需要进行任何学习、培训,只能上网的用户就可以操作。
(5)稳定性:系统在运行方面要很稳定,系统的界面、字体要清楚,没有失真现象,给用户以良好的体验。
(6)可拓展性:本“事事通”校园事务通知小程序的功能还有待完善,因此系统要有很好的拓展性,方便后期功能更新维护。
3.5系统角色用例分析
3.5.1系统前台用户用例
“事事通”校园事务通知小程序前台用户的主要功能是对系统信息的查看、收藏、评论以及对校园事务的通知信息进行已读记录提交。前台普通用户用例图如图3-10所示。
图3-10 “事事通”校园事务通知小程序前台普通用户用例图
在系统前台中主要实现的是对“事事通”校园事务通知小程序中信息的浏览,用户对信息收藏、评论以及在通知信息中对校园事务通知提交已读记录几个功能。
(1)学校资讯功能,主要实现了是对学校资讯的查看,用户进行评论、收藏、点赞,用例说明如下表所示:
表3-1 学校资讯用例说明
用例名称 | 学校资讯 |
角色 | 用户 |
用例说明 | 对学校资讯评论 |
前置条件 | 用户登录到系统当中 |
后置条件 | 用户发表评论 |
基本事件流 | 1.进入系统登录界面 2.点击学校资讯,选择某条学校资讯查看详情 3.输入评论内容 4.点击提交按钮,发表评论 |
扩展流程 | 3a.用户没有登录成功 |
异常事件流 | 3a.输入评论内容为空 |
其他 | 无 |
(2)校园事务通知已读功能,本功能是系统的主要功能,主要是实现已读记录提交功能,用例说明如下标所示:
表3-2 通知信息用例说明
用例名称 | 通知信息已读 |
角色 | 用户 |
用例说明 | 对通知信息提交已读记录 |
前置条件 | 用户登录到系统当中 |
后置条件 | 对通知信息填写已读记录 |
基本事件流 | 1.进入系统登录界面 2.点击通知信息,选择某条通知信息查看详情 3.填写已读内容 4.提交已读记录 |
扩展流程 | 3a.用户没有登录成功 |
异常事件流 | 3a.输入已读内容为空 |
其他 | 无 |
3.5.2系统后端用例
后台分为教职员工和管理员两个角色,教职员工进入后台主要是对通知信息进行发布并进行通知分析管理,也可以对个人信息和密码进行修改。后台管理员进入以后可以对系统用户、通知信息管理、通知类型管理、已读记录管理、提醒信息管理、通知分析管理、系统管理、资源管理、交流管理、权限管理进行管理。
教职员工用例图如图3-11所示。
图3-11“事事通”校园事务通知小程序教职员工用例图
后台管理员用例图如图3-12所示。
图3-12“事事通”校园事务通知小程序后台管理员用户用例图
后台管理员主要实现了是对系统用户、通知信息管理、通知类型管理、已读记录管理、提醒信息管理、通知分析管理、系统管理、资源管理、交流管理、权限管理的增删改查操作。后台管理员的用例说明如下表所示:
表3-3 后台管理员用例说明
用例名称 | 后台管理 |
角色 | 管理员 |
用例说明 | 对前端显示的信息进行管理 |
前置条件 | 管理员登录进入后台管理页面 |
后置条件 | 无 |
基本事件流 | 1.管理员登录进入后台管理界面 2.点击左侧选择相应功能板块 3.选择所要操作的数据 4.点击选择的内容进行增加/删除/修改/查找 5.点击立即保存按钮 |
扩展流程 | 无 |
异常事件流 | 无 |
其他 | 无 |
4 系统概要设计
4.1开发流程设计
开发“事事通”校园事务通知小程序需要经过多个步骤,包括分析管理模块+编写代码+规划和操作,这些步骤是打造“事事通”校园事务通知小程序信息管理AP的关键,它们将决定系统能否达到预期的功能,并且能够在完成设计之后得到实施。在开发过程中,为了确保系统的有效性,每个阶段的开发必须严格遵循线性顺序,并且每个步骤的完成情况都要经过技术检验,以确保每个步骤的准确性,避免出现拖拽现象,从而保证系统的设计功能能够得到有效实施。
通过对“事事通”校园事务通知小程序的成功开发,我们可以看出,采用这种方法可以显著降低系统的复杂性,并且可以通过图4-1进一步证明。
图4-1开发系统流程图
4.2系统功能结构设计
“事事通”校园事务通知小程序总体分为前台用户模块和后台管理员模块。
两个模块表现上是分别独立存在,但是访问的数据库是一样的。每一个模块的功能都是根据先前完成的需求分析,并查阅相关资料后整理制作的。
综上所述,系统功能结构图如图4-2所示。
图4-2 系统功能结构图
4.3数据库概念结构设计
数据库系统作为一个重要的组件,其优化针对整体网络的运行非常重要。为了构建一个高效的数据库系统,我们需要明确每个元素的特征,并将它们组合在一起。在本次研究中,我们将重点关注“事事通”校园事务通知小程序的项目概述和设计分析,并对数据库进行设计。我们将使用mysql数据库来支持我们的系统,同时我们将采用更加人性化的操作设计,以便在系统中及时处理和反馈错误信息。
下面是整个“事事通”校园事务通知小程序中主要的数据库表总E-R实体关系图。
图4-3 “事事通”校园事务通知小程序总E-R关系图
4.4数据库逻辑结构设计
通过上一小节中“事事通”校园事务通知小程序中总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 | 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 | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | forum_id | mediumint | 8 | 0 | N | Y | 论坛id | |
2 | display | smallint | 5 | 0 | N | N | 100 | 排序 |
3 | user_id | mediumint | 8 | 0 | N | N | 0 | 用户ID |
4 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
5 | praise_len | int | 10 | 0 | Y | N | 0 | 点赞数 |
6 | hits | int | 10 | 0 | N | N | 0 | 访问数 |
7 | title | varchar | 125 | 0 | N | N | 标题 | |
8 | keywords | varchar | 125 | 0 | Y | N | 关键词 | |
9 | description | varchar | 255 | 0 | Y | N | 描述 | |
10 | url | varchar | 255 | 0 | Y | N | 来源地址 | |
11 | tag | varchar | 255 | 0 | Y | N | 标签 | |
12 | img | text | 65535 | 0 | Y | N | 封面图 | |
13 | content | longtext | 2147483647 | 0 | Y | N | 正文 | |
14 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
15 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
16 | avatar | varchar | 255 | 0 | Y | N | 发帖人头像: | |
17 | type | varchar | 64 | 0 | N | N | 0 | 论坛分类:[0,1000]用来搜索指定类型的论坛帖 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | type_id | smallint | 5 | 0 | N | Y | 分类ID:[0,10000] | |
2 | name | varchar | 16 | 0 | N | N | 分类名称:[2,16] | |
3 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该分类的作用 | |
4 | url | varchar | 255 | 0 | Y | N | 外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 | |
5 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
6 | icon | varchar | 255 | 0 | Y | N | 分类图标: | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | 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 | notification_analysis_id | int | 10 | 0 | N | Y | 通知分析ID | |
2 | notification_title | varchar | 64 | 0 | Y | N | 通知标题 | |
3 | notification_type | varchar | 64 | 0 | Y | N | 通知类型 | |
4 | number_of_views | int | 10 | 0 | Y | N | 0 | 浏览次数 |
5 | number_of_comments | int | 10 | 0 | Y | N | 0 | 评论数量 |
6 | remarks | text | 65535 | 0 | Y | N | 备注信息 | |
7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表notification_information (通知信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | notification_information_id | int | 10 | 0 | N | Y | 通知信息ID | |
2 | notification_title | varchar | 64 | 0 | Y | N | 通知标题 | |
3 | notification_type | varchar | 64 | 0 | Y | N | 通知类型 | |
4 | publish_users | int | 10 | 0 | Y | N | 0 | 发布用户 |
5 | release_date | date | 10 | 0 | Y | N | 发布日期 | |
6 | cover_photo | varchar | 255 | 0 | Y | N | 封面图片 | |
7 | notification_content | longtext | 2147483647 | 0 | Y | N | 通知内容 | |
8 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
9 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
10 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
12 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | notification_type_id | int | 10 | 0 | N | Y | 通知类型ID | |
2 | notification_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 | 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 | read_records_id | int | 10 | 0 | N | Y | 已读记录ID | |
2 | notification_title | varchar | 64 | 0 | Y | N | 通知标题 | |
3 | notification_type | varchar | 64 | 0 | Y | N | 通知类型 | |
4 | publish_users | int | 10 | 0 | Y | N | 0 | 发布用户 |
5 | read_users | int | 10 | 0 | Y | N | 0 | 已读用户 |
6 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
7 | read_notes | text | 65535 | 0 | Y | N | 已读备注 | |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | regular_users_id | int | 10 | 0 | N | Y | 普通用户ID | |
2 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
3 | user_gender | varchar | 64 | 0 | Y | N | 用户性别 | |
4 | contact_phone_number | 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 | reminder_message_id | int | 10 | 0 | N | Y | 提醒信息ID | |
2 | reminder_title | varchar | 64 | 0 | Y | N | 提醒标题 | |
3 | reminder_users | int | 10 | 0 | Y | N | 0 | 提醒用户 |
4 | notification_title | varchar | 64 | 0 | Y | N | 通知标题 | |
5 | notification_type | varchar | 64 | 0 | Y | N | 通知类型 | |
6 | reminder_content | text | 65535 | 0 | Y | N | 提醒内容 | |
7 | reminder_remarks | text | 65535 | 0 | Y | N | 提醒备注 | |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
表teaching_and_administrative_staff (教职员工)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | teaching_and_administrative_staff_id | int | 10 | 0 | N | Y | 教职员工ID | |
2 | employee_name | varchar | 64 | 0 | Y | N | 员工姓名 | |
3 | employee_gender | varchar | 64 | 0 | Y | N | 员工性别 | |
4 | employee_id | varchar | 64 | 0 | N | N | 员工工号 | |
5 | contact_phone_number | varchar | 16 | 0 | Y | N | 联系电话 | |
6 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
7 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | 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 | 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 | | 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 | 创建时间: |
15 | vip_level | varchar | 255 | 0 | Y | N | 会员等级 | |
16 | vip_discount | double | 11 | 2 | Y | N | 0.00 | 会员折扣 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
5 系统的实现
5.1前台用户功能模块
5.1.1 前台首页界面
当进入“事事通”校园事务通知小程序的时候,首先映入眼帘的是系统的导航栏,导航栏上面是轮播图以及学校资讯,其主界面展示如下图5-1所示。
图5-1 前台首页界面图
5.1.2注册界面
不是“事事通”校园事务通知小程序中正式用户的是可以在线进行注册的,当用户点击“注册”按钮,填写上自己的账号+密码+确认密码+昵称等,再点击“注册”按钮后将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,只有都验证没问题后即可普通用户注册成功。其用注册流程图如图5-2所示,注册界面展示如下图5-3所示。
图5-2注册流程图
图5-3 前台注册界面图
注册关键代码如下所示。
/**
* 注册
* @param user
* @return
*/
@PostM小程序ing("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);
}
5.1.3登录界面
“事事通”校园事务通知小程序中的前台上注册后的普通用户是可以通过自己的账户名和密码进行登录的,当普通用户输入完整的自己的账户名和密码信息并通过滑动验证通过后,点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到“事事通”校园事务通知小程序的首页中;否则将会提示相应错误信息,用户登录流程如图5-4所示,登录界面如下图5-5所示。
图5-4 登录流程图
图5-5普通用户登录界面图
/**
* 登录
* @param data
* @param httpServletRequest
* @return
*/
@PostM小程序ing("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.select(map, new HashMap<>()).getResultList();
}
else if(email != null && "".equals(email) == false){
map.put("email", email);
resultList = service.select(map, new HashMap<>()).getResultList();
}
else if(phone != null && "".equals(phone) == false){
map.put("phone", phone);
resultList = service.select(map, new HashMap<>()).getResultList();
}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.select(groupMap, new HashMap<>()).getResultList();
if (groupList.size()<1){
return error(30000,"用户组不存在");
}
UserGroup userGroup = (UserGroup) groupList.get(0);
//查询用户审核状态
if (!StringUtils.isEmpty(userGroup.getSourceTable())){
String sql = "select examine_state from "+ userGroup.getSourceTable() +" WHERE user_id = " + byUsername.getUserId();
String res = String.valueOf(service.runCountSql(sql).getSingleResult());
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());
tokenService.save(accessToken);
// 返回用户信息
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, "账号或密码不正确");
}
5.1.4 交流论坛界面
当用户点击“事事通”校园事务通知小程序中的“交流论坛”后将会进入到该“交流论坛”列表的界面,然后选择想要看的论坛帖子信息,点击进入到详细界面,在详细界面可以收藏+赞+评论等操作,用户也可以点击“发布内容”按钮发布新的帖子信息。交流 论坛列表界面如下图5-6所示。
图5-6“事事通”校园事务通知小程序交流论坛列表界面图
5.1.5 学校资讯界面
当访客点击“事事通”校园事务通知小程序中导航栏上的“学校资讯”后将会进入到该“学校资讯”列表的界面,然后选择想要看的学校资讯,点击进入到详细界面,学校资讯列表界面如下图5-7所示。
图5-7“事事通”校园事务通知小程序学校资讯列表界面图
5.1.6 通知信息详情界面
当访客点击了任意通知信息后将会进入该款校园事务通知信息的详情界面,可以了解到该校园事务通知信息的通知标题、通知类型、发布用户、发布日期、封面图片、通知内容等,同时可以对该校园事务通知进行已读、点赞、评论、收藏,通知信息详情展示页面如图5-8所示。
图5-8通知信息详情界面图
已读记录提交页面如图5-9所示。
图5-9已读记录提交界面图
5.2后台功能模块
5.2.1 教职员工后台管理界面
教职员工通过管理员在后台添加的账号信息进行登录系统,登录之后可以对个人信息、密码和通知信息、通知分析进行管理。教职员工后台管理界面如下图5-10所示。
图5-10教职员工后台管理界面图
5.2.2 系统用户界面
后台管理人员是可以对前台注册的普通用户和教职员工进行管理。系统用户管理界面如下图5-11所示。
图5-11系统用户管理界面图
5.2.3 通知信息管理界面
后台管理人员对“事事通”校园事务通知小程序内的不同通知类型下的通知信息进行维护和管理的,也可以对用户提交的关于通知的评论信息进行管控。通知信息管理界面如下图5-12所示。
图5-12通知信息管理界面图
5.2.4 系统管理界面
管理人员在“系统管理”这一菜单下是可以对“事事通”校园事务通知小程序内展示的轮播图进行添加修改的。系统管理界面如下图5-13所示。
图5-13系统管理界面图
5.2.5 资源管理界面
后台管理人员是可以对学校资讯以及资讯分类的分类进行增删改查操作。学校资讯界面如下图5-14所示。
图5-14学校资讯管理界面图
5.2.6 交流管理界面
管理员点击“交流管理”菜单能够对就业管理系统内的留言论坛帖子及其所属论坛分类信息进行增删改查。交流管理界面如下图5-15所示。
6系统的测试
6.1测试的目的
系统的前台、后台、数据库完成以后,这个系统才算是完成了一半,我们在这之后要对系统进行最后的一个阶段,那就是测试了,测试对一个系统来说是非常重要的,有的时候开发完一个系统,如果测试不合格的话,这个系统是没有办法进行投入使用的,所有我们要用测试对系统的功能进行检验,把不完善的功能尽量完善,把出现的bug解决掉,然后给用户呈现出一个完美的系统。通过对系统最后一步的测试,使得开发人员对自己的系统更加有信心,更加积极的为后期的系统版本的更新提供支持。
6.2 系统测试用例
系统测试包括:用户登录功能测试、通知信息查看功能测试、学校资讯添加、通知信息搜索、密码修改功能测试,如表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)点击进行提交。 |
预期结果 | 使用新的密码可以登录 |
实际结果 | 实际结果与预期结果一致 |
6.3 系统测试结果
通过编写“事事通”校园事务通知小程序的测试用例,已经检测完毕一上功能模块的测试。在测试每个功能的过程中,我们应该严格按照指定的测试计划逐步进行测试,不能急于实现,并且每个测试的结果都应该充分记录下来,最好的选择是自动化测试,这样可以更准确、更快地完成,而不是依赖手动测试,因为这样可以避免问题,它还可以防止疲劳和问题。进行测试时,必须保持高度专注,密切关注测试结果,并及时纠正任何异常情况;最后,在测试完成后,应该正确保存文档以备将来使用。经过测试可以发现,原来开发的系统是清晰的,只有对其进行细化,编程的过程才会变得更加顺利。只有有了良好的结构,后期的编程工作才能顺利完成,同时也可以大大降低时间和精力成本。
结论
该“事事通”校园事务通知小程序使用的开发环境是功能强大的SpringBoot和Vue技术,结合为小程序开发者提供完整的原生云端支持和微信服务支持的云开发工具,在大学的学科中重点学习了这几种技术,在对这些技术学习、熟悉之后,结合对系统进行的需求分析顺利的完成了本次项目的设计。在最初接到任务书的那一刻,比较迷茫,没有任何的思路,在经过了老师的指导以后,调查了一些跟美食推荐系统相关的资料后,慢慢的有了头绪,开始入手开题,明确了系统的内容,对系统进行可行性的分析,确定系统可行以及功能内容以后,就按照开题初步设计的内容进行完善,慢慢补充、学习,最终结束了程序的开发,也完成了论文的写作。这一过程,虽然艰辛,但也学习到了很多,对项目开发流程也有了一个新的认识,动手能力也得到了提高,这正是书本上所学习不到的。
经过开发本项目,让我非常有成就高,与此同时我对程序的开发更加感兴趣了,信息技术真的很强大,也很深奥,在以后工作中,我将会寻找与其相关工作,继续深入学习,开发出更优秀的项目。
参考文献
[1]孙梦菲,周天源,王天澍.基于微信小程序的校园社团管理系统设计与实现[J].现代信息科技,2024,8(03):40-44.DOI:10.19850/j.cnki.2096-4706.2024.03.009.
[2]Rongli T ,Ke L ,Yue S , et al.Sustainable management of campus fallen leaves through low-temperature pyrolysis and application in Pb immobilization[J].Journal of Environmental Sciences,2024,139281-292.
[3]A conversation with Jason Abaluck, Professor, Economics, Yale University School of Management.[J].Journal of clinical and translational science,2024,8(1):e15-e15.
[4]Kumar K K ,Robin S ,Andres H S .Decentralisation in School Management and Student Achievement: Evidence from India[J].The Journal of Development Studies,2024,60(1):67-82.
[5]王庆月,王灿,仝镇熙.基于微信小程序的校园导览系统开发[J].电脑编程技巧与维护,2023,(11):79-81+109.DOI:10.16184/j.cnki.comprg.2023.11.020.
[6]过如意,谢春丽,张小林等.基于OpenCV的“易趣阁”智慧校园服务小程序[J].科技创新与应用,2023,13(31):59-62.DOI:10.19981/j.CN23-1581/G3.2023.31.014.
[7]银莉,杜啸楠.基于SpringBoot和Vue的校园积分系统的设计与实现[J].集成电路应用,2023,40(07):414-415.DOI:10.19339/j.issn.1674-2583.2023.07.187.
[8]李静,常齐月.基于微信小程序的校园互助平台设计[J].软件,2023,44(06):104-106+143.
[9]沈宇涵,王磊,叶梓涵.校园服务类小程序定制化服务探讨[J].合作经济与科技,2023,(14):78-80.DOI:10.13665/j.cnki.hzjjykj.2023.14.035.
[10]张志云.基于微信小程序的校园服务平台设计与应用[J].信息与电脑(理论版),2023,35(09):143-145.
[11]张昕腾.基于微信小程序的高校校园信息整合平台的设计与实现[J].科技与创新,2023,(08):54-57.DOI:10.15913/j.cnki.kjycx.2023.08.016.
[12]李建国,庄群.微信小程序在智慧党校中的应用及安全探讨[J].数字技术与应用,2023,41(04):172-174+186.DOI:10.19695/j.cnki.cn12-1369.2023.04.52.
[13]丹国萍,陈新世.智慧校园建设背景下微信小程序的搭建[J].无线互联科技,2023,20(06):49-51.
[14]朱兴和.智慧校园背景下高校体育信息化小程序应用研究[J].大众标准化,2023,(06):181-183.
[15]马尔康,木合亚提·尼亚孜别克,艾力克木·亚库甫等.基于微信小程序的校园信息服务系统的设计与实现[J].吉林化工学院学报,2023,40(03):53-55.DOI:10.16039/j.cnki.cn22-1249.2023.03.011.
[16]姚丽娟,罗宏伟,丑晨等.基于微信小程序的智慧校园导航系统研究[J].网络安全技术与应用,2023,(03):48-50.
[17]顾煜新,蒋鸿溧,李妍.乐校吧微信小程序的设计开发与实现[J].丝网印刷,2023,(05):67-70.DOI:10.20084/j.cnki.1002-4867.2023.05.016.
[18]段莹.基于“互联网+”的学生事务管理信息化平台建设[J].办公自动化,2022,27(22):15-17.
[19]刘蕊.数字化校园建设与高校管理工作探讨[J].黑龙江科学,2021,12(01):132-133.
[20]蒋邢飞,朱润锴,岑岗等.“掌上书院”智慧校园大学生事务管理系统的设计[J].浙江科技学院学报,2020,32(02):139-144.DOI:10.3969/j.issn.1671-8798.2020.02.010.
致谢
通过这样设计与开发这样一个系统,首先向我们老师、同学和朋友表达真诚的感谢。没有指导老师的指导和平日子的教导,我也不能够学到如此多的专业知识。另外,也佩服老师兢兢业业的工作态度,给我们做好了表率。系统开发技术要学习的东西很多,前台框架、后台框架、业务流程、数据结构、操作系统等各种知识非常的丰富,都需要慢慢的专研。在这里,首先感谢老师细心的教导,我只想说一句:“老师,谢谢您,您辛苦了!有您在,大学生活才更加的充实。”另外,我要感谢我的室友,由于知识掌握得不够产生各种问题,正因为有了你们的帮忙,给我提出很多很好的建议,才能更好的解决系统开发问题。同时,我也应该感谢那些计算机专业的先哲们,正是由于有这么一群人,才能把这样的专业研究得如此透彻,才能助力新世界的诞生。你们的理论,是我们一生学习的内容,你们的成就,是我们一生追求的目标。
最后,也希望自己在未来的道路上能够走得更远,不辜负在大学的学习,以及老师们的细致的教导。
标签:10,varchar,通知,校园,用户,源码,毕业设计,23598,255 From: https://blog.csdn.net/vx1_Biye_Design/article/details/141222311免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~