摘 要

随着经济的全球化以及中国经济改革的逐渐深化,各企业面临着激烈的竞争。而这激烈的竞争很大程度上体现为人才的竞争,我们应该承认,谁能够在这竞争中快速的找到适合自己本企业的人才,谁就能竞争中立于不败之地。因此,构建网上人才交流系统,解决以往人才招聘工作效率低的问题势在必行。

本课题研究的人才交流平台主要采取Mysql作为后台数据的主要存储单元,运用软件工程原理和开发方法,采用Java的SSM框架构建完成。完成系统的主要模块的页面设计和功能实现。本文展示了首页页面的实现效果图,并通过代码和页面介绍了用户注册功能、招聘信息、求职记录和面试通知等功能的实现过程。

关键词:人才交流; SSM;求职申请

Development of SSM talent exchange platform

Abstract

With the economic globalization and the gradual deepening of China's economic reform, enterprises are facing fierce competition. This fierce competition is largely reflected in the competition for talents. We should admit that whoever can quickly find talents suitable for his own enterprise in this competition can be in an invincible position in the competition. Therefore, it is imperative to build an online talent exchange system to solve the problem of low efficiency of talent recruitment in the past.

The talent exchange platform studied in this subject mainly adopts MySQL as the main storage unit of background data, uses the principles and development methods of software engineering, and adopts the SSM framework of Java. Complete the page design and function realization of the main modules of the system. This paper shows the implementation effect of the home page, and introduces the implementation process of user registration function, recruitment information, job search record and interview notice through code and page.

Key words: Talent exchange; SSM; Job application

目  录

第1章 绪论

1.1研究背景

1.2研究内容

1.3论文组成结构

第2章 相关技术介绍

2.1 MVVM模式

2.2 Vue.js介绍

2.3 Mysql数据库

2.4 B/S结构

2.5 SSM框架

2.6Vue.js 主要功能

第3章 系统分析

3.1可行性分析

3.1.1经济可行性

3.1.2技术可行性

3.1.3操作可行性

3.2功能性需求分析

3.3非功能性需求分析

第4章 系统设计

4.1功能模块设计

4.2数据库设计

4.2.1概念模型设计

4.2.2数据库逻辑设计

4.2.3数据库表设计

第5章 系统实现

5.1用户登录的实现

5.2系统前台主要功能实现

5.3系统后台主要功能实现

第6章 系统测试

6.1系统可靠性测试

6.2系统功能性测试

6.3系统合格性测试

6.4测试结果

第7章 总结与展望

参考文献

致谢

  1. 绪论

    1. 研究背景

在当前的市场环境中,随着社会的进步和技术的发展,知识正在发挥着越来越大的作用,市场的竞争在很大程度上体现为人才的竞争。从而。找到合适的人才,成为企业提高竞争力的一项关键任务。同时。当今的市场环境又是一个快速变化的环境,市场需求在变,对人才的需求也相应处于变化之中。如何能快速适应这一变化,提高人才招聘流程的工作效率,进行快速定位,也就成为人才招聘公司/单位需考虑的重要因素。

无论是对于企业的人力资源部门的招聘服务,还是职业中介的跨地域供需信息的沟通,或是对外的劳务输出等等。作为一种服务类型,其服务对象均包含需方驱动特点。其所达到的招聘入员的效率和效果是其存在的价值和理由。对于中介服务的另一个服务对象。即供方,寻求合适工作的各地人士。也同样关注是否能快速获得职位需求信息和条件要求等等。所有这些,都产生着对信息系统的需求。而且也只能通过信息系统才能实现基于对人才招聘市场的理解和需求研。

  1. 研究内容

人才交流平台的开发及实现,所需要的工作内容:

(1)首先是确定选题,确定好所要做的系统,并对系统的背景及现在面临的一些问题等进行系统的初步确认。

(2)系统确认完成后,结合系统开发的需求进行确认系统开发所使用的技术,人才交流平台的开发使用SSM框架,数据库进行平台的搭建开发,确认好使用的技术进行技术分析,所使用的技术是否可以完成系统的实现。

(3)确定好系统使用的技术,进行在线确认系统所划分的用户角色,并且根据用户角色划分确定所要设计的功能模块,对人才交流平台的设计主要划分别为管理员和用户角色,并所使用的功能模块也相应不同,但是系统的数据库实现的内容是交互的,用户可以随时根据自己的需求进行信息查看,对于系统工作人员可以根据自己的分管内容进行在线信息的处理及操作,管理员获取到所有用户的详细数据信息,并根据需求进行第一时间处理解决。

(4)系统的功能模块确认完成后进行程序及界面的设计,设计完成后,并且通过测试来判断程序是否完善,对于系统测试,需要不同的用户进行不同的内容编辑及提交,及使用不同的测试方式找出程序中存在的漏洞,并对程序出现的漏洞问题进行在线解决处理,如果测试系统没有任何问题时,可以将系统上传进行正式操作使用。

  1. 论文组成结构

根据市场调研得到的信息数据,利用相关系统开发和设计方法,最终设计出人才交流平台。

