基于 SSM 框架的招聘小程序的设计与实现.docx
本科毕业设计(论文)基于 SSM 框架的招聘小程序的设计与实现Design and Implementation of Recruitment Program Based on SSM Framework院 (系)计算机科学院专 业网络工程班 级3班学 号16210220309学生姓名林士堃指导教师陈子翔提交日期2019年4月19日广东东软学院本科毕业设计(论文)毕业设计(论文)原创性声明本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行的设计(研究)工作及取得的成果,论文中引用他人的文献、数据、图件、资料均已明确标注出,论文中的结论和结果为本人独立完成,不包人已含他经发表或撰写的作品及成果。对本文的研究作出贡献的个人和集体,均已在论文中作了明确的说明。本人完全意识到本声明的法律结果由本人承担。毕业论文作者(签字): 签字日期: 年 月 日成绩评定 成绩项论文成绩(百分制)折合比例实得成绩(折合分)指导教师成绩30%评阅教师成绩20%答辩成绩50%总评成绩 注:毕业设计(论文)成绩按百分制评定。答辩成绩不及格的(评分低于60分的),则该毕业设计(论文)总评成绩为答辩成绩。 摘 要随着经济的发展,每个步入社会的成年人时时刻刻面对着挑战和机遇,现如今,传统招聘行业日渐衰落,网络招聘行业成为众多求职者寻找工作的主要平台。近几年,随着小程序的面世,越来越多的招聘网站、招聘App也在微信开设自己的小程序。在这个背景下,本设计将小程序的优势与社会人才招聘相结合,设计一款个人的求职招聘微信小程序。该设计以SSM体系作为基本架构,客户端为小程序,构造了一个人才和企业之间沟通交流的小程序平台。本小程序有以下功能:“首页”可以查看最新发布的招聘信息,也可以筛选或搜索职位,“公司排行榜”将提供最热门的招聘公司排行,在“信箱”里可以查看已投递简历的反馈情况。 “我的”可以让求职者上传自己的个人信息等。关键词:SSM 职位招聘 微信小程序AbstractWith the development of economy, every adult entering the society is always facing challenges and opportunities. Nowadays, the traditional recruitment industry is declining, and the online recruitment industry has become the main platform for many job seekers to find jobs. In recent years, with the emergence of small programs, more and more recruitment websites and recruitment apps have opened their own small programs in wechat.In this context, this design combines the advantages of the small program with the recruitment of social talents, and designs a wechat small program for personal job recruitment. The design takes SSM system as the basic structure, client as the small program, and constructs a small program platform for communication between talents and enterprises. This applet has the following functions: "homepage" can view the latest published recruitment information, or filter or search for positions, "company leaderboard" will provide the most popular recruitment company leaderboard, and you can view the feedback of submitted resumes in "mailbox". "My" allows job seekers to upload their personal information.Key words: SSM Job Recruitment Mini ProgramsV广东东软学院本科毕业设计(论文)目 录第一章绪论11.1研究背景11.2研究现状11.3研究意义31.4章节安排4第二章系统需求分析52.1网络招聘市场需求分析52.2小程序市场需求分析52.3系统功能需求62.4系统可行性分析72.5本章小结7第三章系统设计83.1系统功能设计83.2数据库设计93.3本章小结12第四章系统实现134.1技术选型134.1.1微信小程序简介134.1.2微信小程序架构简介134.1.3 SSM框架简介144.2功能模块实现154.2.1“用户信息上传”和“城市定位”功能实现154.2.2“搜索职位”功能实现164.2.3“用户浏览职位信息”功能实现174.2.4 “职位筛选”功能实现174.2.5“公司排行与详情”功能实现184.2.6“求职反馈”功能实现194.2.7“收藏职位”功能实现194.2.8“发布职位”功能实现204.3数据库实现214.3.1数据库表分析214.3.2 数据库表的详细实现214.4本章小结23第五章系统测试245.1测试环境描述245.2测试用例运行情况245.3测试设计评估及改进255.4本章小结25总结26参 考 文 献27致谢29广东东软学院本科毕业设计(论文)第一章 绪论1.1研究背景社会在不停的发展,每年的求职人数也在不断增加。如何在求职过程中,尽可能节省时间和提升效率,已经成为每个求职者关注的重点。互联网的高速发展促进了网络招聘的发展1。由于受到网络招聘的冲击,传统招聘已经日渐式微,传统招聘发展到现在,出现了效率低下、时间长等缺点。要想吸引优秀人才参与内部经营活动,实现更大的生产经营目标,必须要采取先进的招聘方式 2。与此同时,经济重心的调整和产业结构升级,也加速了社会人才的流动,在这个大环境下,网络招聘以其低成本、高效率、覆盖广的优点迅速占据了当下的招聘市场。如今,我们已经来到了互联网时代,互联网已与我们的生活息息相关。近十年来,随着智能手机的面世,越来越多的人选择在移动端进行沟通和交流,无论是衣食住行,还是求职招聘,都离不开每个人手上的智能手机。2017年推出的微信小程序,将人们的社交网络与社会需求紧密的连接在一起,微信小程序就是轻型App,它是基于微信系统上的App,它无需下载,因此不会占用手机空间;它召之即来挥之即去,用完即走,但同样可以生成快捷方式,方便实用3。在微信小程序推出之后,各大招聘平台纷纷入驻,网络招聘也不再单单在Web端和App进行,将网络招聘与小程序结合起来,一方面可以利用小程序内存小的特点减轻对手机的负担,另一方面,依靠微信这个庞大的社交网络,也可以为企业、求职人的沟通和交流提供了极大地便利。1.2研究现状简单来说,网络招聘是众多招聘当中的一种方式和渠道,把人才市场的供需双方连接起来。根据艾瑞机构的调查结果,国内网络招聘的发展,经历了三个阶段,形成不同的招聘类别。从综合模式走向垂直细分,未来发展会更加多元4。随着互联网的普及,中国网络招聘变得尤为火热,像智联招聘、58同城、51JOB等一些知名的招聘网站,也被大众所熟知,许多的求职者也是通过网络招聘得到了他们梦寐以求的工作5。网络招聘已经成为员工认可、企业青睐的一种招聘方式。从世界范围内网络招聘的特质来看,从以前到现在,网络招聘都在迈向更健全的制度,当下正处于网络招聘公共服务建设的关键时期6。网络招聘可应用的场景丰富,作为一个大型线上的招聘市场,既反映了人才市场的需求,也在不断地为求职者和招聘企业解决招聘过程中的困难。现阶段,我国网络招聘市场正呈现新的发展趋势,垂直网络招聘模式以其锁定用户定位准确的优点开始崛起7。相比于线下的招聘会或人才市场,网络招聘因其便利快捷的操作更受人们的欢迎。在不同的条件下(年龄、学历等),求职者使用网络招聘的频率也随之不同。年纪越大的人和对网络依赖性较强的人越容易使用网络招聘8。尽管网络招聘提供了大量的岗位、搭建相对公平的平台,但还是难以保障相关信息的安全。求职信息鱼龙混杂,需要一套很好的审核机制来抑制简历造假的情况,招聘系统应及时更新招聘信息,对招聘者进行分类、背景核实、筛选招聘信息,并进行针对性的优化。网络招聘像一把双刃剑,一方面它成本低、信息量大、不受限于时间。而另一方面存在着招聘信息的虚假、过剩、混乱、技术不完善等等问题。由于网络招聘是处在一个虚拟的环境当中,在面试前,求职者和企业双方都无法获取到对方真实信息,所以存在着一些网络诈骗等行为。黑客或行业竞争对手有可能利用应聘对企业网络系统进行破坏,并造成严重的后果9。此外,网络招聘相似的公司太多,中华英才网、前程无忧、智联招聘三者主页都是以各招聘仿的公司的招聘广告为主。同时各功能板块的内容相似。严重的同质化降低了传统网络招聘的活力,不利于竞争 10。一些企业通过大量的招聘案例探究到网络招聘非常适合现代社会 11。网络招聘已经成为当今世界上最有效的招聘方式之一,但还是要注重完善管理制度和保障用户信息安全。企业必须重视法律知识建设,建立一整套安全的风险防控机制,要对潜在的法律风险进行防控之外。在当下的招聘市场,线上线下相结合的招聘方式不会轻易改变12。此前没接触过网络招聘的传统招聘模式的应聘人员需要经过一段时间才能适应网络招聘的模式。移动端的网络招聘适用于那些频繁更换工作以及对寻找工作比较迫切的人,因此,移动网络招聘的面向的主要用户是蓝领白领以及大学生。此外,移动端的网络招聘也适用于那些急需人才的企业,企业只需要简单的操作既可以对简历进行筛选等等。 近几年高速发展的小程序,被迅速的应用到移动端的招聘市场当中,小程序为应用提供了一种新的发展方向,高度融合社交平台、以易学易用为宗旨13。如今,微信已成为用户量最多,发展最为成熟和完善的社交软件,人们利用微信进行沟通、交流、分享。而微信小程序的出现,让微信的应用功能变得更加丰富。2017年1月,小程序正式上线,小程序一经推出,就被迅速被应用到各行各业。微信小程序“轻量”、“触手可及”,类似一个大型的应用收藏夹,应用的主要行业包括饮食、其他服务类、求职招聘等。适合非刚需、频率低场景的长尾服务提供者14。总而言之,微信小程序结合求职招聘,是社会发展的普遍需求,本系统开发的“招聘小程序”,是为了满足人们日益增长的求职需求,以及企业追求高效率的招聘方式。当今社会,人们都在追求“更快”、“更轻”的生活方式,小程序和App相比,不需要下载和安装,只需要登录微信,就可以完成求职的一系列流程,十分方便。1.3研究意义传统的企业招聘方式依靠校园招聘会和人才交流市场,这些招聘方式有着相当明显的区域局限性15。网络求职的优势在于成本低、灵活快捷 16。在Internet飞速发展的今天,互联网在经济、政治、文化等方面发挥着重要的作用,已不单单只是传播、获取信息的渠道。互联网时代的招聘方式需要提供多元化的增值服务并深入发掘用户需求,这是未来的招聘行业发展的大趋势17。网络招聘的发展十分迅速,从最早的Web端,到移动端,再到如今的小程序。网络招聘吸引了一大批的求职者,首先,网络投递的简历普遍较多,而且格式大多比较规范,其次,招聘的客户端(网站、App、小程序)可以让企业节约筛选简历所需要的部分时间提高招聘人才的效率。此外,线下招聘的成本普遍较高,需要耗费大量的人力物力,而网络招聘为这个问题提供了很好的解决方式网上招聘花的成本远远低于传统的招聘方式,这也是企业选择网络招聘重要原因。现今大部分人求职会选择线下的招聘会或者人才市场。而一款求职招聘小程序,不仅可以省去到处跑招聘会的麻烦,也能避免因为时间的冲突而失去工作机会。此外,和App相比,小程序体量更小,操作更方便,符合“用完即走”的特点。小程序以微信作为连接口,充分利用大量资源,运营成本在很大程度上降低。能够针对不同用户解决不同功能需求,个性化开发的独特性使小程序的开发更加多样化18。网络传媒技术的进步,使得微信小程序的“微招聘”发展迅速,在人力资源领域起到了聚集人才的作用19。因此,使用网络招聘,已经是当今社会的大趋势,求职者数量的增多也让网络招聘市场更加开阔20。本设计的目的在于为企业和求职者双方提供招聘便利,让求职者在求职过程中,除了线下的招聘之外,获得更多的工作机会,让企业不再拘泥于招聘会、宣讲会等线下的形式,开通一条招揽人才的新通道。1.4章节安排本设计的章节结构介绍如下:第1章主要阐述了网络招聘和微信小程序研究的背景,现状以及意义,并且介绍了网络招聘结合小程序在当今社会的发展,最后简单的概括本文的章节结构。第2章对该系统的功能需求和非功能需求进行阐述,以及进行可行性分析。非功能需求主要围绕网络招聘市场和小程序市场,功能需求主要围绕系统功能的设计,可行性分析从社会、经济、技术三个层次来分析。第3章主要描述了本系统是怎样设计,包含本系统各个功能模块的设计,然后先从实际情况模拟出需要的数据体和数据结构,然后再根据前者转化成数据管理系统的数据逻辑结构,设计出数据库E-R图。第4章介绍了该系统使用了哪些技术和具体的功能,技术包括小程序开发技术和SSM(Spring、SpringMvc、MyBatis)框架。这一章分别对以上框架和技术进行了介绍和特点的描述。此外,本章还介绍了功能的实现效果以及实现原理,配有相应的图进行演示。第5章在阐述了系统测试的目的,根据测试环境对招聘小程序进行测试,最后评估测试结果以及指出还有哪些改进的空间。第二章 系统需求分析2.1网络招聘市场需求分析据相关数据统计, 截止到2017年年底, 国内超九成的网民利用网络进行求职, 求职者对网络求职也非常热忱21。2018年以来,各地纷纷推出的人才政策,面向高校毕业生、以及外籍人才和技能型人才。政策的变化,使得招聘的重点不再集中在大城市。网络招聘市场相比于传统招聘有很多优点,首先,网络招聘能不受时间和地区的影响,全方位的覆盖到每个求职者和每个企业;其次,网络招聘的低成本促使了大多数人选择这种方式;此外,精确的信息甄选和快速的传播速度更有利于企业筛选简历和求职人选择职业。求职者只需要浏览网络招聘平台分类的岗位,就能够快速找到适合自己的岗位22。为了尽快找到工作,许多求职者会使用多个网络招聘平台,iiMedia Research (艾媒咨询)数据显示,在选择网络招聘平台时,求职者主要考虑因素是求职成功率,占比达29.5%23。近年来,随着智能手机的普及应用,人们已不单单只在招聘网站上求职,服务更好、更方便的移动端成为了整个网络招聘市场的主流。网络招聘没有时间的限制, 网络平台是24小时开放的。招聘单位可以随时发布招聘信息, 及时更新招聘岗位24。为了享受到更好的服务,网络求职者中选择付费的服务的人越来越多,付费服务主要包括:职业规划、简历咨询等等。2.2小程序市场需求分析自2017年上线以来,微信小程序一直保持着蓬勃的发展。小程序的推广提高了微信的服务能力25。小程序在2018年迎来爆发式增长。由2017年1月200个发展到2018年1月的58万个, 增长率近2900%26。虽然小程序一经推出就广为流传,但在当下小程序的应用市场,对小程序的需求还没有达到饱和的状态,小程序延展性非常好,在当下的小程序中,小程序拥有关联公众号,生成二维码等功能,商业前景很可观。如今,信息交流技术在互联网上已经非常成熟,所以不管是招聘还是求职都转移到了线上进行。由于我国企业数量多,规模大,人才市场一直是国民经济领域中的重要区域,当今,线下结合线上的招聘方式在社会中非常流行,众多企业在举行各种招聘会的同时,还在网络招聘平台发布职位,比起招聘网站和招聘APP,微信小程序能依托微信的庞大社交系统给用户更好的服务,每个微信用户都可以随时随地的推广小程序给微信好友。小程序可以在微信群、朋友圈转发,充分利用人际互动、上下游联动来提供社交化服务。腾讯公开数据显示,目前微信拥有8.46亿月活跃用户27。巨大的用户基数将给社交化发展的小程序带来很大空间。此外,小程序“用完即走,无需卸载”的特点也让用户免去了下载安装的麻烦。微信小程序的出现无疑是手机存储空间的救星, 微信小程序依附于微信之中, 用户只要连接到互联网, 不需要对小程序进行下载安装,打开微信中的小程序就可以直接使用28。使用招聘小程序,用户具有了更为放心和安全的选择。平台拥有着大量的岗位供应,让人才拥有了更多的选择,也让企业具有了更多的选择。利用微信小程序这一平台,使得人们足不出户就能够轻松找到工作,轻松解决人才招聘问题。2.3系统功能需求“招聘小程序”面向的是寻找工作的求职者和急需人才的企业,它提供了一个合理的方案,为了是求职者和公司已更少的时间,耗费更少的精力来进行沟通交流。所以“招聘小程序”必须拥有以下几种功能:1) 个人信息管理:用户填写自己的个人信息和上传简历;2) 搜索职位:用户搜索心仪的职位;3) 城市定位:获取到当前城市的定位;4) 发布职位:在后台发布职位;5) 职位信息:查看职位的信息;6) 公司信息:查看公司信息;7) 职位类别筛选:职位类别以及区域的筛选;8) 简历的投递:用户的简历投递;9) 求职反馈:用户需要得到所投递职位的反馈;10) 收藏职位:用户收藏自己心仪的职位;11) 公司排行榜:热门公司的排行。2.4系统可行性分析1) 技术可行性:对计算机有较高的配置要求,要有足够的空间安装运行平台、数据库和编程IDE,要求编程人员具备开发微信小程序的能力,以及对SSM框架的熟悉;2) 社会可行性:目前市面上已有很多人才招聘类的小程序,必须在国家相关政策和法律允许的范围内开发和运行,此外,开发的功能要符合用户的日常操作习惯,方便灵活;3) 经济可行性:微信小程序有免费的项目源码供开发者使用,所以开发此小程序不需要大量的成本。2.5本章小结本章主要对该设计的非功能需求以及功能需求进行了详细的描述,非功能需求包括网络招聘市场需求和小程序的市场需求,功能需求是对系统的功能进行设计的要求,此外,本章还从技术、社会、经济三个方面对此设计进行分析。 通过对这些需求的分析,我总结出以下两点:1) 网络招聘在当今市场十分受欢迎,将小程序与网络招聘相结合将为求职者带来极大地便利;2) 功能需求是做好一个项目的关键,只有分析了具体要做的哪些功能,才能有的放矢,完成后续的工作。第三章 系统设计3.1系统功能设计本系统是基于招聘的微信小程序,微信用户成功授权后,会获取到用户的头像和昵称等信息,用户可以上传自己的个人信息(姓名、电话、邮箱等)。此外,在 “首页”可以查看到当前的城市定位、职位信息以及可以筛选或搜索职位。在“公司排行榜”页面可以查看当前热门的公司,点击进入可以查看公司详情页。用户可以在职位详情页面收藏职位以及投递简历,简历投递完成后,还可以在“我的”页面查看自己的求职反馈。本系统的功能设计如下:1) 用户授权登录功能:用户授权登录小程序,成功后获取到用户的微信头像和昵称;2) 城市定位功能,在“首页”可以查看当前所在的城市;3) 个人信息管理功能:用户登录微信小程序后,上传自己的个人信息,如电话、邮箱、个人简历等等;4) 搜索职位功能:用户可以在“首页”的搜索框查找心仪的职位,只要查找到数据,就可以显示在查找结果的列表当中,查询结果包括职位名、学历要求等信息,点击后可以进入职位详情;5) 职位筛选功能:用户可根据职位类别、地区对职位进行筛选;6) 用户查看职位信息功能:用户在“首页”查看到职位的列表,通过点击查看职位详情;7) 公司排行和详情功能:公司信息可以在 “公司排行榜”中点击查看,进入公司详情页后,可以看到该公司的基本信息;8) 求职反馈功能:用户在心仪职位的详情页面点击投递简历。并在“信箱”页面查看有哪些简历得到反馈;9) 收藏职位功能:用户在职位详情页面点击收藏职位,收藏的职位可以再“我的”页面里的“收藏职位”看到;10) 发布职位功能:管理员在后台管理系统发布职位,通过填写相关的信息来发布,发布完成后,可在“首页”看到该职位,功能结构图如图3-1所示。29广东东软学院本科毕业设计(论文)图 31 功能结构图3.2数据库设计本文按设计了所需的各个实体,并将这些实体关系通过E-R图表示出来,如图3.2-3.8所示。图 32 各实体关系E-R图(1)公司信息实体:用户名、密码、公司名、公司图片、公司描述、公司性质、公司规模、公司行业、联系人、电话、地址;图 33 公司信息实体E-R图(2)求职反馈实体:投递id、通知信息、处理状态、投递人、职位名、处理时间、投递时间;图 34 求职反馈实体E-R图(3)用户实体:用户名、密码、小程序openId、电话、邮箱、姓名、简历文件、性别、生日;图 35 用户实体E-R图(4)职位实体:职位id、职位类别、职位名称、工资、学历要求、职位描述、工作区域、工作地址、发布企业、发布时间;图 36 职位实体E-R图(5)职位类别实体:类别id、类别名、类别描述 ;图 37 职位类别实体E-R图(6)管理员实体:用户名、密码 。图 38 管理员实体E-R图3.3本章小结本章描述了系统功能设计以及数据库的设计,简单概括系统的功能,对概念模型进行了分析。对此,我总结了以下几点:1) 系统功能设计是开始编写功能前必须要进行的步骤;2) 数据库和概念模型的分析有助于帮助开发者理清思路,在开发过程中需严格按照系统功能设计和数据的概念模型。第四章 系统实现4.1技术选型4.1.1微信小程序简介小程序是一种在微信平台无需下载安装,通过扫码或者搜索就可以打开的一种轻量级应用,不仅方便快捷,还可以通过其封装的接口进行快速开发,小程序的开发难度比APP 开发要小得多,适合功能较简单或者使用频次不高的应用的转换28,大量的节省了开发者的时间。要开发一个小程序,必须在微信公众号平台上注册,完成开发者的个人信息绑定后,需要下载微信开发者工具,小程序开发调试完成后,需要提交代码到微信团队进行审核,审核通过后才可以投入使用。简单来说,微信小程序共由以下几种文件类型组成:WXML、WXSS、JavaScript和json,但不同于常规的前端开发,不同之处有以下几点:1) JavaScript并不在浏览器或Node.js中运行,它运行在NW.js中,NW.js(以前称为node webkit)允许直接从DOM调用所有node.js模块,并支持使用所有Web技术编写应用程序的新方法;2) WXML并不是基于html,而基于XML的语法开发的,虽然和html有相似之处,但不能使用html的标签;3) WXSS类似于CSS,支持CSS大部分特性,但WXSS是在CSS的基础上扩展和改造,并不完全支持CSS语法,具体哪些支持,哪些不支持,需要自己探索;4) 在移动端,微信小程序面向的是iOS、Android等操作系统的微信APP,而在PC端,它运行在开发工具中。4.1.2微信小程序架构简介微信小程序的架构是双线程机制,核心在于逻辑层与渲染层,逻辑层和渲染层分别运行在两个线程当中。逻辑层:利用JsCore线程运行Js,将已处理的数据发送到渲染层,并及时接收渲染层反馈。渲染层:在WebView线程里执行着界面渲染相关的任务,由于每个小程序都有多个界面,因此有多个WebView在运行。渲染层会将用户对应用的操作封装成事件传递到逻辑层。系统层的WeixinJsBridage为逻辑层和渲染层提供通信,渲染层触发的事件会传到逻辑层进行处理,逻辑层处理完数据后通知到渲染层,渲染层的页面更新。在渲染层, WXML会被转化成JS对象 ,在逻辑层的数据发生变化时,setData()方法把数据从逻辑层传递到渲染层,重新应用在原来的Dom树上,从而更新页面。在每个小程序中,都包含一个app和多个page,app描述整体文件,每个page描述各自的前端页面。app包含app.js、app.json、app.wxss这三个类型的文件,app.js定义小程序的全局函数,其中包含着许多监听方法,onshow方法监听小程序显示,onhide方法监听小程序的隐藏。如果需要添加一些全局的变量或函数,可以在app.js定义,通过const app=getApp()来获取全局对象,从而调用全局函数。app.json 定义全局的共有的页面,如底端的tarbar等,app.wxss定义全局样式。4.1.3 SSM框架简介SSM是三个开发框架的集成,分别是Spring开发框架、 Spring MVC开发框架、 Mybatis数据库开发框架,运用开发框架可以让程序更容易维护和扩展。SSM是轻量级并且应用较多的一种组合框架,好多中小型企业的门户网站、政府网站、金融项目都是基于SSM架构开发的29。J2EE的多层体系架构的主要优点是:简化结构、提高开发效率、可移植性强、重用性好、易于维护30。SSM框架系统划分为表现层,controller层,service层,DAO层四层。Spring通过注入DI来管理每个层的组件,利用AOP面向切面编程管理权限等,SpringMVC的controller文件控制整个应用,请求和响应都在此完成。MyBatis负责对数据库的增删改查。通常SSM的整合流程如下:1) 整合DAO层。Spring整合Mybatis,通过Spring管理mapper接口。mapper的扫描器会自动扫描mapper接口,并注册在Spring中;2) 整合service层。通过Spring管理 service接口。为了实现事务控制,需要将service接口配置在Spring文件;3) 整合Spring和SpringMvc,由于SpringMvc是从Spring分离出来的一部分,所以不需要整合。4.2功能模块实现4.2.1 “用户信息上传”和“城市定位”功能实现用户授权登录需要用到临时登录凭证code,把这个code传到后台的登录接口WxLoginController,然后把code、小程序的appId和appSecret通过后台的WxLoginController调用微信接口auth.code2Session来换取用户的openId和SessionKey,通过用户的提交的信息就可以在后台完成注册登录。用户登录后,需要上传个人信息和简历,将用户的个人信息和简历文件通过wx.Request()进行上传,请求路径指向后台的/userInfo/add,并用post方式提交参数。至于城市定位,首先需要在小程序目录utils导入qqmap-wx-jssdk.js和qqmap-wx-jssdk.min.js两个文件,然后在“首页”的js调用wx.getLocation的方法来获取当前的经纬度,再通过loadCity方法解析当前的经纬度得到城市名,最后展示在“首页”。用户在微信授权登录后,需要在“我的”界面的“简历”模块里面完善个人信息,填写完成后点击保存即可上传自己的个人信息,该模块的实现效果如图4-1所示,用户在“首页”可以查看到当前城市,实现的效果如图4-2所示。图 41用户上传信息图图 42城市定位图4.2.2 “搜索职位”功能实现从搜索框获取到用户输入或选择的搜索内容,调用后台的/job/list接口进行查询,通过post方式提交搜索内容给后台,如果查找到了职位信息,后台就会返回一个json数组给前端,此外,前端需要定义一个数组searchResult来接收后台返回的数据。接收后,将searchResult数组渲染在结果页面的WXML文件中,用户搜索过的内容,通过wx.setStorageSync保存在缓存中,避免反复输入。用户在搜索框中输入职位名,点击搜索,如果查找到相关数据,会显示结果列表,用户点击列表就可以进查看职位详情。此外,用户也可以通过点击搜索历史和下方的搜索热点来进行搜索。实现效果如图4-3所示。图 43 查找结果图4.2.3 “用户浏览职位信息”功能实现在“首页”的js中对后端的职位信息的接口/job/listAll进行请求,获取到职位信息的jobList,并通过wx.setStorageSync()方法把职位信息保存在缓存中,至于职位详情,通过点击事件e.currentTarget.dataset.id来实现,id是我定义在WXML文件里的列表的属性,在WXML的列表中通过data-id="item.jobId",把职位列表的jobId赋值给id,这样就可以根据职位列表的jobId获取到相应的职位详情了。用户点击“首页”就可以看到职位信息,点击列表的某一项,就可以查看职位详情了。职位详情包括职位名,职位发布时间、薪资、职位说明、发布公司、公司行业、公司性质、学历要求这些相关信息。用户通过查看这些信息,来决定是否进行收藏职位或投递简历的操作,此功能具体实现效果如图4-4所示。图 44 职位信息图4.2.4“职位筛选”功能实现首先设置一个flag值,点击“职位筛选”可以隐藏和显示选择框,如果用户不筛选,会显示全部的职位信息。用户在职位筛选后,将用户选择的职位类别jobType和地区region通过wx.setStorageSync()方法保存在缓存中,在前端页面用wx:if语句设置条件,只有与用户选择的jobType和region相匹配的职位才会显示出来。用户点击“职位筛选”就可以看到职位包括哪些类别以及地区,选择完成后点击确定,页面会刷新,显示筛选过的职位。具体实现效果如图4-4所示,左边为筛选操作,中间为筛选前的页面,右边为筛选后的页面。图 45 筛选职位 4.2.5“公司排行与详情”功能实现“公司排行”是通过在缓存里获取companyList,按照公司的职员规模从大到小进行排序来实现的,主要调用temp.sort(pare("gsgm")来实现。在js中对后台存放公司信息的company/listAll接口用GET方式进行请求,获取到公司信息的companyList,并通过wx.setStorageSync()把公司信息保存在缓存中。在WXML文件对获取的companyList进行渲染,发布职位是通过公司表的companyName字段去匹配职位表的companyObj字段来实现的。用户在“排行榜”页面中点击就可以查看公司的详情信息。包括公司名字、公司性质、公司介绍、公司地址以及发布的职位,如果公司介绍比较长,可以点击“查看全部”来查看。图 46 公司详情4.2.6 “求职反馈”功能实现在投递简历按钮中绑定一个send事件 ,在用户点击后会通过wx.request()向后台投递简历的Delivery/list接口发起网络请求,通过POST的方式传递简历信息给后台,在“信箱”页面的js中调用wx.request()从后台调用简历反馈接口,获取到简历反馈列表deliveryList后,用wx.setStorageSync()将它保存在缓存中,随后把deliveryList数组渲染到WXML文件中。用户在“职位详情”点击“投递简历”就可以发送自己的个人信息,如果收到答复,则可以在“信箱”界面看到答复的情况,“通过”表示用户通过了简历筛选,“不合适”表示用户没有达到要求,用户点击列表后,会看到相应的通知信息,实现效果如图4-7所示。图 47 求职反馈4.2.7 “收藏职位”功能实现此功能通过绑定一个save事件来实现,首先用一个jobData数组把收藏的职位通过push()方法连接在一起,再调用wx.setStorageSync()方法把jobData放在缓存当中,在“我的”界面里的“收藏职位”的js里调用wx.getStorageSync()方法来获取当前的jobData,并将它渲染到WXML文件当中。用户在“职位详情”中点击收藏职位,左下方的星星图标会变色,显示已收藏,随后可以“我的”界面里的“职位收藏”看到自己收藏的职位,实现效果如图4-8所示。图 48收藏职位4.2.8 “发布职位”功能实现此功能在后台实现,管理系统的前端通过调用后台jobController的add接口,用ajax方式提交职位信息给后台,其中,“职位描述”的输入需要用到html编辑器,在这里我用的是ueditor这款编辑器,此外,在小程序获取数据时,本设计使用了微信小程序的富文本转换类型<rich-text>来去除数据的html标签。管理员需在左方的菜单上点击添加职位,选择职位类别,输入职位名称、描述等职位信息,输入完毕后,点击保存即可,实现效果如图4-9所示。图4-9发布职位4.3 数据库实现4.3.1数据库表分析为了满足招聘小程序的开发,我需要用到管理员模块、用户模块、公司信息模块、职位模块、简历投递模块。以下对数据表进行简单的说明:1) 管理员表:存放着管理员的账号和密码;2) 用户表:存放着用户的基本资料,用户的openId,名字、电话、邮箱、简历文件等;3) 公司表:存放公司的基本信息;4) 职位表:存放着职位的基本信息,发布企业,发布公司等;5) 求职反馈表:存放着投递职位、投递人等信息;6) 职位类别表:存放着职位类别名、职位类别描述信息。4.3.2 数据库表的详细实现1) 管理员表(admin)里有字段username和password,其中username是用户名,password是密码,表的设计如表4-1所示;表4-1管理员表结构编号字段名称字段类型字段说明备注1use