目录
摘要
1 绪论
1.1 选题背景与意义
1.2国内外研究现状
1.3主要工作
2 开发环境及相关技术介绍
2.1 MySQL数据库
2.2 Tomcat服务器
2.3 Java语言
2.4 SpringBoot框架介绍
2.5 Vue主要功能
3系统分析
3.1.1 技术可行性分析
3.1.2 经济可行性分析
3.1.3 法律可行性分析
3.2 系统流程分析
3.2.1 添加信息流程
3.2.2 修改信息流程
3.2.3 删除信息流程
3.3 系统功能分析
3.3.1 功能性分析
3.3.2 非功能性分析
3.4 系统用例分析
3.5本章小结
4 系统总体设计
4.1 系统架构设计
4.2 系统功能模块设计
4.3 数据库设计
4.3.1 数据库概念结构设计
4.3.2 数据库逻辑结构设计
4.4本章小结
5系统关键模块设计与实现
5.1前台用户功能模块
5.1.1 首页界面
5.1.2 注册界面
5.1.3用户登录界面
5.1.4交流论坛界面
5.1.5 兼职信息界面
5.1.7 个人中心
5.2管理员功能模块
5.2.1 系统用户界面
5.2.2兼职信息管理界面
5.2.3 职位类型管理界面
5.2.4系统管理界面
5.2.5交流管理界面
6系统测试
6.1系统测试的目的
6.2 系统测试用例
6.3 系统测试结果
结论
参考文献
致 谢
摘要
随着社会经济的发展和学生就业形势的变化,兼职工作逐渐成为广大学生群体的重要选择。本研究旨在搭建一套基于SpringBoot和Vue技术栈的兼职管理系统,旨在为学生、用人单位和学校提供一个高效、便捷的兼职信息交流平台。通过这个系统,学生可以方便地获取兼职信息,用人单位可以高效地发布招聘需求,同时学校也能有效监管和指导学生的兼职活动。这样不仅能缓解学生的经济压力,还能提升他们的实践能力和社会经验。
系统前端采用Vue.js框架,提供灵活且响应迅速的用户体验,确保用户能够快速、方便地浏览兼职信息及进行申请。后端则基于SpringBoot框架,采用RESTful API设计,使得前后端分离的架构更加清晰,同时便于后续的功能扩展和维护。数据库采用MySQL进行数据存储,确保数据的持久性和安全性。在系统开发过程中,还引入了前后端分离的理念,使得用户界面独立于后端服务,提升了系统的可维护性和可扩展性。
本研究成果展示了一个完整的兼职管理系统的设计与实现,具有较高的实用价值和应用前景。系统的建立不仅为学生提供了便捷的兼职信息查询和申请渠道,也为用人单位提供了高效的人才招聘平台。同时,本研究探索了SpringBoot与Vue.js的结合方式,为未来国内教育信息化建设提供了有益的借鉴和参考。通过系统的实施,有助于推动兼职工作的规范化管理,提升学生的社会实践能力,促进学生综合素质的提升。
关键词:兼职管理系统;Spring Boot;Vue;MySQL数据库
Abstract
The front-end of the system uses a Vue.js framework to provide a flexible and responsive user experience, ensuring that users can quickly and easily browse part-time job information and apply. The backend is based on the SpringBoot framework and adopts a RESTful API design, which makes the front-end and backend separation architecture clearer, and at the same time facilitates subsequent function expansion and maintenance. The database uses MySQL for data storage to ensure data durability and security. In the process of system development, the concept of front-end and back-end separation is also introduced, so that the user interface is independent of the back-end service, and the maintainability and scalability of the system are improved.
The research results show the design and implementation of a complete part-time management system, which has high practical value and application prospects. The establishment of the system not only provides students with convenient part-time information inquiry and application channels, but also provides an efficient talent recruitment platform for employers. At the same time, this study explores the combination of SpringBoot and Vue.js, which provides a useful reference for the future construction of education informatization in China. Through the implementation of the system, it will help to promote the standardized management of part-time work, improve students' social practice ability, and promote the improvement of students' comprehensive quality.
Keywords:Part-time management system; Spring Boot;Vue;MySQL database
1 绪论
在当今社会,伴随着经济的快速发展和大学生人数的持续增加,兼职工作已经成为广大高校学生的重要选择。根据统计数据,超过70%的大学生在校期间参与过兼职,除了可以缓解家庭经济压力,更重要的是能够提升自身的实践能力和社会适应能力。然而,学生们在寻找兼职工作时常常面临信息不对称、招聘信息不透明等问题。因此,搭建一个高效的兼职管理系统显得尤为重要。
传统的兼职信息沟通方式往往依赖于线下的招聘会、公告栏以及社交媒体,这不仅效率低下,还存在信息滞后、真假信息交杂的问题。随着信息技术的进步,基于互联网的管理系统能够有效解决这些问题。利用SpringBoot和Vue技术栈,可以构建出一个高效、可扩展且用户友好的兼职管理平台,帮助学生和雇主之间建立直接的联系。
此外,当前疫情背景下,远程兼职成为了新的趋势,学生对在线兼职的需求急剧增加。一个拥有高效搜索、发布与管理功能的系统将极大地满足这一市场需求。通过对大学生群体的深入研究,我们发现他们更加倾向于使用便捷的平台来寻找和管理自己的兼职工作。因此,基于SpringBoot和Vue的兼职管理系统具有极大的实用价值。通过该系统的设计与实现,能够为后续类似项目提供经验借鉴,推动基于互联网的管理系统在其他领域的应用。
1.2国内外研究现状
我国的兼职市场逐渐壮大,尤其在高校校园、服务行业及电商平台等领域,兼职工作被广泛接受。许多研究者开始关注兼职管理系统的需求分析,探讨其在不同行业、不同规模企业中的应用潜力。近年来,国内一些高校和研究机构对兼职管理系统的架构进行了研究,主要分为前端展示、后端管理和数据库三大部分。通过模块化设计,系统支持多种业务需求,如招聘管理、工作安排、考勤记录等。这些研究通常采用MVC设计模式,从而增强系统的可维护性与扩展性。
随着互联网与移动技术的迅猛发展,许多兼职管理系统开始结合云计算、移动应用及大数据分析等技术。研究者探讨了如何利用云平台实现数据的集中管理,提升系统的访问速度和安全性。此外,移动端的应用也日益受到关注,通过APP形式,兼职人员可方便地获取工作信息与进行交流。针对兼职管理系统的用户体验进行研究的学者逐渐增多。通过用户访谈、调查问卷等方式,分析了兼职人员与用人单位在使用系统时的痛点,并提出了相应的改进建议,以提升系统的交互设计和服务质量。这些研究成果为进一步优化系统功能、提升用户满意度提供了理论支持。
在欧美等发达国家,兼职工作早已成为一种常态。根据相关研究,兼职工作不仅可以为劳动市场提供灵活性,帮助企业降低成本,还能满足个人追求多元收入的需求。因此,许多国家的政府及学术界开始重视兼职管理系统的建设与发展。国外关于兼职管理系统的研究在系统架构和技术应用上相对成熟,尤其是在软件工程和人机交互等领域。多项研究表明,通过引入先进的人工智能技术,可以实现更加智能化的工作安排和人员调度,提高管理效率。同时,区块链技术的应用也逐渐受到关注,研究者探讨了其在数据透明化与安全性方面的优势。伴随兼职市场的发展,国外对兼职管理系统的标准化与规范化研究日益增多。一些国家和国际组织如IEEE和ISO,开始制定相关的标准与指导原则,以优质的管理体系促进兼职管理的健康发展。这些研究为各类兼职平台制定合理的操作规范和政策提供了理论支持。国外研究者普遍关注用户行为分析,借助大数据技术对兼职人员的需求、偏好与行为进行深入剖析。这些研究可以为平台优化工作推荐、提升用户粘性和满意度提供依据。通过机器学习和数据挖掘等技术,募集反馈信息,分析用户使用习惯,可以有效提升兼职管理系统的适应性与用户体验。
兼职管理系统作为现代人力资源管理的重要组成部分,其研究与实践在国内外均取得了一定的成效。通过对国内外研究现状的梳理与分析,可以看出,未来的研究和发展的潜力巨大,尤其在技术应用、系统优化与用户体验提升等方面。随着兼职工作需求的日益攀升,相信兼职管理系统的研究将迎来新的机遇与挑战。
(1)需求分析和设计:首先分析用户需求,明确系统的功能和界面设计,制定详细的功能需求文档和系统设计文档。
(2)数据库设计和表结构设计:设计系统的数据库结构,包括用户表、兼职信息表、兼职报名表等,并进行数据库的创建和表结构的设计工作。
(3)前端界面开发:根据系统设计文档,使用HTML、CSS和JavaScript开发系统的前端界面,包括用户注册和登录界面、兼职信息浏览界面和报名界面等。
(4)后端逻辑开发:接着将使用Java和Spring Boot框架开发系统的后端逻辑,包括用户注册和登录接口、兼职信息查询接口和报名管理接口等。
(5)单元测试:在功能开发完成后,将进行单元测试,确保系统的功能符合预期,并修复可能存在的问题。
(6)系统集成和验收测试:最后,我将进行系统集成和验收测试,确保系统的各个组件能够正确地协同工作,并验证系统的各项功能是否满足用户需求。
1.4论文结构与章节安排
论文将分层次经行编排,除去论文摘要致谢文献参考部分,正文部分还会对系统需求做出分析,以及阐述大体的设计和实现的功能,最后罗列部分调测记录,论文主要架构如下:
第一章:引言。第一章主要介绍了课题研究的背景和意义,系统开发的国内外研究现状和本文的研究内容与主要工作,以及相关开发技术与工具介绍。
第二章:相关技术介绍。主要对本系统使用的相关技术和开发环境进行介绍。
第三章:系统需求分析。主要从系统的用户、功能等方面进行需求分析。
第四章:系统设计。主要对系统框架、系统功能模块、数据库进行功能设计。
第五章:系统实现。主要介绍了系统框架搭建、系统界面的实现。
第六章:系统测试。主要对系统的部分界面进行测试并对主要功能进行测试
2 开发环境及相关技术介绍
MySQL是一种流行的开源关系型数据库管理系统,被广泛应用于Web应用程序的数据存储和管理。它具有高性能、稳定可靠和良好的扩展性。在兼职管理系统中,MySQL数据库将用于存储和管理兼职信息、用户数据、报名记录等相关数据。通过使用SQL语言进行数据操作和查询,我们可以实现对数据的增删改查操作,并保证数据的一致性和完整性。
Tomcat是一种免费的服务器,它能够有效地处理大量的网络访问,特别是在访问量较少的情况下。当将Tomcat安装在电脑上时,它能够自动分析前端HTML页面的请求,从而提高网络的性能。事实上,Tomcat是对Apache的一种延伸,但它与Apache之间的关系更加紧密,因为它们在不同的进程中运行,而且它们之间也有着自己的独立性。
Java是一种跨平台的高级编程语言,具有广泛应用于各个领域的优势。它拥有简单易学、可靠稳定、安全性强和良好的性能等特点。在基于SpringBoot框架的兼职管理系统中,Java将作为主要的后端编程语言来实现系统的核心功能。通过使用Java,我们可以实现数据的处理、业务逻辑的编写以及与前端界面的交互。同时,Java还提供了丰富的类库和开发工具,方便开发人员进行系统设计和开发。
Spring Boot框架是一个强大且灵活的Java开发框架,它以简化Spring应用开发为目标,通过自动配置、内嵌容器等特性,显著降低了项目的配置和部署难度。在兼职管理系统开发中,Spring Boot框架的应用显得尤为重要。它不仅能够快速构建出稳定可靠的应用系统,还提供了丰富的功能组件和扩展接口,方便开发者根据实际需求进行定制和优化。此外,Spring Boot还具备出色的性能和扩展性,能够应对大规模并发请求和复杂业务场景。因此,在兼职管理系统的开发中,选择Spring Boot框架不仅能够提升开发效率,还能够为系统的稳定运行和持续发展提供有力保障。
Vue(读音/vjuː/,相似于view)是一种具有高度灵活性的JavaScript架构,能够从基础到顶级,从低到高地实现多种功能,从而创造出一个完整的、高效的用户体验。Vue的核心库专注于视觉表示,它的操作简单,并且可以轻松地将其与其他第三方库和已存在的项目进行集成。此外,Vue可以通过搭配先进的工具和多样的支撑性库,来实现对复杂的网站(SPA)的高效管理。
Vue.Vue作为一种逐步改善的用户体验的框架,具备了独特的优势:首先,它的基础结构更加简单,而且可以轻松地被更多的人使用,而Vue的核心库则更加专注于视觉层,可以轻松地被更多的人使用,也可以被更多的库和现成的项目所使用。Vue 具备强大的功能,可以利用其内置的多个文档组件以及其强大的生态系统,来实现更加精简、高效的单页应用。
Vue.js 旨在通过最少的 API ,实现对数据的有效绑定,并将其转换为多种形式的视图组件。
Vue.js 虽然不是一个完美的框架,但它可以帮助我们更好地理解和实现复杂的页面应用。它的视图层特性使得它更容易学习,并且可以与其他库或已有项目进行整合,从而提高效率。
3系统分析
系统分析是开发一个项目的先决条件,通过系统分析可以很好的了解系统的主体用户的基本需求情况,同时这也是项目的开发的原因。进而对系统开发进行可行性分析,通常包括技术可行性、经济可行性等,可行性分析同时也是从项目整体角度进行的分析。然后就是对项目的具体需求进行分析,分析的手段一般都是通过用户的用例图来实现。接下来会进行详细的介绍。
3.1.2 经济可行性分析
系统从法律层面上来没有对第三方有其他法律层面的问题,系统数据库采用的MySQL 开源社区数据库、框架采用的是开源的Spring Boot。系统资讯和相关内容也是符合法律层面的。在源码的管理上采用git开源进行管理,所以在法律可行性上是成立的。
3.2 系统流程分析
管理员和企业用户可以对兼职信息等进行信息的添加,用户可以对自己权限内的信息进行添加,输入信息后,系统会自行验证输入的信息和数据,若信息正确,会将其添加到数据库内,若信息有误,则会提示重新输入信息,添加信息流程如图3-1所示。
图3-1添加信息流程图
3.2.2 修改信息流程
管理员和企业用户可以对兼职信息等进行的修改,用户可以对自己权限内的信息进行修改,首先进入修改信息界面,输入修改信息数据,系统进行数据的判断验证,修改信息合法则修改成功,信息更新至数据库,信息不合法则修改失败,重新输入。修改信息流程图如图3-2所示。
图3-2修改信息流程图
3.2.3 删除信息流程
管理员可以对兼职信息等进行信息的删除,对要删除的信息进行选中后,点击删除按钮,系统会询问是否确定,若点击确定,则系统会删除掉选中的信息,并在数据库内对信息进行删除,删除信息流程图如图3-3所示。
图3-3删除信息流程图
按照兼职管理系统的角色,划分为了学生用户模块、企业用户模块和管理员模块这三大部分。
(1)注册登录:游客可以随时进入到系统中,对系统中的信息浏览,但是想要实现兼职报名和兼职报名信息操作,就必须有这个系统的账号,如果没有账号的话,可以注册用户进行相关的操作,同时用户还可以通过“用户”这以按钮对个人信息以及操作的信息进行管控。
(2)兼职管理系统的首页信息包含了首页、交流论坛、通知公告、兼职信息、我的账户、个人中心等。
(3)交流论坛:用户点击“交流论坛”菜单显示所有的交流论坛信息,可以按照分类查看帖子信息,或者输入关键词进行局部搜索,点击可以进入帖子的详细展示界面,在此界面用户可以点赞、收藏、评论,也可以点击“发布内容”输入帖子信息进行发帖。
(4)通知公告:当用户点击“通知公告”这一菜单按钮,会显示管理员在后台发布的所有的通知公告,可以查看详情。
(5)兼职信息:当用户点击“兼职信息”这一菜单按钮,会显示企业用户和管理员发布的所有兼职信息,可以查看详情,进行报名、点赞、评论和收藏等。
(6)我的账户:在前台点击“我的”下面的“我的账户”可以对个人资料、密码修改信息进行管控。
(7)个人中心:学生用户在前台点击“个人中心”可以对个人首页、兼职报名、面试通知、交流论坛和自己收藏的信息进行管理。
企业用户模块:
(1)个人信息:当企业用户点击“个人信息”按钮,可以对个人的头像、昵称等信息进行更新。
(2)修改密码:企业用户点击“修改密码”按钮,可以对登录密码进行更改,首先输入原密码,然后再输入新密码和确认密码,当原密码正确,输入两次新密码一致,则修改成功,否则给出错误提示信息。
(2)查看兼职管理系统的首页信息:兼职管理系统的首页信息包含了首页、交流论坛、通知公告、兼职信息、我的账户、个人中心等。
(3)我的账户:在前台点击“我的”下面的“我的账户”可以对个人资料、密码修改信息进行管控。
(4)个人中心:企业用户在前台点击“个人中心”可以对个人首页、兼职信息、兼职报名、面试通知、交流论坛和自己收藏的信息进行管理。
管理员模块:
(1)系统用户:管理员可以对系统中所有的用户角色进行管控,包含了管理员、学生用户、企业用户角色,如果需要添加新的用户,点击页面中的“添加”按钮根据提示输入上用户信息,点击“提交”以后在对应的用户界面就可以查看到了,可以点击用户后面的“删除”按钮直接删除某一用户。
(2)兼职信息管理:管理具体招聘的详细信息,包括招聘标题、职位类型、岗位要求、薪资范围、企业用户、企业名称、企业电话、企业地址、企业规模、招聘详情等信息,确保准确的兼职信息管理和兼职报名控制。
(3)职位类型管理:管理员点击“职位类型管理”菜单可以对兼职的分类信息进行增删改查。
(4)兼职报名管理:查看和管理系统所有用户的兼职报名信息,包括查询、添加、重置、删除等操作,确保用户报名的真实性。
(7)面试通知管理:管理员点击“面试通知管理”会显示出系统所有的面试通知,支持增删改查。
(8)系统管理:管理员点击“系统管理”菜单可以对首页展示的轮播图进行管理。
(9)通知公告管理:管理员点击“通知公告管理”菜单可以查看到系统中的所有通知公告信息,对已经存在的通知公告,管理员可以修改,也可以添加新的通知公告或者删除通知公告。
(10)交流管理:管理员可以对系统前台展示的交流论坛以及交流论坛所属的分类进行管控。
3.3.2 非功能性分析
非功能性分析旨在评估兼职管理系统的非功能需求和性能要求。通过对性能、可靠性、安全性、可用性和扩展性等方面进行评估,确保平台能够满足用户和系统运行的要求。具体可以表示在如下3-1表格中:
表3-1兼职管理系统非功能需求表
非功能性要求 | 说明 |
性能 | 评估响应时间、并发用户数、吞吐量等指标,以确保平台稳定高效地运行。 |
可靠性 | 评估系统的稳定性、容错能力和数据完整性,保障系统在故障情况下正常运行。 |
安全性 | 评估用户身份认证、数据加密和访问控制等,保护用户信息和交易的安全。 |
可用性 | 评估系统的稳定性、故障处理能力和用户界面友好性,提供良好的用户体验。 |
扩展性 | 评估系统的可扩展性和灵活性,以便根据需求进行功能扩展和升级。 |
3.4 系统用例分析
系统用例分析是对兼职管理系统中各个功能模块的用户需求和行为进行分析,以识别和描述不同的用户用例。通过系统用例分析,可以深入了解用户在平台上的操作流程和交互方式,为系统设计和开发提供指导,并确保平台能够满足用户的需求和期望。
学生用户角色用例如图3-4所示。
图3-4 学生用户角色用例图
企业用户角色用例如图3-5所示。
图3-5 企业用户角色用例图
管理员角色用例如图3-6所示。
图3-6管理员角色用例图
本章主要通过对兼职管理系统的可行性分析、流程分析、功能需求分析、系统用例分析,确定整个系统要实现的功能。同时也为系统的代码实现和测试提供了标准。
4 系统总体设计
本系统从架构上分为三层:表现层(UI)、业务逻辑层(BLL)以及数据层(DL)。
图4-1系统架构设计图
表现层(UI):又称UI层,主要完成本系统的UI交互功能,一个良好的UI可以打打提高用户的用户体验,增强用户使用本系统时的舒适度。UI的界面设计也要适应不同版本的兼职管理系统以及不同尺寸的分辨率,以做到良好的兼容性。UI交互功能要求合理,用户进行交互操作时必须要得到与之相符的交互结果,这就要求表现层要与业务逻辑层进行良好的对接。
业务逻辑层(BLL):主要完成本系统的数据处理功能。用户从表现层传输过来的数据经过业务逻辑层进行处理交付给数据层,系统从数据层读取的数据经过业务逻辑层进行处理交付给表现层。
数据层(DL):由于本系统的数据是放在服务端的mysql数据库中,因此本属于服务层的部分可以直接整合在业务逻辑层中,所以数据层中只有数据库,其主要完成本系统的数据存储和管理功能。
确定各模块后,设计每个模块的功能特点,并提取出各模块的公共部分是至关重要的。这有助于提高系统的可维护性和扩展性,同时减少重复开发工作。通过合理设计功能模块,系统能更高效地满足用户需求,提升用户体验,确保系统的稳定运行和管理。其总体设计功能模块图如图4-2所示。
图4-2系统功能模块图
数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。
数据库概念结构设计主要涉及数据库的实体和实体之间的关系。通过实体-关系模型或者其他适当的模型,我将定义系统中涉及的各个实体以及它们之间的联系。下面是整个兼职管理系统中主要的数据库表总E-R实体关系图。
图4-3 系统总E-R关系图
数据库逻辑结构设计则是在概念结构的基础上,进行具体的数据库表设计。我们将定义每个表的结构、字段和约束,并建立表与表之间的关系。
表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 | 用户编号: |
表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 | 更新时间: |
表code_token
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | code_token_id | int | 10 | 0 | N | Y | ||
2 | token | varchar | 255 | 0 | Y | N | ||
3 | code | varchar | 255 | 0 | Y | N | 验证码 | |
4 | expire_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 失效时间 |
5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表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: |
表enterprise_users (企业用户)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | enterprise_users_id | int | 10 | 0 | N | Y | 企业用户ID | |
2 | enterprise_name | varchar | 64 | 0 | N | N | 企业名称 | |
3 | enterprise_phone_number | varchar | 16 | 0 | N | N | 企业电话 | |
4 | enterprise_address | varchar | 64 | 0 | N | N | 企业地址 | |
5 | enterprise_scale | varchar | 64 | 0 | Y | N | 企业规模 | |
6 | industry_category | varchar | 64 | 0 | Y | N | 行业类别 | |
7 | license_screenshot | varchar | 255 | 0 | N | N | 证照截图 | |
8 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
9 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
10 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
11 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表forum (论坛)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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]用来搜索指定类型的论坛帖 |
表forum_type (论坛分类)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
表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: |
表interview_notice (面试通知)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | interview_notice_id | int | 10 | 0 | N | Y | 面试通知ID | |
2 | application_number | varchar | 64 | 0 | N | N | 应聘编号 | |
3 | recruitment_title | varchar | 64 | 0 | Y | N | 招聘标题 | |
4 | job_type | varchar | 64 | 0 | Y | N | 职位类型 | |
5 | job_requirements | varchar | 64 | 0 | Y | N | 岗位要求 | |
6 | salary_range | varchar | 64 | 0 | Y | N | 薪资范围 | |
7 | enterprise_users | int | 10 | 0 | Y | N | 0 | 企业用户 |
8 | enterprise_name | varchar | 64 | 0 | Y | N | 企业名称 | |
9 | enterprise_phone_number | varchar | 64 | 0 | Y | N | 企业电话 | |
10 | enterprise_address | varchar | 64 | 0 | Y | N | 企业地址 | |
11 | enterprise_scale | varchar | 64 | 0 | Y | N | 企业规模 | |
12 | applicants | int | 10 | 0 | Y | N | 0 | 应聘人员 |
13 | student_name | varchar | 64 | 0 | Y | N | 学生姓名 | |
14 | grade | varchar | 64 | 0 | Y | N | 年级 | |
15 | gender | varchar | 64 | 0 | Y | N | 性别 | |
16 | major | varchar | 64 | 0 | Y | N | 专业 | |
17 | contact_number | varchar | 16 | 0 | Y | N | 联系号码 | |
18 | skills_and_strengths | varchar | 64 | 0 | Y | N | 技能特长 | |
19 | curriculum_vitae | varchar | 255 | 0 | Y | N | 个人简历 | |
20 | interview_date | date | 10 | 0 | Y | N | 面试日期 | |
21 | remarks_content | text | 65535 | 0 | Y | N | 备注内容 | |
22 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
23 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表job_type (职位类型)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | job_type_id | int | 10 | 0 | N | Y | 职位类型ID | |
2 | job_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 | 更新时间 |
表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 | 更新时间: |
表part_time_job_information (兼职信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | part_time_job_information_id | int | 10 | 0 | N | Y | 兼职信息ID | |
2 | recruitment_title | varchar | 64 | 0 | Y | N | 招聘标题 | |
3 | job_type | varchar | 64 | 0 | Y | N | 职位类型 | |
4 | cover | varchar | 255 | 0 | Y | N | 封面 | |
5 | job_requirements | varchar | 64 | 0 | Y | N | 岗位要求 | |
6 | salary_range | varchar | 64 | 0 | Y | N | 薪资范围 | |
7 | enterprise_users | int | 10 | 0 | Y | N | 0 | 企业用户 |
8 | enterprise_name | varchar | 64 | 0 | Y | N | 企业名称 | |
9 | enterprise_phone_number | varchar | 64 | 0 | Y | N | 企业电话 | |
10 | enterprise_address | varchar | 64 | 0 | Y | N | 企业地址 | |
11 | enterprise_scale | varchar | 64 | 0 | Y | N | 企业规模 | |
12 | recruitment_details | longtext | 2147483647 | 0 | Y | N | 招聘详情 | |
13 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
14 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
15 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
16 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
17 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表part_time_job_registration (兼职报名)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | part_time_job_registration_id | int | 10 | 0 | N | Y | 兼职报名ID | |
2 | application_number | varchar | 64 | 0 | Y | N | 应聘编号 | |
3 | recruitment_title | varchar | 64 | 0 | Y | N | 招聘标题 | |
4 | job_type | varchar | 64 | 0 | Y | N | 职位类型 | |
5 | job_requirements | varchar | 64 | 0 | Y | N | 岗位要求 | |
6 | salary_range | varchar | 64 | 0 | Y | N | 薪资范围 | |
7 | enterprise_users | int | 10 | 0 | Y | N | 0 | 企业用户 |
8 | enterprise_name | varchar | 64 | 0 | Y | N | 企业名称 | |
9 | enterprise_phone_number | varchar | 64 | 0 | Y | N | 企业电话 | |
10 | enterprise_address | varchar | 64 | 0 | Y | N | 企业地址 | |
11 | enterprise_scale | varchar | 64 | 0 | Y | N | 企业规模 | |
12 | applicants | int | 10 | 0 | Y | N | 0 | 应聘人员 |
13 | student_name | varchar | 64 | 0 | Y | N | 学生姓名 | |
14 | grade | varchar | 64 | 0 | Y | N | 年级 | |
15 | gender | varchar | 64 | 0 | Y | N | 性别 | |
16 | major | varchar | 64 | 0 | Y | N | 专业 | |
17 | contact_number | varchar | 16 | 0 | Y | N | 联系号码 | |
18 | skills_and_strengths | varchar | 64 | 0 | Y | N | 技能特长 | |
19 | throwing_date | date | 10 | 0 | Y | N | 投掷日期 | |
20 | curriculum_vitae | varchar | 255 | 0 | Y | N | 个人简历 | |
21 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
22 | examine_reply | varchar | 16 | 0 | Y | N | 审核回复 | |
23 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
24 | 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已取消 |
表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 | N | N | 学生姓名 | |
3 | grade | varchar | 64 | 0 | Y | N | 年级 | |
4 | gender | varchar | 64 | 0 | Y | N | 性别 | |
5 | major | varchar | 64 | 0 | Y | N | 专业 | |
6 | contact_number | varchar | 16 | 0 | Y | N | 联系号码 | |
7 | skills_and_strengths | varchar | 64 | 0 | Y | N | 技能特长 | |
8 | job_recommendation | varchar | 64 | 0 | Y | N | 职位推荐 | |
9 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
10 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
12 | 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 | 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 | 更新时间: |
整个兼职管理系统的需求分析主要对系统总体架构以及功能模块的设计,通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。
5系统关键模块设计与实现
系统关键模块设计与实现是系统开发中的核心任务。通过分析需求,设计和实现关键模块,确保系统功能的完整性和稳定性。在设计过程中,需要考虑模块之间的交互和数据流动,合理选择技术和框架,并进行测试和优化,以确保关键模块的高效运行和用户满意度。
前台首页界面是用户访问系统的入口页面,它应该展示平台的主要功能和特色,并提供导航链接以便用户浏览和搜索兼职。首页界面的设计应注重页面的美观性和用户体验,同时也需要考虑页面的加载速度和响应性能。当进入兼职管理系统的时候,首先映入眼帘的是系统的导航栏,其主界面展示如下图5-1所示。
图5-1 首页界面图
5.1.2 注册界面
注册模块满足用户两部分,当用户想要进行资料相关信息的查询管理的时候,就必须进行登录,如果没有账号的话,在登录界面,点击“注册”按钮就会跳转到注册的界面,根据提示填写好注册信息,添加提交,注册的信息在数据库中就添加完成了,然后再输入填写好的账号和密码进行登录,其注册主界面展示如下图5-2所示。
图5-2 用户注册界面图
/**
* 注册
* @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);
}
5.1.3用户登录界面
兼职管理系统中的注册后的用户是可以通过自己的账户名和密码进行登录的,当用户输入完整的自己的账户名和密码信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到兼职管理系统的首页中;否则将会提示相应错误信息,用户登录界面如下图5-3所示。
图5-3用户登录界面图
/**
* 登录
* @param data
* @param httpServletRequest
* @return
*/
@PostMapping("login")
public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {
log.info("[执行登录接口]");
String username = data.get("username");
String email = data.get("email");
String phone = data.get("phone");
String password = data.get("password");
List resultList = null;
Map<String, String> map = new HashMap<>();
if(username != null && "".equals(username) == false){
map.put("username", username);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}
else if(email != null && "".equals(email) == false){
map.put("email", email);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}
else if(phone != null && "".equals(phone) == false){
map.put("phone", phone);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}else{
return error(30000, "账号或密码不能为空");
}
if (resultList == null || password == null) {
return error(30000, "账号或密码不能为空");
}
//判断是否有这个用户
if (resultList.size()<=0){
return error(30000,"用户不存在");
}
User byUsername = (User) resultList.get(0);
Map<String, String> groupMap = new HashMap<>();
groupMap.put("name",byUsername.getUserGroup());
List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));
if (groupList.size()<1){
return error(30000,"用户组不存在");
}
UserGroup userGroup = (UserGroup) groupList.get(0);
//查询用户审核状态
if (!StringUtils.isEmpty(userGroup.getSourceTable())){
String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());
if (res==null){
return error(30000,"用户不存在");
}
if (!res.equals("已通过")){
return error(30000,"该用户审核未通过");
}
}
//查询用户状态
if (byUsername.getState()!=1){
return error(30000,"用户非可用状态,不能登录");
}
String md5password = service.encryption(password);
if (byUsername.getPassword().equals(md5password)) {
// 存储Token到数据库
AccessToken accessToken = new AccessToken();
accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));
accessToken.setUser_id(byUsername.getUserId());
Duration duration = Duration.ofSeconds(7200L);
redisTemplate.opsForValue().set(accessToken.getToken(), accessToken,duration);
// 返回用户信息
JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));
user.put("token", accessToken.getToken());
JSONObject ret = new JSONObject();
ret.put("obj",user);
return success(ret);
} else {
return error(30000, "账号或密码不正确");
}
}
当访客点击兼职管理系统中导航栏上的“交流论坛”后将会进入到该“交流论坛”列表的界面,然后选择想要看的交流论坛,点击进入到详细界面,在详细界面可以收藏+赞+评论等操作。也可以点击发布内容发布新的交流帖子。交流论坛界面如下图5-4所示。
图5-4交流论坛界面图
查询交流论坛的逻辑代码如下所示。
@RequestMapping("/get_obj")
public Map<String, Object> obj(HttpServletRequest request) {
List resultList = service.selectBaseList(service.select(service.readQuery(request), service.readConfig(request)));
if (resultList.size() > 0) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("obj",resultList.get(0));
return success(jsonObject);
} else {
return success(null);
}
5.1.5 兼职信息界面
当用户点击“兼职信息”后,会进入兼职信息列表,点击任意兼职信息,可以查看兼职信息详情,浏览兼职图片、查看评论,并可进行报名、点赞、收藏、发表评论等操作。兼职信息详情界面如下图5-5所示。
图5-5兼职信息界面图
查询兼职信息信息的逻辑代码如下所示。
@RequestMapping("/get_obj")
public Map<String, Object> obj(HttpServletRequest request) {
List resultList = service.selectBaseList(service.select(service.readQuery(request), service.readConfig(request)));
if (resultList.size() > 0) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("obj",resultList.get(0));
return success(jsonObject);
} else {
return success(null);
}
企业发布兼职信息界面如下图5-6所示。
图5-6企业发布兼职信息界面图
添加兼职信息的逻辑代码如下所示。
@PostMapping("/add")
@Transactional
public Map<String, Object> add(HttpServletRequest request) throws IOException {
service.insert(service.readBody(request.getReader()));
return success(1);
}
public Map<String, Object> addMap(Map<String,Object> map){
service.insert(map);
return success(1);
}
学生用户兼职报名界面如下图5-6所示。
图5-6学生用户兼职报名界面图
企业用户审核兼职报名界面如下图5-7所示。
图5-7企业用户审核兼职报名界面图
学生用户可对自己的个人首页、兼职报名、面试通知、交流论坛、收藏等信息进行管控和查阅信息详情。例如,可在个人首页修改个人资料;可查看自己的兼职报名信息和面试通知信息,以及交流信息和删除自己收藏的信息。学生用户个人中心界面如下图所示。
图5-8 学生用户个人中心界面图
企业用户可对自己的个人首页、兼职信息、兼职报名、面试通知、交流论坛、收藏等信息进行管控和查阅信息详情。企业用户个人中心界面如下图所示。
图5-9 企业用户个人中心界面图
管理员管理用户信息、权限和行为。用户管理包括用户注册、登录、身份验证、权限控制、用户信息修改等操作。管理员可以查看和编辑用户信息,重置密码,激活或停用账户等。通过用户管理,系统可以确保数据安全性和用户身份真实性,同时实现个性化服务和定制化推荐。良好的用户管理设计能够简化用户操作流程,提高系统安全性和用户满意度,同时为系统运营提供有效支持。界面如下图5-10所示。
图5-10系统用户管理界面图
修改用户信息关键代码如下:
@PostMapping("/set")
@Transactional
public Map<String, Object> set(HttpServletRequest request) throws IOException {
service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader()));
return success(1);
}
管理员点击“兼职信息管理”会显示出所有的兼职信息,支持输入招聘标题或职位类型对兼职信息进行查询,也可以添加新的兼职信息,对兼职信息的评论进行管控。兼职信息管理界面如下图5-11所示。
图5-11兼职信息管理界面图
管理员点击“职位类型”可以查看到所有的职位类型类型,可以对其进行增删改查操作。职位类型管理界面如下图5-12所示。
图5-12职位类型管理界面图
5.2.4系统管理界面
管理员点击“系统管理”这一菜单可以对前台展示的轮播图信息进行设置,轮播图管理界面如下图5-13所示。
图5-13轮播图管理界面图
轮播图上传关键代码如下所示。
@PostMapping("/upload")
public Map<String, Object> upload(@RequestParam("file") MultipartFile file) {
log.info("进入方法");
if (file.isEmpty()) {
return error(30000, "没有选择文件");
}
try {
//判断有没路径,没有则创建
String filePath = System.getProperty("user.dir") + "/src/main/resources/static/";
File targetDir = new File(filePath);
if (!targetDir.exists() && !targetDir.isDirectory()) {
if (targetDir.mkdirs()) {
log.info("创建目录成功");
} else {
log.error("创建目录失败");
}
}
String fileName = file.getOriginalFilename();
File dest = new File(filePath + fileName);
log.info("文件路径:{}", dest.getPath());
log.info("文件名:{}", dest.getName());
file.transferTo(dest);
JSONObject jsonObject = new JSONObject();
jsonObject.put("url", "/api/upload/" + fileName);
return success(jsonObject);
} catch (IOException e) {
log.info("上传失败:{}", e.getMessage());
}
return error(30000, "上传失败");
管理员点击“交流管理”菜单能够对兼职管理系统内的交流论坛帖子及其所属论坛分类信息进行增删改查。交流管理界面如下图5-14所示。
图5-14交流管理界面图
6系统测试
系统开发到了最后一个阶段那就是系统测试,系统测试对软件的开发其实是非常有必要的。因为没什么系统一经开发出来就可能会尽善尽美,再厉害的系统开发工程师也会在系统开发的时候出现纰漏,系统测试能够较好的改正一些bug,为后期系统的维护性提供很好的支持。通过系统测试,开发人员也可以建立自己对系统的信心,为后期的系统版本的跟新提供支持。
系统测试包括:用户登录功能测试、兼职信息查看功能测试、兼职报名添加、交流论坛搜索、密码修改功能测试,如表6-1、6-2、6-3、6-4、6-5所示:
表6-1 用户登录功能测试表
用例名称 | 用户登录系统 |
目的 | 测试用户通过正确的用户名和密码可否登录功能 |
前提 | 未登录的情况下 |
测试流程 | 1) 进入登录页面 2) 输入正确的用户名和密码 |
预期结果 | 用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入 |
实际结果 | 实际结果与预期结果一致 |
兼职信息查看功能测试:
表6-2兼职信息查看功能测试表
用例名称 | 兼职信息查看 |
目的 | 测试兼职信息查看功能 |
前提 | 用户登录 |
测试流程 | 点击兼职信息列表 |
预期结果 | 可以查看到所有兼职信息 |
实际结果 | 实际结果与预期结果一致 |
用户添加兼职报名界面测试:
表6-3 用户添加兼职报名界面测试表
用例名称 | 兼职报名添加测试用例 |
目的 | 测试兼职报名添加功能 |
前提 | 用户正常登录情况下 |
测试流程 | 1)用户点击兼职信息,点击兼职报名后并填写信息。 2)点击进行提交。 |
预期结果 | 提交以后,页面首页会显示新的兼职报名信息 |
实际结果 | 实际结果与预期结果一致 |
交流论坛搜索功能测试:
表6-4交流论坛搜索功能测试表
用例名称 | 交流论坛搜索测试 |
目的 | 测试交流论坛搜索功能 |
前提 | 无 |
测试流程 | 1)在搜索框填入搜索关键字。 2)点击搜索按钮。 |
预期结果 | 页面显示包含有搜索关键字的交流论坛 |
实际结果 | 实际结果与预期结果一致 |
密码修改功能测试:
表6-5 密码修改功能测试表
用例名称 | 密码修改测试用例 |
目的 | 测试管理员密码修改功能 |
前提 | 管理员用户正常登录情况下 |
测试流程 | 1)管理员密码修改并完成填写。 2)点击进行提交。 |
预期结果 | 使用新的密码可以登录 |
实际结果 | 实际结果与预期结果一致 |
通过编写兼职管理系统的测试用例,已经检测完毕用户登录功能测试、兼职信息查看功能测试、兼职报名添加、交流论坛搜索、密码修改功能测试,通过这5大模块为兼职管理系统的后期推广运营提供了强力的技术支撑。
结论
通过本文的研究和实践,我们成功地基于SpringBoot和Vue框架设计并实现了一个兼职管理系统。该平台具有稳定、高效、可靠的特点,通过合理的功能模块设计和前后端分离的架构,提供了良好的用户体验。在系统测试中,验证了系统的稳定性和功能完整性,表明SpringBoot和Vue框架在快速开发和高质量软件构建方面具有显著优势。
本文的研究结果表明,使用SpringBoot和Vue框架能够快速开发出高效可靠的兼职管理系统。该平台通过合理的功能设计和良好的用户体验,提供了便捷的二手物品交易服务,促进了资源的有效利用。同时,SpringBoot和Vue框架的应用也为系统的开发和维护带来了便利。然而,本研究还存在一些不足之处,如对系统安全性和性能优化的考虑不够充分。未来的研究可以进一步完善系统的功能和性能,并探索其他技术和方法的应用,以进一步提升兼职管理系统的质量和用户满意度。
参考文献
[1]李颖.企业招聘培训在人力资源管理体系中的应用价值[J].今日财富,2023,(21):53-55.
[2]张雅茹,孙鑫,张翼鹤等.广电数字化招聘系统的设计与实现[J].中国有线电视,2023,(09):5-10.
[3]沈强.企业员工招聘管理优化策略研究[J].中国中小企业,2023,(07):195-197.
[4]李艳.RF公司猎头招聘体系改进研究[D].西安理工大学,2023.
[5]杨龙腾.医院人才招聘管理工作中的标准化流程[J].中国标准化,2023,(12):228-231.
[6]魏思远.XH公司一线技术人员招聘管理问题及对策研究[D].广西师范大学,2023.
[7]Zhao N .Reflections on Enterprise HR Recruitment Management[J].Academic Journal of Business Management,2023,5(9):
[8]杨乐.企业人才招聘现状与对策分析[J].中国集体经济,2023,(10):117-120.
[9]陈琛,郑亦菲,杨洁等.后疫情时代高校智能就业信息系统的设计和实现[J].电脑知识与技术,2023,19(09):25-27.
[10]潘衡.J酒店员工招聘管理体系研究[D].海南大学,2022.DOI:10.27073/d.cnki.ghadu.2022.000958
[11]陈明红,张倩琳,韩静.信息管理与信息系统专业人才招聘需求分析及培养启示[J].图书馆学研究,2021,(20):9-20.
[12]Cheng F .Talent Recruitment Management System for Small and Micro Enterprises Based on Springboot Framework[J].Advances in Educational Technology and Psychology,2021,5(2):
[13]徐昊.基于网络招聘的信息管理类岗位需求分析及其对人才培养的启示[D].云南大学,2021.
[14]达荣春,刘小英.校企合作信息管理系统的设计与实现[J].电脑知识与技术,2021,17(11):26-28.
[15]王磊.高校校园兼职招聘服务系统设计与实现[D].电子科技大学,2021.
[16]海南省人力资源和社会保障厅关于进一步规范人力资源市场兼职招聘管理的通知[J].海南省人民政府公报,2021,(05):45-46.
[17]史倩玉.基于MVC模式的实时招聘系统的设计[J].信息记录材料,2021,22(03):232-234.
[18]Tianqi W ,Ning L ,Houran L .Design and development of human resource management computer system for enterprise employees.[J].PloS one,2021,16(12):e0261594-e0261594.
[19]张静.新经济时代背景下企业人力资源管理问题剖析与系统设计[J].山西农经,2020,(24):139-140.
[20]霍烨.“互联网+”背景下企业人才招聘模式的优化[J].知识经济,2020,(21):13-14.
致 谢
转眼间,大学生用户活便已经接近尾声,人面对着离别与结束,总是充满着不舍与茫然,我亦如此,仍记得那年秋天,我迫不及待的提前一天到了学校,面对学校巍峨的大门,我心里充满了期待:这里,就是我新生活的起点吗?那天,阳光明媚,学校的欢迎仪式很热烈,我面对着一个个对着我微笑的同学,仿佛一缕缕阳光透过胸口照进了我心里,同时,在那天我认识可爱的室友,我们携手共同度过了这难忘的两年。如今,我望着这篇论文的致谢,不禁又要问自己:现在,我们就要说再见了吗?
感慨莫名,不知所言。遥想当初刚来学校的时候,心里总是想着学校会过于板正,会缺乏一些柔情,当时心里甚至有一点点排斥,但是随着我对学校的慢慢认识与了解,我才认识到了她的美丽,她的柔情,并且慢慢的喜欢上了这个校园,但是时间太快了,快到我还没有好好体会她的美丽便要离开了,但是她带给我的回忆,永远不会离开我,也许真正离开那天我的眼里会满含泪水,我不是因为难过,我只是想将她的样子映在我的泪水里,刻在我的心里。最后,感谢我的老师们,是你们教授了我们知识与做人的道理;感谢我的室友们,是你们陪伴了我如此之久;感谢每位关心与支持我的人。