本文共有七章,如下所示。

第一章概述了人才交流平台的研究目的和意义;精炼地总结了领域研究情况和未来的研究趋势,最后给出了论文的组成结构。

第二章简要概述了本文所用的开发技术和工具。

第三章简要对系统各业务流程进行需求分析、可行性分析。

第四章对人才交流平台进行设计。

第五章对人才交流平台进行实现,并贴出相关页面截图,语言描述出具体功能实现的操作方法。

第六章对人才交流平台采用测试用例的方式来对一些主要功能模块测试,最后得出测试结果。

第七章总结全文并对未来的研究做出展望。

  1. 相关技术介绍

    1. MVVM模式

MVVM是Model-View-ViewModel的简写。它本质上就是MVVM 的改进版。MVVM 就是将其中的View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开。当然这些事 ViewModel 已经帮我们做了,它可以取出 Model 的数据同时帮忙处理 View 中由于需要展示内容而涉及的业务逻辑。微软的WPF带来了新的技术体验,如Silverlight、音频、视频、3D、动画……,这导致了软件UI层更加细节化、可定制化。同时,在技术层面,WPF也带来了 诸如Binding、Dependency Property、Routed Events、Command、DataTemplate、ControlTemplate等新特性。MVVM(Model-View-ViewModel)框架的由来便是MVP(Model-View-Presenter)模式与WPF结合的应用方式时发展演变过来的一种新型架构框架。它立足于原有MVP框架并且把WPF的新特性糅合进去,以应对客户日益复杂的需求变化。

  1. Vue.js 介绍:

Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式JavaScript框架。与其它大型框架不同的是,Vue被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用(SPA)提供驱动。

  1. Mysql数据库

科技的进步,给日常带来许多便利:教室的投影器用到了虚拟成像技术,数码相机用到了光电检测技术,比如超市货物进出库的记录需要一个信息仓库。这个信息仓库就是数据库,而这次的养老院管理系统也需要这项技术的支持。

用MySQL这个软件,是因为它能接受多个使用者访问,而且里面存在Archive等。它会先把数据进行分类,然后分别保存在表里,这样的特别操作就会提高数据管理系统自身的速度,让数据库能被灵活运用。MySQL的代码是公开的,而且允许别人二次编译升级。这个特点能够降低使用者的成本,再搭配合适的软件后形成一个良好的网站系统。虽然它有缺点,但是综合各方面来说,它是使用者的主流运用的对象。

  1. B/S结构

B/S(Browser/Server)比前身架构更为省事的架构。它借助Web server完成数据的传递交流。只需要下载浏览器作为客户端,那么工作就达到“瘦身”效果, 不需要考虑不停装软件的问题。

  1. SSM框架

SSM即SpringMVC+Spring+Mybatis,这三个框架有各自最独有的优势,那么将它们组合在一起能够碰撞出很强的火花.设计者在不需消耗大量功夫,能做出Web应用程序,而且这个程序还具有层次清晰、升级更新操作不影响正常使用的、允许多次使用的特点.这个复合框架形成一个有着结构完整、功能强大和结构良好的体系:SpringMVC使各板块分离,Spring使开发更灵活方便,使用Mybatis让开发者直接对对象进行操纵,各层次分工明细,并实现各个层次间的解耦,让代码更加的灵活精简.这个框架使程序员能够规避在开发时期避免个别错误导致整体被破坏,也能在后期应对客户对产品提出的新需求.

  1. Vue.js 主要功能

Vue.js是一套构建用户界面的渐进式框架。与其他重量级框架不同的是,Vue采用自底向上增量开发的设计。Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合。另一方面,Vue 完全有能力驱动采用单文件组件和Vue生态系统支持的库开发的复杂单页应用。

Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。

Vue.js 自身不是一个全能框架——它只聚焦于视图层。因此它非常容易学习,非常容易与其它库或已有项目整合。另一方面,在与相关工具和支持库一起使用时,Vue.js 也能驱动复杂的单页应用。

  1. 系统分析

    1. 可行性分析

本系统将在经济、技术、操作这三个角度上进行可行性分析。

  1. 经济可行性

整个系统从设计到开发以及测试过程严谨步骤齐全,所有工作任务全部由本人完成,并未获取外部技术支持,节约了一切服务成本开销以及人工成本,在硬件方面,为节约成本使用一台二手移动工作站作为项目部署服务器以及数据库服务器,成本在一万元一下,真个网络部署也是由本人独立完成不涉及到其他人工费用,整个开发过程本着低成本,低消耗的原则。

  1. 技术可行性

技术可行性分析的目的是确认该系统能否利用现有技术实现,并评估开发效率和完成情况。技术的可行性是指在当前的技术条件下,计算机软件和硬件的开发是否能够满足发展的要求。因为该系统的开发基于SSM框架,所以开发该系统所需的软件和硬件条件可以在普通计算机上满足。因为它占用的内存相对较少,所以用Mysql数据库开发和设计软件理论上没有问题,因为它占用的内存太少。上述技术可以有效地保证系统的成功和高效开发。

  1. 操作可行性

人才交流平台的使用界面简单易于操作,采用常见的界面窗口来登录界面,通过电脑进行访问操作,用户只要平时使用过电脑都能进行访问操作。此系统的开发采用SSM框架开发,人性化和完善化是B/S结构开发比较显要的特点使得用户操作相比较其他更加简洁方便。易操作、易管理、交互性好在本系统操作上体现得淋漓尽致。

  1. 功能性需求分析

前台需求:

(1)用户模块:主要包括用户的注册和登陆、用户个人信息管理和用户帐单查询等功能。

(2)公司信息查看模块:主要包括公司简介、名称、规模、公司类型。用户可以查看公司信息介绍等功能。

(3)招聘信息模块:主要用于公司发布招聘信息,包括公司名称、岗位类型、岗位名称、招聘人数、学历要求、薪资待遇等。

(4)面试通知模块:查询面试通知信息。

后台需求:

(1)用户管理:主要包括用户列表、用户数据管理等功能。

(2)招聘信息管理:主要包括公司名称、公司类型、招聘人数、学历要求、工作详情数据项管理等功能。

(3)公司信息管理:主要对企业发布的公司信息数据项管理功能。

系统用例图如下所示。

图3-1系统用例图

招聘信息用例描述如下表所示。

表3-1招聘信息用例描述

用例名称

添加新职位

参与者

管理员

用例概述

本用例用于管理员进行添加新职位操作

前置条件

管理员添加新职位前必须登录系统

后置条件

系统中添加一个新职位

基本事件流

参与者动作

系统响应

  1. 管理员在后台主界面选择“新职位”。

4、管理员填写新职位信息,点击“添加”按钮。

2、系统打开添加新职位界面。

3、系统检查管理员输入的职位信息是正确有效的。

5、系统将招聘信息到数据库中。

6、系统提示“操作成功”。

7、系统跳转到职位管理界面。

其他事件流

1、系统验证管理员输入的职位名为空,则提示“*请填写职位名称!”。

岗位删除用例描述如下表所示。

表3-2岗位删除用例描述

用例名称

删除岗位

参与者

管理员

用例概述

本用例用于管理员进行删除岗位操作

前置条件

管理员删除岗位前必须登录系统

后置条件

系统中删除一个岗位

基本事件流

参与者动作

系统响应

1、管理员在后台主界面选择“岗位管理”。

4、管理员选择一个岗位,点击“删除”按钮。

6、管理员点击“确定”按钮。

2、系统从数据库中获取岗位信息列表

3、系统打开岗位列表界面。

5、系统提示“你确定要删除吗?”。

7、系统将岗位从数据库中删除。

8、系统提示“删除成功”。

9、系统跳转到岗位管理界面。

其他事件流

岗位分类用例描述如下表所示。

表3-3岗位分类用例描述

用例名称

分类岗位

参与者

管理员

用例概述

本用例用于管理员进行分类岗位操作

前置条件

管理员分类岗位前必须登录系统

后置条件

系统中分类一个岗位

基本事件流

参与者动作

系统响应

1、管理员在后台主界面选择“岗位管理”。

4、管理员选择一个岗位,点击“分类”按钮。

6、管理员点击“确定”按钮。

2、系统从数据库中获取岗位信息列表

3、系统打开岗位列表界面。

5、系统提示“你确定要分类吗?”。

7、系统将岗位从数据库中分类。

8、系统提示“分类成功”。

9、系统跳转到岗位管理界面。

其他事件流

用户编辑用例描述如下表所示。

表3-4用户编辑用例描述

用例名称

修改用户

参与者

管理员

用例概述

本用例用于管理员进行修改用户信息操作

前置条件

管理员已经登录系统

后置条件

系统中更新一条用户记录

基本事件流

参与者动作

系统响应

1、管理员在后台主界面选择“用户管理”。

4、管理员在用户列表中选择一个用户,点击“编辑”按钮。

6、管理员填写用户信息,点击“保存修改”按钮。

2、系统从数据库中获取用户信息。

3、系统打开用户列表界面。

5、系统打开修改用户信息界面。

7、系统将更改后的添加到数据库中。

8、系统提示“操作成功”。

9、系统跳转到用户管理界面。

其他事件流

  1. 非功能性需求分析

随着用户量的增加,系统可能会需要同时服务上千、上万个页面,服务器需要同时响应大量用户的操作,这就要求系统需要有良好的可扩展性,否则系统会出现延迟,卡顿甚至服务器崩溃的问题。高扩展性可以使软件保持旺盛的生命力,同时也能够使系统更好的适应用户增加、提高性能需求、增加应用功能等改变。

系统中保存了大量用户和管理员的个人信息,因此,保证系统服务器和数据安全是在开发过程中需要考虑的重要问题。安全性包括服务器安全、操作系统安全、数据库安全、程序代码安全以及用户个人信息安全等,系统可以通过采用防火墙技术、加密技术、认证技术等来增强其安全性,只有一个健壮安全的系统才能具有长久的生命力。

  1. 系统设计

    1. 功能模块设计

通过软件的需求分析已经获得了系统的基本功能需求。根据各大功能模块的不同,将系统分为各种功能大块。系统功能结构如下图所示。

图4-1系统功能结构图

注册/登录

游客(未进行注册或登陆的用户)可以浏览、搜索招聘信息,用户注册首先需要进行表单验证,来验证用户名和手机号码是否合法,然后验证用户名和手机号是否已经存在,验证通过即可注册。

注册成功后,用户可以通过输入用户名来登录系统,输入密码后进行验证。登录成功后,用户可以使用公司信息浏览、职位搜索、应聘中心、留言中心等功能。

个人信息管理

用户登录系统后,在账户设置中,可以修改昵称、头像、手机号、登陆密码、收货地址等个人基本信息。

招聘信息展示

用户在浏览招聘信息时,点击某一个招聘信息,跳转到该招聘信息的展示页。在招聘信息页面展示了招聘信息详情,比如:公司名称、招聘人数、工作类型、学历要求、薪资待遇等,用户通过浏览了解招聘信息的主要内容,最终决定是否投递简历进行职位申请。

岗位列表

管理员可以在“岗位列表”中展示商城中需要销售的岗位,包含岗位名称,岗位属性以及类目等岗位信息。管理员可以对岗位进行搜索,按分类查询岗位。

岗位添加

添加岗位首先需要输入岗位基本信息,如岗位名称、岗位性质、岗位分类等;然后需要编辑岗位信息详情,如公司介绍,岗位描述,岗位性质等。管理员也可以删除已添加的岗位。

岗位分类管理

管理员根据岗位分类编号、岗位详情、岗位性质等基本岗位分类信息进行分类管理。

  1. 数据库设计

    1. 概念模型设计

概念设计包括实体和联系两部分,如该系统中,用户是一个实体,其属性包括用户 ID 标识、用户名、密码、电话、地址等属性。联系是指实体之间有意义的关联,包括一对一、一对多、多对多三种类型。

系统E-R图如下所示。

图4-2系统E-R图

  1. 数据库逻辑设计

针对系统的实体和属性,结合数据设计思想,对系统的逻辑设计的内容进行如下描述。

招聘信息(招聘信息编号、招聘编号、类型、职位名称、学历要求、薪资待遇、工作要求)。

岗位信息(岗位信息编号、岗位名称、公司名称、性质、要求)。

公司信息(公司编号、公司名称、招聘信息、公司介绍)。

  1. 数据库表设计

数据库表是设计和实现系统的一个重要基础。以下列出了人才交流平台几个重要的数据库表。

名称

类型

长度

不是null

主键

注释

job_seekers_id

int

11

求职者ID

user_name

varchar

64

用户姓名

gender

varchar

64

性别

age

varchar

64

年龄

education

varchar

64

学历

school

varchar

64

学校

major

varchar

64

专业

examine_state

varchar

16

审核状态

recommend

int

11

智能推荐

user_id

int

11

用户ID

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

名称

类型

长度

不是null

主键

注释

company_information_id

int

11

公司信息ID

corporate_name

varchar

64

公司名称

company_type

varchar

64

公司类型

company_size_

varchar

64

公司规模

person_in_charge_of_the_company

int

11

公司负责人

contact_information

varchar

64

联系方式

financing_stage

varchar

64

融资阶段

company_cover

varchar

255

公司封面

company_profile

text

0

公司简介

hits

int

11

点击数

praise_len

int

11

点赞数

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

名称

类型

长度

不是null

主键

注释

employment_records_id

int

11

求职记录ID

corporate_name

varchar

64

公司名称

company_type

varchar

64

公司类型

post_name

varchar

64

岗位名称

post_type

varchar

64

岗位类型

number_of_recruits

varchar

64

招聘人数

educational_requirements

varchar

64

学历要求

salary

varchar

64

薪资待遇

person_in_charge_of_the_company

int

11

公司负责人

user_number

int

11

用户编号

user_name

varchar

64

用户姓名

education

varchar

64

学历

school

varchar

64

学校

major

varchar

64

专业

curriculum_vitae

varchar

255

个人简历

position_compliance_status

varchar

64

岗位符合状态

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

名称

类型

长度

不是null

主键

注释

interview_notice_id

int

11

面试通知ID

corporate_name

varchar

64

公司名称

company_type

varchar

64

公司类型

post_name

varchar

64

岗位名称

post_type

varchar

64

岗位类型

person_in_charge_of_the_company

int

11

公司负责人

user_number

int

11

用户编号

user_name

varchar

64

用户姓名

interview_date_and_time

datetime

0

面试日期时间

notice_content

text

0

通知内容

matters_needing_attention

text

0

注意事项

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

名称

类型

长度

不是null

主键

注释

job_classification_id

int

11

岗位分类ID

post_type

varchar

64

岗位类型

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

名称

类型

长度

不是null

主键

注释

recruitment_company_id

int

11

招聘公司ID

corporate_name

varchar

64

公司名称

company_type

varchar

64

公司类型

company_size_

varchar

64

公司规模

person_in_charge_of_the_company

varchar

64

公司负责人

contact_information

varchar

64

联系方式

financing_stage

varchar

64

融资阶段

business_license

varchar

255

营业执照

company_profile

text

0

公司简介

examine_state

varchar

16

审核状态

recommend

int

11

智能推荐

user_id

int

11

用户ID

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

名称

类型

长度

不是null

主键

注释

recruitment_information_id

int

11

招聘信息ID

corporate_name

varchar

64

公司名称

company_type

varchar

64

公司类型

post_name

varchar

64

岗位名称

post_type

varchar

64

岗位类型

number_of_recruits

varchar

64

招聘人数

gender_requirements

varchar

64

性别要求

educational_requirements

varchar

64

学历要求

salary

varchar

64

薪资待遇

type_of_work

varchar

64

工作类型

person_in_charge_of_the_company

int

11

公司负责人

job_details_

text

0

工作详情

hits

int

11

点击数

praise_len

int

11

点赞数

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

  1. 系统实现

    1. 用户登录的实现

用户注册完成后,点击“登陆”进入到登陆页面,输入用户名和密码,点击“登陆”按钮,对用户名和密码进行验证,根据传入的用户名和密码在数据库中是否能查询到一条用户信息,若不能返回用户信息则登陆失败,页面提示用户名或密码错误。

登录界面如下图所示。

图5-1登录界面

用户登录的关键代码如下。

* 登录

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

QueryWrapper wrapper = new QueryWrapper<User>();

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

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, "账号或密码不正确");

}

}

public String select(Map<String,String> query,Map<String,String> config){

StringBuffer sql = new StringBuffer("select ");

sql.append(config.get(FindConfig.FIELD) == null || "".equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" ");

sql.append("from ").append("`").append(table).append("`").append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));

if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){

sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" ");

}

if (config.get(FindConfig.ORDER_BY) != null && !"".equals(config.get(FindConfig.ORDER_BY))){

sql.append("order by ").append(config.get(FindConfig.ORDER_BY)).append(" ");

}

if (config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE))){

int page = config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1;

int limit = config.get(FindConfig.SIZE) != null && !"".equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10;

sql.append(" limit ").append( (page-1)*limit ).append(" , ").append(limit);

}

log.info("[{}] - 查询操作,sql: {}",table,sql);

return sql.toString();

}

public List selectBaseList(String select) {

List<Map<String,Object>> mapList = baseMapper.selectBaseList(select);

List<E> list = new ArrayList<>();

for (Map<String,Object> map:mapList) {

list.add(JSON.parseObject(JSON.toJSONString(map),eClass));

}

return list;

}

  1. 系统前台主要功能实现

    1. 首页的实现

用户界面要尽量简洁大方,使用户能够方便找到需要的功能入口,浏览、公司信息,招聘信息等,同时还要保证用户合法和系统安全。

首页界面如下图所示。

图5-2首页界面

  1. 用户注册的实现

用户进入系统首页后,点击“注册”链接进入到注册页面,按照页面提示输入用户名、密码和手机号,页面进行表单验证,验证输入的用户名和手机号是否合法,表单验证通过后,点击“立即注册”按钮,利用 Ajax 技术,对用户名和手机号实现页面无刷新验证,检测数据库中是否已经存在该用户名或手机号,若数据库中不存在,则注册成功,注册成功后,自动跳转到登录页面。

用户注册界面如下所示。

图5-3用户注册界面

用户注册的关键代码如下。

* 注册

* @return

*/

@PostMapping("register")

public Map<String, Object> signUp(HttpServletRequest request) throws IOException {

// 查询用户

Map<String, String> query = new HashMap<>();

Map<String,Object> map = service.readBody(request.getReader());

query.put("username",String.valueOf(map.get("username")));

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

}

public Map<String,Object> readBody(BufferedReader reader){

BufferedReader br = null;

StringBuilder sb = new StringBuilder("");

try{

br = reader;

String str;

while ((str = br.readLine()) != null){

sb.append(str);

}

br.close();

String json = sb.toString();

return JSONObject.parseObject(json, Map.class);

}catch (IOException e){

e.printStackTrace();

}finally{

if (null != br){

try{

br.close();

}catch (IOException e){

e.printStackTrace();

}

}

}

return null;

}

public void insert(Map<String,Object> body){

E entity = JSON.parseObject(JSON.toJSONString(body),eClass);

baseMapper.insert(entity);

log.info("[{}] - 插入操作:{}",entity);

}

  1. 招聘信息的实现

招聘信息页是展示系统招聘信息列表的页面,系统将所有是招聘信息按编号降序排列。

招聘信息列表页面,如下图所示。

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

}

}

  1. 求职记录的实现

求职记录界面如下图所示。

图5-5求职记录界面

  1. 系统后台主要功能实现

    1. 用户管理的实现

管理员对系统用户的管理,在yhzhgl.Java实现管理员用户的管理,包括录入、删除、修改,修改密码通过SESSION获取用户名,然后输入新密码,提交到mod.Java中,使用sql命令更新密码。

  1. 公司信息管理的实现

管理员可以获取系统中所有公司信息的列表并对其进行编辑。管理员在添加公司信息时,需要输入公司基本信息,如名称、类型、规模、公司负责人、融资阶段等。添加公司信息完成,数据库公司信息表添加一条信息。管理员可以搜索公司信息,同时可以对已经添加的公司信息进行编辑。

公司信息管理界面如下图所示。

图5-6公司信息管理界面

公司信息管理关键代码如下。

@RequestMapping("/get_list")

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

Map<String, Object> map = service.selectToPage(service.readQuery(request), service.readConfig(request));

return success(map);

}

  1. 招聘信息管理的实现

管理员在后台管理界面点击到所有招聘信息界面zhaopinxinxi_list.Java,向控制层zhaopinxinxiAction发送请求,搜索当前所有招聘信息,zhaopinxinxiAction向招聘信息数据访问层调用搜索全部招聘信息的请求,向数据库的招聘信息搜索当前所有招聘信息并将招聘信息以对象的形式层层返回到zhaopinxinxi_list.Java界面,显示出当前所有招聘信息。

招聘信息管理界面如下图所示。

图5-7招聘信息管理界面

招聘信息管理的关键代码如下。

@PostMapping("/add")

@Transactional

public Map<String, Object> add(HttpServletRequest request) throws IOException {

service.insert(service.readBody(request.getReader()));

return success(1);

}

@Transactional

public Map<String, Object> addMap(Map<String,Object> map){

service.insert(map);

return success(1);

}

  1. 面试通知管理的实现

面试通知管理界面如下图所示。

图5-8面试通知管理界面

  1. 岗位分类管理的实现

管理员可以获取系统中所有岗位分类的列表并对其进行管理。

岗位分类管理界面如下图所示。

图5-9岗位分类管理界面

  1. 系统测试

    1. 系统可靠性测试

以进入系统首页的访问速度为例展示系统的性能测试;系统的主要用户群体是招聘企业以及求职者,系统要在3秒钟内响应;需要完成页面的首页轮播图片、招聘信息列表、岗位分类、面试通知以及各功能模块入口等元素的显示。

  1. 系统功能性测试

功能性测试是指执行指定的工作流程,通过对一个系统的所有特性和功能都进行测试确保符合需求和规范。

系统功能性测试表如下表所示。

表6-1系统功能性测试表

编号

测试功能

测试内容

测试结果

1

用户登录

1.验证用户名与密码的正确性。

2.验证密码是否可见。

通过

2

首页展示

1.首页数据是否成功加载。

2.验证搜索功能的准确性。

3.验证是否可以异步加载。

4.验证导航栏按钮。

通过

3

个人信息修改

1.验证登录名是否可以正常更改。

2.验证联系方式是否可以更改。

3.验证收货地址可以正常修改。

4.验证密码是否可以修改。

通过

7

公司信息管理

1.验证信息新增是否可以成功。

2.验证信息删除是否可以成功。

通过

8

招聘信息管理

1.招聘信息是否与上传一致。

2.是否能完成信息修改。

3.验证招聘发布修改。

通过

9

面试通知

1.能否正常进行面试通知管理。

2.验证数据准确性。

通过

10

求职记录

1.职位申请是否添加验证。

2.申请是否上传。

3.验证表单是否提交成功。

通过

11

用户管理

1.验证用户录入功能。

2.验证用户违规清理功能。

通过

  1. 系统合格性测试

集成测试后,所有的模块已经全部连接完毕,形成了一个完整的系统。合格性测试是在集成测试完毕后,进一步对系统进行综合性的检测。经过合格性测试,可以检查出系统是否符合系统的设计,能够完成需求的所有功能。本系统经过最后的测试,所有模块功能都能按预定要求工作。

  1. 测试结果

在实际测试中,经过一系列系统性的测试,使我们能够及时发现一些系统在设计中出现的疏忽和漏洞。经过严密的测试,不仅发现了模块内部的错误,也查找到模块连接后产生的错误。经过测试,对系统产生错误的地方进行优化、修改和完善,使得系统能够实现最初设计的基本功能。

  1. 总结与展望

此时项目已经完成,即使实施的时间不是很长,但是这个过程中需要准备很长的一段时间去对系统设计开发所实际到的技术进行学习。在学习的过程中,我逐渐认识得到了我自身存在的一些不足。对于一些控制是必要的应用技能,能够理解,整个过程中仅仅是一个掌握了常用的性能和控制方法,我觉得挺容易的。从该系统中,系统的分析和设计的调查数据,并且已经经历了几个月,并努力几个月,该系统已经完成。很显然,该系统仍有很多不成熟,在系统设计过程中有许多技术缺陷存在。在设计的过程中也涉及到了很多自己无法解决的问题,主要通过找专业的网站和论坛来解决这些问题,对于圆满完成我的毕业设计,他们也贡献了很大一部分力量。系统的开发环境和配置都是可以自行安装的,系统使用Java开发语言,使用比较成熟的Mysql数据库进行对系统前台及后台的数据交互,根据技术语言对数据库,结合需求进行修改维护,可以使得系统运行更具有稳定性和安全性,从而完成实现系统的开发。

系统投入运行时,各功能均运行正常。系统的每个界面的操作符合常规逻辑,对使用者来说操作简单,界面友好。整个系统的各个功能设计合理,体现了人性化。

人才交流平台的主要特点有:

(1)简单大方,易于操作的 Web 页面;

(2)利用 Ajax 技术使页面进行无刷新更新;

(3)根据用户的浏览和搜索记录,用户可以浏览企业发布的招聘列表信息;

(4)面试通知功能可以帮助用户查看通知信息;

(5)有良好的安全性和可扩展性,增强了系统的可靠性,使系统保持持久的生命力。

由于时间限制和本人能力条件有限,该系统还存在一些不足,今后也会出现许多新的开发技术,未来还可以对系统做出如下改进:

(1)优化系统页面,使页面更加美观且方便操作;

(2)优化职位搜索功能,提供多条件选择查询搜索;

(3)进一步提高系统的安全性,使系统更加健壮;

(4)优化数据和代码,提升软件效率,方便系统维护和扩展。

参考文献

[1]寇鑫.知识管理视角下的知识创新与人才交流培养等模式研究[J].智慧中国,2022(01):46-48.

[2]王慧芳,孙方,陈玉,朱茜.基于SSM框架的大数据个性化推荐系统设计[J].信息与电脑(理论版),2022,34(02):90-92.

[3]侯海霞. 为科技和人才交流“搭桥架梯”[N]. 韶关日报,2021-11-05(A01).DOI:10.28690/n.cnki.nsgrb.2021.002841.

[4]王江霖,黄彩霞,樊旭龙.基于SSM框架的网络资源共享平台的研究与实现[J].电脑知识与技术,2021,17(28):76-78.DOI:10.14004/j.cnki.ckt.2021.2999.

[5]宋娅婧,石长慧.中美科技人才交流的现状及趋势研究[J].全球科技经济瞭望,2021,36(07):46-52.

[6]项密竹.人才交流服务中心档案的社会化管理方式研究[J].经济管理文摘,2021(13):113-114.

[7]徐伟.试析人才交流中心加强人力资源管理的措施与思路[J].经济管理文摘,2021(13):115-116.

[8]本刊讯.展现新作为 搭建引智平台 促国际人才交流合作[J].甘肃科技,2021,37(12):3.

[9]曹华山.SSM框架在Web应用开发中的设计与实现[J].无线互联科技,2021,18(11):108-109.

[10]方昌勋. 基于Object-Z的业务逻辑Java代码自动生成器设计与实现[D].北京邮电大学,2021.DOI:10.26969/d.cnki.gbydu.2021.002208.

[11]苏全艳.谈人才交流中心如何做好毕业生档案管理[J].才智,2021(15):171-173.

[12]陈钊.SSM框架在Web应用开发中的设计与实现研究[J].电脑知识与技术,2021,17(10):226-227.DOI:10.14004/j.cnki.ckt.2021.1097.

[13]李建波.人才交流中心档案信息化建设的现状[J].黑龙江档案,2021(01):195-196.

[14], 人才交流服务系统. 安徽省,安徽万硕科技产业,2020-11-30.

[15]本刊辑.引智成果“云端”绽放——第十八届中国国际人才交流大会上线开展[J].机械研究与应用,2020,33(04):221.

致谢

时间过得真快,眨眼之间,大学四年的学习生活即将结束,无论是在学习还是生活的这四年,老师们给了我很多帮助,让我终身受益匪浅。老师们不仅帮我树立了正确的人生观和价值观,还帮我养成了很多好习惯,树立了终身学习的意识。在此,我要对我的所有老师表示衷心的感谢。与此同时,我还要感谢陪伴我在这四年里一起成长的伙伴们。他们给了我无私的帮助和关怀,让我在人生最好的四年中获得许多真诚的友谊。

毕业设计是大学四年的最后一个答卷,我们正忙着这四年的美好结束。在毕业项目主题选择的早期阶段,我很紧张担心自己选择的主题很复杂,难以理解,觉得不能这样做会影响我的毕业。是指导老师给我们提供了毕业设计的主题和具体要求,让我们对毕业设计不要太模糊,如果对主题有任何异议,要及时跟他沟通,并且还帮我们介绍他带过的优秀学哥学姐,对我们进行指导,这样再设计上遇到的问题就可以及时得到解决,对我们完成毕业设计提供好的指导条件。

对于毕业设计项目主要是对我在大学所学的专业知识进行一次综合的考验,让我们通过所学的技术知识可以真正的运用到实际动手开发中,通过项目的开发让我意识到自己很多地方的不足,所学知识的不扎实,不能很好的将自己所学的知识运用到系统实际开发上。后来通过自己在图书馆查阅大量书籍,完成系统的设计大纲,阅读笔记和翻译,毕业设计不仅要考验我们的个人能力,还要测验我们的学习态度,做到细节的事情。对于指导老师的帮助,我的毕业设计才可以顺利的完成,我非常感谢。

最后要感谢我的同学们,是你们不断的帮助、鼓励、熬夜、保持调试,测试程序,最终完成健康养老平台的运行。我们在交流,谈论时间,将是我们未来的财富,我要深深地感谢你。

                                                        点赞+收藏+关注    私信领取本源代码、数据库

SSM人才交流平台的开发毕业设计-附源码相关推荐

  1. SSM+冬奥会志愿者招募系统 毕业设计-附源码191621

    SSM冬奥会志愿者招募系统 摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题 ...

  2. SSM实验室门禁管理系统毕业设计-附源码221252

    摘  要 高校实验室是高校教学工作中保密性很强的工作,针对当前高校实验室管理中使用机械门造成管理不便的情况,进行研究,通过分析高校实验室门禁管理系统的工作原理以及特点,针对当前高校实验室管理中的难点问 ...

  3. SSM+实验室门禁管理系统 毕业设计-附源码221252

    SSM实验室门禁管理系统 摘  要 高校实验室是高校教学工作中保密性很强的工作,针对当前高校实验室管理中使用机械门造成管理不便的情况,进行研究,通过分析高校实验室门禁管理系统的工作原理以及特点,针对当 ...

  4. SSM+特殊病例查询系统 毕业设计-附源码231832

    特殊病例查询系统的设计与实现 摘 要 大数据时代下,数据呈爆炸式地增长.为了迎合信息化时代的潮流和信息化安全的要求,利用互联网服务于其他行业,促进生产,已经是成为一种势不可挡的趋势.在特殊病例查询的要 ...

  5. SSM+中小型企业绩效管理系统 毕业设计-附源码081536

    SSM中小型企业绩效管理系统 摘 要 在市场竞争日趋激烈的今天,利用人力资源来获取竞争优势已得到了管理者和学者们的共识.而绩效管理作为现代人力资源管理的核心问题,也逐渐被中小民营企业所重视.近年来,我 ...

  6. SSM+基于java的企业任务流程管理系统开发 毕业设计-附源码221533

    ssm企业任务流程管理 摘  要 随着互联网大趋势的到来,社会的方方面面,各行各业都在考虑利用互联网作为媒介将自己的信息更及时有效地推广出去,而其中最好的方式就是建立网络管理系统,并对其进行信息管理. ...

  7. SSM+ 基于Java的花艺商城系统设计与开发 毕业设计-附源码171536

    摘 要 本论文主要论述了如何使用JAVA语言开发一个花艺商城系统 ,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发.在引言中,作者将论述花艺商城系统的当前 ...

  8. SSM+老年人社区服务平台 毕业设计-附源码211711

    Ssm老年人社区服务平台的设计与实现 摘 要 科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用.信息时代的到来已成为不可阻挡的时尚 ...

  9. spring boot清远旅游推荐网站的开发毕业设计-附源码211551

    摘 要 清远自然生态环境特别优越,以水域风光.园林景观.地文景观﹑气候景观﹑生物景观.建筑景观.遗址遗迹.人文活动,旅游特产为主.旅游冬有温泉﹐夏有漂流﹐并拥有喀斯特地貌特有的地下溶洞及景观,形成了清 ...

最新文章

  1. sklearn.naive_bayes
  2. HTML5中的本地数据库-Web SQL Database
  3. Java——集合经典面试题
  4. programming review (c++): (1)vector, linked list, stack, queue, map, string, bit manipulation
  5. chrome浏览器安装和使用
  6. 3dmax2021渲染器下载安装教程VRay4.3渲染器下载安装教程
  7. 程序设计语言的发展过程
  8. Python自动登录QQ
  9. 计算机二级论文题,计算机二级考试真题-Word-小许-质量管理的论文
  10. php socket http,php 利用socket发送HTTP请求
  11. pdf文件太大?看pdf压缩大小的方法吧
  12. 阴阳师斗技通用,3000上下冲浪斗技(上)
  13. 挂耳式耳机品牌排行榜,五款目前排行靠前的耳机分享
  14. Twitter CEO自曝成长经历:生活充满了偶然
  15. wps时间戳转换成日期
  16. 常见纽扣电池分类及容量
  17. vector<vector>排序
  18. html中热区如何设置,Dreamweaver中如何设置热区?DW设置热区方法图解
  19. java删减pdf内容合并_[Java教程]Java基础之PDF文件的合并
  20. STM8L HSE时钟配置

热门文章

  1. Apache Tez
  2. 计算机应用基础19秋在线作业2答案,东师计算机应用基础19秋在线作业2题目【标准答案】...
  3. C#【控件篇】按Tab键可以跳转到下个控件(TabIndex、TabStop的设置)
  4. android 图片叠加xml,Drawable子类之——LayerDrawable (图层叠加)
  5. 让你的 wowza 服务器提供 RESTful web 服务
  6. 抗混叠滤波的Matlab解释
  7. libusb系列-007-Qt下使用libusb1.0.26源码
  8. 计算机科学与计算机技术!
  9. 损失函数-交叉熵的推导和二分类交叉熵
  10. mysql配置jdbc