【維普】軟件工程-基于微信小程序的在線招聘系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁
【維普】軟件工程-基于微信小程序的在線招聘系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第2頁
【維普】軟件工程-基于微信小程序的在線招聘系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第3頁
【維普】軟件工程-基于微信小程序的在線招聘系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第4頁
【維普】軟件工程-基于微信小程序的在線招聘系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩56頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

基于微信小程序的在線招聘系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)目錄緒論1.1研究背景隨著計(jì)算機(jī)技術(shù)的發(fā)展和互聯(lián)網(wǎng)的普及,網(wǎng)上招聘已經(jīng)成為了許多求職者以及大學(xué)畢業(yè)生的主要求職途徑。相較于傳統(tǒng)的招聘方式,網(wǎng)絡(luò)招聘突破了時(shí)間和地域的限制,使得地方招聘信息不在局限與小部分群體,招聘者能夠?qū)ふ腋嗟娜瞬?,而求職者也能查閱更多的崗位信息。除此之外,網(wǎng)絡(luò)招聘還降低了傳統(tǒng)招聘成本[1],線上簡歷以及線上測驗(yàn)減少了紙質(zhì)材料的浪費(fèi),同時(shí)網(wǎng)絡(luò)招聘還提供了線上聊天功能,增強(qiáng)了求職者與招聘者之間的溝通與交流。在數(shù)字經(jīng)濟(jì)時(shí)代,大學(xué)生要面對新的就業(yè)形勢、復(fù)雜的就業(yè)行情和激烈的競爭[2],而在新冠疫情的影響下,求職者線下投遞求職以及企業(yè)招聘者線下面試錄取都受到了一定的阻礙,在線招聘在求職者與招聘者的高效掛鉤扮演著愈發(fā)重要的角色。本課題設(shè)計(jì)的就是這么一項(xiàng)在線招聘系統(tǒng),目的在于充分發(fā)揮網(wǎng)絡(luò)技術(shù)的發(fā)展在招聘求職方面所帶來的高效便利,給予招聘者與求職者溝通平臺(tái),

用人單位借助互聯(lián)網(wǎng)發(fā)布招聘信息,應(yīng)聘者在線投遞簡歷,通過交流,讓雙方能夠更好地互相了解。通過網(wǎng)絡(luò)擴(kuò)大招聘信息的獲取和傳達(dá),通過算法實(shí)現(xiàn)人才或崗位推送,讓求職者能夠擁有更多的選擇,找到自己心儀的崗位,同時(shí)能讓企業(yè)能夠挖掘想要的人才,緩解并減少新冠疫情在求職招聘所帶來的不利影響,降低成本。1.2國內(nèi)外研究現(xiàn)狀網(wǎng)絡(luò)招聘源自于美國,憑借其方便快捷的招聘方式,已成為很多國家篩選人才的首要選擇[3]。Breaugh學(xué)者(2008)以及Schuler學(xué)者(2006)認(rèn)為企業(yè)招聘方式及途徑等行為方式對應(yīng)聘人員的影響頗深,企業(yè)招聘人員應(yīng)充分認(rèn)識(shí)業(yè)務(wù)部門與外部環(huán)境的密切聯(lián)系,企業(yè)開放自己,擁抱社會(huì),才是一個(gè)企業(yè)正確發(fā)展方式,而在線招聘就提供了一個(gè)良好的機(jī)會(huì)。國外研究表明,面對競爭力激烈的社會(huì),網(wǎng)絡(luò)招聘不僅能為能力弱的人提供機(jī)會(huì),還可以為能力強(qiáng)的人提高更好的選擇。對于國內(nèi)來說,在線招聘方式雖然起步較晚,但非常重視,并且取得了優(yōu)異的成績。據(jù)艾瑞統(tǒng)計(jì)數(shù)據(jù)顯示[4],2018年中國網(wǎng)絡(luò)招聘市場收入達(dá)到91.2億元,增速高達(dá)到31%。觀察2010年~2020年中國網(wǎng)絡(luò)招聘市場營收規(guī)模可知,2016年以后,中國網(wǎng)絡(luò)招聘市場營收規(guī)模呈顯著上升趨勢[5]。2020年底全國有近28000個(gè)招聘網(wǎng)站,通過網(wǎng)絡(luò)發(fā)布崗位招聘信息超過16億條,發(fā)布求職信息超過8億條[6]。,而傳統(tǒng)招聘模式成本高、人才招聘難度大、人才缺口明顯等,已成為制約人才資源有效流動(dòng)的現(xiàn)實(shí)難題[7]。習(xí)近平同志在中央人才工作會(huì)議上強(qiáng)調(diào),深入實(shí)施新時(shí)代人才強(qiáng)國戰(zhàn)略,加快建設(shè)世界重要人才中心和創(chuàng)新高地。千秋基業(yè),人才為本,當(dāng)前我國正處于轉(zhuǎn)型的關(guān)鍵期,才人的重要性不言而喻。在線招聘為優(yōu)秀人才提供了展示自己的空間,也為優(yōu)秀企業(yè)尋找人才提供了途徑。但近年來,我國在線招聘方式面臨著一些問題,其中最為突出的就是招聘詐騙,在線招聘也帶來了新的詐騙方式,主要因?yàn)榧夹g(shù)框架老舊,安全認(rèn)證不嚴(yán)謹(jǐn),邏輯處理欠缺等原因給不法分子鉆了空擋[8],如何整治這種新型詐騙方式,提高在線招聘的可信性和真實(shí)姓是每個(gè)開發(fā)者都應(yīng)該考慮的問題。在線招聘系統(tǒng)應(yīng)該隨著時(shí)代變化而不停更新,而在如今這個(gè)社會(huì),我們更應(yīng)該考慮在線招聘系統(tǒng)的安全性以及高效性。這也是目前每個(gè)在線招聘系統(tǒng)開發(fā)者正在做的事情。本課題就是利用自身學(xué)到的開發(fā)技術(shù)以及目前社會(huì)比較流行的框架技術(shù)設(shè)計(jì)一個(gè)在線招聘系統(tǒng),希望能為用戶帶來更優(yōu)越的體驗(yàn),實(shí)現(xiàn)企業(yè)與人才高校掛鉤。1.3研究目標(biāo)與研究內(nèi)容1.3.1研究目標(biāo)與內(nèi)容研究目的:互聯(lián)網(wǎng)技術(shù)的發(fā)展和普及,傳統(tǒng)招聘方式也逐漸被在線招聘所取代。特別是在如今新冠情況下,傳統(tǒng)招聘是受到了阻礙,在線招聘成為如今求職者、招聘者最佳選擇。在線招聘可以輕易獲取更多的招聘信息,操作簡單[9],效率高,且不受地域、時(shí)間限制,更能與企業(yè)HR零距離溝通了解。本課題打算設(shè)計(jì)并實(shí)現(xiàn)這么一個(gè)系統(tǒng),建立起求職者與招聘者之間溝通橋梁,實(shí)現(xiàn)雙方完美掛鉤。研究內(nèi)容:本課題實(shí)現(xiàn)了前端-后端分離的在線招聘系統(tǒng)的設(shè)計(jì)和搭建。該系統(tǒng)以用戶主體,突出功能性,前端應(yīng)為用戶提供簡潔的信息展示,多功能的篩選,數(shù)據(jù)可視化處理等功能,將招聘信息進(jìn)行整合、優(yōu)化,幫助人才與崗位更好的對接。系統(tǒng)設(shè)有交流模塊,用戶間能夠進(jìn)行良好的通信,實(shí)現(xiàn)雙向奔赴。1.3.2關(guān)鍵技術(shù)和難點(diǎn)系統(tǒng)采取前后端分離思想,前端以微信小程序和Vue等相關(guān)技術(shù)進(jìn)行設(shè)計(jì),后端采用SpringBoot等框架技術(shù)進(jìn)行搭建。系統(tǒng)分為三類用戶,求職者、招聘者和系統(tǒng)管理員。求職者與招聘者通過小程序完成相應(yīng)功能,系統(tǒng)管理者通過網(wǎng)頁進(jìn)行管理。前端主要涉及到的技術(shù)有微信小程序開發(fā)技術(shù),IM即時(shí)通信技術(shù),Vue開發(fā)技術(shù),Echarts技術(shù),Axois前后端交互技術(shù)等。后端主要涉及到的技術(shù)有Java開發(fā)技術(shù),SpringBoot框架技術(shù),MyBatis-Plus技術(shù),MySQL技術(shù),SMMP架構(gòu)技術(shù),Restful風(fēng)格開發(fā)技術(shù)等。主要開發(fā)工具有IDEA,MySQL,VisualStudioCode,微信開發(fā)者工具等。主要難點(diǎn)有IM技術(shù)在溝通交流模塊的使用,數(shù)據(jù)庫字段的設(shè)計(jì)以及表之間的聯(lián)系,多條件查詢及多條件篩選的實(shí)現(xiàn),分頁功能實(shí)現(xiàn),界面的布局及實(shí)現(xiàn),前后端數(shù)據(jù)的交互以及處理。相關(guān)技術(shù)介紹:Vue是一款用于構(gòu)建用戶界面的JavaScript框架[10]。它基于標(biāo)準(zhǔn)HTML、CSS和JavaScript構(gòu)建,并提供了一套聲明式的、組件化的編程模型,可以高效地開發(fā)用戶界面。Vue是一個(gè)框架,也是一個(gè)生態(tài)。其功能覆蓋了大部分前端開發(fā)常見的需求。但Web世界是十分多樣化的,不同的開發(fā)者在Web上構(gòu)建的東西可能在形式和規(guī)模上會(huì)有很大的不同。考慮到這一點(diǎn),Vue的設(shè)計(jì)非常注重靈活性和“可以被逐步集成”這個(gè)特點(diǎn)[11]。MyBatis-Plus(簡稱MP)是一個(gè)基于MyBatis的增強(qiáng)工具,它對MyBatis的基礎(chǔ)功能進(jìn)行了增強(qiáng),但未做任何改變。使得我們可以可以在MyBatis開發(fā)的項(xiàng)目上直接進(jìn)行升級為MyBatis-Plus,正如它對自己的定位,它能夠幫助我們進(jìn)一步簡化開發(fā)過程,提高開發(fā)效率[12]。MyBatis-Plus其實(shí)可以看作是對MyBatis的再一次封裝,升級之后,對于單表的CRUD操作,調(diào)用MyBatis-Plus所提供的API就能夠輕松實(shí)現(xiàn),此外還提供了各種查詢方式、分頁等行為。SpringBoot是基于Spring開發(fā)的一種輕量級的全新框架[13],不僅繼承了Spring框架原有的優(yōu)秀特性,而且還通過簡化配置來進(jìn)一步簡化了Spring應(yīng)用的整個(gè)搭建和開發(fā)過程[14]。通過SpringBoot,可以輕松地創(chuàng)建獨(dú)立的,基于生產(chǎn)級別的基于Spring的應(yīng)用程序。SpringBoot也常被成為微框架。Echarts,一個(gè)純JavaScript的圖表庫[15],可以流暢的運(yùn)行在PC和移動(dòng)設(shè)備上,兼容當(dāng)前絕大部分瀏覽器(IE8/9/10/11,Chrome,F(xiàn)irefox,Safari等),底層依賴輕量級的Canvas類庫ZRender,提供直觀,生動(dòng),可交互,可高度個(gè)性化定制的數(shù)據(jù)可視化圖表。即時(shí)通信IM(InstantMessaging)基于騰訊二十余年的IM技術(shù)積累,支持Android、iOS、Mac、Windows、Web、H5、小程序平臺(tái)且跨終端互通,集成單聊、群聊、關(guān)系鏈、消息漫游、群組管理、資料管理、直播彈幕和內(nèi)容審核等能力。適用于直播互動(dòng)、電商帶貨、客服咨詢、社交溝通、在線課程、企業(yè)辦公、互動(dòng)游戲、醫(yī)療健康等場景,以覆蓋全球的加速站點(diǎn)和數(shù)據(jù)存儲(chǔ)中心提供高可靠、低時(shí)延、高安全的通信云服務(wù)[16]。1.4章節(jié)安排全文將從以下幾個(gè)方面進(jìn)行論述:第一章緒論介紹了本系統(tǒng)的研究背景和意義,以及在實(shí)際設(shè)計(jì)、搭建過程中的思路和方法,并且闡述了本文整體的框架結(jié)構(gòu)。第二章主要介紹系統(tǒng)的需求分析,業(yè)務(wù)需求分析、可行性分析。第三章主要介紹本系統(tǒng)的總體設(shè)計(jì)過程。主要包括系統(tǒng)的整體架構(gòu)設(shè)計(jì)、前后臺(tái)系統(tǒng)設(shè)計(jì)、數(shù)據(jù)庫表設(shè)計(jì)和安全性設(shè)計(jì)等。第四章主要對本系統(tǒng)中各個(gè)功能模塊進(jìn)行了詳細(xì)的設(shè)計(jì)說明。主要包含每個(gè)模塊的功能介紹、流程圖設(shè)計(jì)以及操作流程等。第五章主要介紹本系統(tǒng)中重要功能模塊的具體實(shí)現(xiàn)方式以及實(shí)現(xiàn)效果。第六章主要介紹對系統(tǒng)進(jìn)行了規(guī)范化測試,確保所開發(fā)的產(chǎn)品能夠更好的符合產(chǎn)品需求。第七章主要進(jìn)行了論文的總結(jié)工作,分析系統(tǒng)目前的不足之處和未來的優(yōu)化方向。第2章系統(tǒng)分析2系統(tǒng)分析2.1業(yè)務(wù)需求本系統(tǒng)分為用戶端和管理者端,用戶端有兩類用戶,分別為求職者和招聘者,求職者也就是找工作的人,招聘者也就是找勞動(dòng)力的人。用戶端的功能與管理者端的功能模塊不相同。圖2.1為系統(tǒng)架構(gòu)設(shè)計(jì)圖。求職者用戶包括四大板塊,分別為招聘信息、論壇、消息、我的,招聘者用戶也具有四大板塊,分別為首頁、求職信息、消息、我的,管理者涵蓋三大板塊,分別為信息模塊、數(shù)據(jù)分析、個(gè)人信息。圖2.1系統(tǒng)架構(gòu)設(shè)計(jì)圖2.2需求分析2.2.1功能需求分析用戶端分為兩類用戶,分別為求職者和招聘者,是用小程序開發(fā)的。求職者在進(jìn)入系統(tǒng)后首先會(huì)進(jìn)行登錄,登錄使用的微信授權(quán)登錄,登錄前系統(tǒng)會(huì)查看是否有過授權(quán)登錄記錄,如果有直接登錄無需再次授權(quán),如果沒有,則會(huì)向求職者申請授權(quán)登錄請求,求職者同意則登錄成功。進(jìn)入系統(tǒng)后,求職者可以查看一些崗位需求信息并對信息進(jìn)行篩選,查詢和收藏,還可以瀏覽論壇,參與評論并點(diǎn)贊,還可以有感興趣的崗位聯(lián)系人進(jìn)行聊天,求職者在我的模塊完善個(gè)人信息,增強(qiáng)自身競爭力。圖2.2所示為求職者具體功能示意圖。招聘者與求職者類似,同樣使用微信授權(quán)登錄實(shí)現(xiàn)登錄功能,同樣可以在消息模塊中查看信息列表,在求職信息模塊查詢求職者數(shù)據(jù)并與感興趣的求職者聊天,在我的模塊完善個(gè)人信息。除此之外,招聘者可以在首頁對自己發(fā)布的崗位進(jìn)行修改和刪除,并且可以發(fā)布新崗位。圖2.3所示為招聘者具體功能示意圖。管理者使用Vue等web技術(shù)開發(fā),與用戶不同,平臺(tái)是瀏覽器。管理者通過賬號(hào)密碼進(jìn)行登錄,登錄成功進(jìn)入系統(tǒng)后,管理者可以在信息模塊查看所有求職者和所有招聘者的數(shù)據(jù),數(shù)據(jù)以分頁表格形式呈現(xiàn),管理者可以對數(shù)據(jù)進(jìn)行篩選、查詢、詳細(xì)查看和刪除。數(shù)據(jù)分析模塊主要以柱狀圖和餅圖形式顯示當(dāng)前系統(tǒng)中招聘者發(fā)布的崗位與求職者需要的職位之間的關(guān)系。管理者可以修改自身的頭像和昵稱。圖2.4所示為管理者具體功能示意圖。圖2.2求職者系統(tǒng)功能圖圖2.3招聘者系統(tǒng)功能圖圖2.4管理者系統(tǒng)功能圖2.2.2非功能需求分析(1)開發(fā)環(huán)境需求本系統(tǒng)開發(fā)是在筆記本電腦上進(jìn)行,本人筆記本配置如下:8核處理器、運(yùn)行內(nèi)存在8G、固態(tài)是512G,機(jī)械內(nèi)存512G。具有MySQL數(shù)據(jù)庫、Node.js、JDK、python等環(huán)境,以及VSCode、IDEA等前后臺(tái)編譯軟件。用戶端是通過手機(jī)微信小程序使用的,管理者端是通過瀏覽器使用的。管理者端盡量在win10版本上使用,谷歌瀏覽器為IE11以上版本。(2)性能需求對于用戶的操作,系統(tǒng)應(yīng)能夠?qū)崿F(xiàn)較快地響應(yīng)。頁面平均響應(yīng)時(shí)間低于1s,可以支持多用戶、高并發(fā),CPU使用率小于60%(3)易用性需求系統(tǒng)支持多系統(tǒng)移植,系統(tǒng)具有良好的可拓展性,可以便于新功能的的添加和就功能的修改。2.3可行性分析2.3.1操作可行性分析本系統(tǒng)用戶端為小程序,只需在微信上點(diǎn)擊小程序圖標(biāo)就可使用,無需下載安裝。管理者端為PC端的web項(xiàng)目,在瀏覽器端就可以實(shí)現(xiàn)訪問,也無需額外安裝本地客戶端,對于用戶來說,訪問簡單便捷。界面設(shè)計(jì)簡潔明了,無需復(fù)雜的操作以及豐富計(jì)算機(jī)知識(shí)即可正常使用,具有用戶使用可行性。2.3.2經(jīng)濟(jì)可行性分析本系統(tǒng)屬于個(gè)人項(xiàng)目,全部有個(gè)人設(shè)計(jì)、開發(fā)并且實(shí)現(xiàn),只在個(gè)人電腦上部署運(yùn)行,由個(gè)人進(jìn)行后續(xù)維護(hù),不會(huì)產(chǎn)生維護(hù)費(fèi)用;未雇用人員,沒有人員費(fèi)用;也無需其他軟件以及技術(shù)費(fèi)用。故經(jīng)濟(jì)是可行的2.3.3技術(shù)可行性分析本系統(tǒng)所使用的前后端開發(fā)技術(shù)都是目前社會(huì)廣泛流行的技術(shù),用戶端的微信小程序開發(fā)技術(shù),在軟件企業(yè)使用廣泛,產(chǎn)品頗多。微信小程序開發(fā)技術(shù)由騰訊公司專門人員進(jìn)行維護(hù)和升級,在安全性和功能性上保證性很高。管理者端使用Vue技術(shù)進(jìn)行瀏覽器頁面開發(fā),該技術(shù)在市場上已經(jīng)廣泛使用,該技術(shù)具有專門的官網(wǎng)并且提供從入門到高階的全部教程,并且由專門的人員進(jìn)行維護(hù),在技術(shù)上不存在問題。系統(tǒng)的后臺(tái)采用SpringBoot框架技術(shù),采用SSMP架構(gòu),整合MyBatis-Plus,相比較單純的Spring、SpringMVC,SpringBoot不僅整合封裝Spirng、SpringMVC,而且簡化了Spring、SpringMVC復(fù)雜的配置文件的編寫,使得SpringBoot更容易上手的同時(shí)也便于兼?zhèn)涠嗫蚣艿墓δ堋R陨霞夹g(shù)本人都熟悉并且多次使用,所以技術(shù)上是可行的。2.4本章小結(jié)本章對本系統(tǒng)的功能需求,非功能需求,性能分析,開發(fā)環(huán)境分析和可行性分析都做了具體的介紹和深入的研究。保證了本系統(tǒng)的可開發(fā)性和可使用性。為接下來的開發(fā)做足了準(zhǔn)備。第3章系統(tǒng)總體設(shè)計(jì)3系統(tǒng)總體設(shè)計(jì)3.1架構(gòu)設(shè)計(jì)本系統(tǒng)前后端分離,主要分為服務(wù)器端和前端兩部分,服務(wù)器端主要采用SpringBoot和Mybatis-Plus框架技術(shù)實(shí)現(xiàn),前端分為用戶(求職者和招聘者)和管理者,用戶端主要采用微信小程序技術(shù)實(shí)現(xiàn),并配合IM即時(shí)通信技術(shù)實(shí)現(xiàn)消息聊天功能,前后端采用http通訊協(xié)議,用戶端使用小程序自帶HTTPAPI通過http通訊協(xié)議與后端進(jìn)行數(shù)據(jù)交互。管理者端使用Vue相關(guān)技術(shù)進(jìn)行開發(fā),配合ElementUI進(jìn)行網(wǎng)頁頁面渲染,通過Axios技術(shù)進(jìn)行前后端數(shù)據(jù)傳遞。數(shù)據(jù)庫采用MySQL關(guān)系型數(shù)據(jù)庫對數(shù)據(jù)進(jìn)行分表存儲(chǔ),并圖片資源存儲(chǔ)后端服務(wù)器上,數(shù)據(jù)庫只保存圖片url,以減輕數(shù)據(jù)庫的存儲(chǔ)壓力,該系統(tǒng)的整體設(shè)計(jì)架構(gòu)圖如圖3.1所示。圖3.1系統(tǒng)流程圖3.2系統(tǒng)總體設(shè)計(jì)本課題設(shè)計(jì)的在線招聘系統(tǒng)的設(shè)計(jì)主要由三部分組成,分別為前端設(shè)計(jì),服務(wù)器后端設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì)。后端以SpringBoot技術(shù)進(jìn)行搭建部署,采用SSMP架構(gòu),該架構(gòu)實(shí)在原本SSM基礎(chǔ)上將MyBatis技術(shù)改為MyBatis-Plus,該架構(gòu)既可以使用MyBatis框架技術(shù)在數(shù)據(jù)庫持久層進(jìn)行開發(fā),還可以使用MyBatis-Plus封裝的CRUD,進(jìn)一步簡化后端開發(fā)。該架構(gòu)同樣是在傳統(tǒng)的Service、Dao、Controller三層架構(gòu)的基礎(chǔ)之上進(jìn)行了相應(yīng)的解耦和優(yōu)化。其中,使用MyBatis框架來封裝原有持久層,重點(diǎn)處理數(shù)據(jù)的持久化工作,又利用MyBatis-Plus技術(shù)進(jìn)行條件查詢和分頁,提高數(shù)據(jù)持久層的功能;由于SpringBoot本質(zhì)是對Spring、SpringMVC的封裝,所以項(xiàng)目可以使用注解來自動(dòng)裝配對象。后端將前端上傳的圖片儲(chǔ)存在本地并生成url,并將url存儲(chǔ)于MySQL數(shù)據(jù)庫中,進(jìn)一步減小數(shù)據(jù)庫的存儲(chǔ)壓力,改善查詢效率。服務(wù)器端的實(shí)現(xiàn)原理如圖3.2所示。圖3.2后端流程圖本系統(tǒng)的前端分為用戶端界面和管理者界面,用戶端界面主要采用是基于微信小程序HTML、CSS、JS等技術(shù)進(jìn)行編寫開發(fā),采用組件化開發(fā)方式,減少代碼重復(fù)率,實(shí)現(xiàn)組件多次利用,減少代碼量。小程序開發(fā)使用的容器、組件多以rpx為單位,避免在不同手機(jī)設(shè)備中大小比例不一致問題。用戶端界面在開發(fā)過程中,本人自定義并使用多個(gè)組件改善并簡化使用原生組件帶來的復(fù)雜,給用戶帶來更好的體驗(yàn),并在選擇器中使用自定義選擇器,避免用戶手打操作。管理者端界面使用了HTML、CSS、JS等web技術(shù)并使用Vue框架對數(shù)據(jù)進(jìn)行響應(yīng)式綁定和Vue組件化開發(fā)。管理者端界面使用了ElementUI圖表、按鈕、標(biāo)簽,菜單欄等組件;管理者界面開發(fā)過程中使用Node技術(shù)集成了Echarts圖表庫,并實(shí)現(xiàn)了以柱狀圖和餅狀圖的方式對數(shù)據(jù)進(jìn)行分析和處理,增強(qiáng)了數(shù)據(jù)可視化。并繼承了V-Distpicker組件,實(shí)現(xiàn)地點(diǎn)選擇器功能,便于用戶選擇和操作。無論是用戶端還是管理者端,跟服務(wù)器后端的交互都是通過http協(xié)議以訪問url形式請求后端,后端控制器監(jiān)聽,收到前端請求后調(diào)用業(yè)務(wù)層進(jìn)行業(yè)務(wù)處理,業(yè)務(wù)層在處理的過程中有調(diào)用持久層實(shí)現(xiàn)與數(shù)據(jù)庫數(shù)據(jù)的交互,最終返回?cái)?shù)據(jù)給控制層,控制層進(jìn)行封裝傳給前端,實(shí)現(xiàn)前端與數(shù)據(jù)庫數(shù)據(jù)的共享。一般來說前后端數(shù)據(jù)是要進(jìn)行解析成json格式進(jìn)行傳遞的。而前端向后端發(fā)送請求一般都是通過用戶操作觸發(fā)的事件(Event)或者頁面生命周期中的特定方法來實(shí)現(xiàn)的,通過請求和響應(yīng)完成數(shù)據(jù)更新。3.3數(shù)據(jù)庫設(shè)計(jì)3.3.1數(shù)據(jù)庫介紹本課題要實(shí)現(xiàn)的系統(tǒng)是在線招聘系統(tǒng),涉及到用戶,崗位、勞動(dòng)力以及系統(tǒng)功能需要存儲(chǔ)的論壇、收藏等數(shù)據(jù),這些數(shù)據(jù)存在較強(qiáng)關(guān)聯(lián)性,對數(shù)據(jù)間的一致性比較嚴(yán)格,要盡量避免數(shù)據(jù)上下不一問題。同時(shí),本課題使用的是Java技術(shù),Java是一種面向?qū)ο蟮恼Z言,考慮的是對象間的聯(lián)系。而關(guān)系型數(shù)據(jù)庫典型的數(shù)據(jù)結(jié)構(gòu)是表,由二維表及其之間的聯(lián)系所組成的一個(gè)數(shù)據(jù)組織,以具有相互關(guān)聯(lián)的表格進(jìn)行統(tǒng)計(jì)和連接,跟面向?qū)ο蠓椒ㄋ枷氡容^契合,同時(shí),關(guān)系型數(shù)據(jù)庫操作方便、便于訪問數(shù)據(jù)、低成本高性能、便于訪問數(shù)據(jù)等優(yōu)點(diǎn)[17],所以本系統(tǒng)數(shù)據(jù)庫選取MySQL關(guān)系型數(shù)據(jù)庫。MySQL是開源的,可以免費(fèi)使用,具有高性能、高擴(kuò)展性、高安全性等優(yōu)勢,而且MySQL不僅可以在Windows系列的操作系統(tǒng)上運(yùn)行,還可以在UNIX、Linux和MacOS等操作系統(tǒng)上運(yùn)行,具有較強(qiáng)的可移植性,便于后面后端服務(wù)器的部署。系統(tǒng)進(jìn)行持久化的核心便是數(shù)據(jù)庫存儲(chǔ),用戶的信息、招聘信息(包括崗位和勞動(dòng)力)、論壇信息、收藏信息等數(shù)據(jù)都在不停的變化,同時(shí)我們也在無時(shí)無刻地訪問修改這些數(shù)據(jù),這就要求我們需要在數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),也就是各個(gè)數(shù)據(jù)表結(jié)構(gòu)進(jìn)行詳細(xì)的設(shè)計(jì)與安排,妥善并且合理有效地關(guān)聯(lián)各個(gè)數(shù)據(jù)表之間的關(guān)系,當(dāng)數(shù)據(jù)發(fā)生變動(dòng)或者查詢修改某項(xiàng)數(shù)據(jù)時(shí),能夠及時(shí)正確地進(jìn)行運(yùn)作與更新,保證數(shù)據(jù)地正確性,能夠?qū)⒆钚碌臄?shù)據(jù)實(shí)時(shí)展示出來。在使用MySQL數(shù)據(jù)庫時(shí),本系統(tǒng)使用了數(shù)據(jù)庫管理工具Navicat,NavicatPremium是一個(gè)可多重連接的數(shù)據(jù)庫管理工具,它可以讓單一的程序同時(shí)連接到不同的數(shù)據(jù)庫。Navicat是的圖形用戶界面良好,容易上手,可以讓使用者安全并簡單的方式創(chuàng)建、組織、訪問并共用信息。它可以用來對本機(jī)或遠(yuǎn)程的MySQL、SQLServer、SQLite、Oracle及PostgreSQL數(shù)據(jù)庫進(jìn)行管理及開發(fā)。3.3.2系統(tǒng)E-R圖E-R圖(EntityRelationshipDiagram)也稱實(shí)體-聯(lián)系圖,分為實(shí)體、屬性、關(guān)系三個(gè)核心部分,抽象出了業(yè)務(wù)數(shù)據(jù)的核心特征。E-R圖是一種語義模型,力圖表達(dá)數(shù)據(jù)的意義[18]。在數(shù)據(jù)庫設(shè)計(jì)階段,需要考慮各個(gè)表的意義和表之間的關(guān)系,而E-R圖中的實(shí)體代表著數(shù)據(jù)表,聯(lián)系表示著表間關(guān)系,E-R圖以一種可視化的圖表形式表現(xiàn)數(shù)據(jù)庫表間的結(jié)構(gòu)與聯(lián)系,幫助開發(fā)者考慮數(shù)據(jù)庫中實(shí)體與實(shí)體間的關(guān)聯(lián),設(shè)計(jì)合理的數(shù)據(jù)庫表結(jié)構(gòu),提高系統(tǒng)的高效性,可維護(hù)性,減少系統(tǒng)因不合理表結(jié)構(gòu)而帶來的問題。E-R圖的設(shè)計(jì)中要考慮到實(shí)體、屬性、實(shí)體聯(lián)系間的關(guān)系,設(shè)計(jì)出正確合理的E-R圖是設(shè)計(jì)出完美的數(shù)據(jù)庫的第一步。本系統(tǒng)的E-R圖如圖3.3所示。圖3.3系統(tǒng)E-R圖3.3.3數(shù)據(jù)表設(shè)計(jì)本系統(tǒng)共涉及到5張數(shù)據(jù)表:用戶表、崗位信息表、人才信息表、論壇聊天表、話題記錄表等,具體表結(jié)構(gòu)如下表3.1、表3.2、表3.3、表3.4、表3.5所示。用戶表表3.1用戶表編號(hào)字段名字段類型大小允許為空最大長度備注信息1uidvarchar255F255主鍵2nick_namevarchar255F255用戶名3genderInt(2)5T10性別4avatar_urlvarchar255T255頭像5identitychar2F2身份崗位信息表表3.2崗位信息表編號(hào)字段名字段類型大小允許為空最大長度備注信息1pidint(10)5F10主鍵,自增2uidvarchar255F255用戶標(biāo)識(shí)3namevarchar255F255用戶昵稱4positionvarchar255F255用戶職位5avatarvarchar255F255用戶頭像6corporationvarchar255F255公司名稱7iconvarchar255F255公司icon8postvarchar255F255崗位名稱9descriptionvarchar255F255公司簡介10placevarchar255F255工作地點(diǎn)11salaryvarchar255F255工作薪資12typevarchar40F255工作類型13backgroundvarchar40F255學(xué)歷要求14statusvarchar40F255身份要求15polityvarchar40F255政治風(fēng)貌要求16datedate20F255崗位發(fā)布時(shí)間求職信息表表3.3人才信息表編號(hào)字段名字段類型大小允許為空最大長度備注信息1sidint(10)5F10主鍵,自增2uidvarchar255F255用戶標(biāo)識(shí)3namevarchar255F255用戶昵稱4birthdate20F255出生日期5avatarvarchar255F255用戶頭像6sexint(2)2F10用戶性別7placevarchar255F255居住地8phonevarchar255F255聯(lián)系方式9backgroundvarchar40F255學(xué)歷10statusvarchar40F255身份11polityvarchar40F255政治風(fēng)貌12advantagevarchar255F255個(gè)人優(yōu)勢13ejobvarchar255F255期望崗位14esalaryvarchar255F255期望薪資15ecityvarchar255F255期望城市16etypevarchar255F255工作類型17startdate20F255到崗時(shí)間論壇聊天表表3.4論壇聊天表編號(hào)字段名字段類型大小允許為空最大長度備注信息1ridint(10)5F10主鍵,自增2tidint(10)5F10話題標(biāo)識(shí)3uidvarchar255F255用戶標(biāo)識(shí)4namevarchar255F255用戶昵稱5datedate20F255時(shí)間6textvarchar255F255文本7avatarvarchar255F255用戶頭像話題記錄表表3.5話題記錄表編號(hào)字段名字段類型大小允許為空最大長度備注信息1tidint(10)5F10主鍵,自增2uidvarchar255F255用戶標(biāo)識(shí)3namevarchar255F255用戶昵稱4avatarvarchar255F255用戶頭像5topicvarchar255F255標(biāo)題6answervarchar255F255內(nèi)容7goodsint(10)10F10點(diǎn)贊數(shù)8datedate20F255發(fā)布時(shí)間3.4系統(tǒng)模塊設(shè)計(jì)本系統(tǒng)涵蓋有面向用戶的前臺(tái)系統(tǒng)以及面向管理員的后臺(tái)系統(tǒng),其主要的模塊可以劃分為:3.4.1前臺(tái)系統(tǒng)模塊分為兩類用戶,分別為求職者和招聘者。用例圖見圖3.4和圖3.5。求職者登錄模塊:登錄過的,后臺(tái)尋找記錄,直接登錄。未登錄過的,請求用戶授權(quán),使用微信授權(quán)登錄。有用戶身份選擇。招聘信息模塊:具有崗位信息展示,提供搜索框,多個(gè)字段選擇器,幫助用戶篩選信息,可以進(jìn)行關(guān)鍵模糊查詢,時(shí)間篩選、地點(diǎn)篩選、崗位篩選,還具有收藏功能。論壇模塊:具有論壇話題展示,具有點(diǎn)贊,查看評論功能,可以顯示點(diǎn)贊數(shù)。消息模塊:具有消息列表,可以查看別用戶發(fā)給你的消息,可以與感興趣的崗位聯(lián)系人進(jìn)行消息交流,記錄每條信息內(nèi)容及時(shí)間,消息附帶用戶頭像及昵稱,幫助用戶分辨。我的模塊:具有完善求職信息,查看用戶所收藏的崗位并提供崗位路由。招聘者登錄模塊:登錄過的,后臺(tái)尋找記錄,直接登錄。未登錄過的,請求用戶授權(quán),使用微信授權(quán)登錄。有用戶身份選擇。首頁模塊:具有查看所發(fā)布的崗位信息,發(fā)布新崗位、修改或者刪除已發(fā)布的崗位的功能。求職信息模塊:具有人才信息展示,提供搜索框,多個(gè)字段選擇器,幫助用戶篩選信息,可以進(jìn)行關(guān)鍵模糊查詢,薪資篩選、地點(diǎn)篩選、崗位篩選。人才信息展示應(yīng)顯示求職用戶的頭像、昵稱等重要信息,如果招聘者感興趣,還可以點(diǎn)擊進(jìn)入詳細(xì)頁面。消息模塊:具有消息列表,可以查看別用戶發(fā)給你的消息,可以與感興趣的崗位聯(lián)系人進(jìn)行消息交流,記錄每條信息內(nèi)容及時(shí)間,消息附帶用戶頭像及昵稱,幫助用戶分辨。我的頁面:完善個(gè)人信息,幫助其他用戶更好了解自己。圖3.4求職者用例圖圖3.5招聘者用例圖3.4.2后臺(tái)系統(tǒng)模塊登錄模塊:管理人員通過用戶名和唯一標(biāo)識(shí)完成登錄進(jìn)入系統(tǒng)。個(gè)人信息模塊:對自身信息進(jìn)行管理,包括:更改自身頭像和昵稱。信息模塊:對前端以及數(shù)據(jù)庫中的招聘數(shù)據(jù)以及求職數(shù)據(jù)進(jìn)行管理,提供多種選擇器,以及搜索框幫助管理者進(jìn)行信息篩選,并可以進(jìn)入詳細(xì)頁面查看該條記錄的詳細(xì)內(nèi)容,也可以刪除該條記錄。數(shù)據(jù)分析模塊:對系統(tǒng)中招聘數(shù)據(jù)和求職數(shù)據(jù)進(jìn)行整合統(tǒng)計(jì)并以餅狀圖和柱狀圖的方式進(jìn)行展示。用例圖見圖3.6圖3.6管理員用例圖3.5安全性設(shè)計(jì)在設(shè)計(jì)軟件系統(tǒng)時(shí),特別是軟件數(shù)據(jù)處理時(shí),必須要重視系統(tǒng)的安全控制和可靠性設(shè)計(jì),保證數(shù)據(jù)的正確性,保證數(shù)據(jù)的封裝,保證數(shù)據(jù)和系統(tǒng)的有效應(yīng)用。系統(tǒng)設(shè)計(jì)開發(fā)時(shí)應(yīng)考慮到用戶的輸入錯(cuò)誤、非法數(shù)據(jù)訪問、邏輯處理欠缺等問題,防止因系統(tǒng)的缺陷或者數(shù)據(jù)處理中的失誤而出現(xiàn)的欺騙行為。所以本課題在軟件設(shè)計(jì)開發(fā)中格外注意安全性,在頁面的設(shè)計(jì)與開發(fā)中,保證了軟件與用戶之間界面的嚴(yán)格限制。開發(fā)系統(tǒng)是在本人計(jì)算機(jī)中開發(fā),本人計(jì)算機(jī)不曾有過木馬病毒入侵。在數(shù)據(jù)庫安全方面,只有管理員才有權(quán)限寫數(shù)據(jù),并且為管理員提供提供備份服務(wù),防止數(shù)據(jù)庫數(shù)據(jù)丟失。在小程序端用戶登錄方面,采取了較為安全的授權(quán)登錄,防止別用戶在別設(shè)備冒名登錄等問題,登錄時(shí)需要得到用戶授權(quán),尊重用戶的隱私。在網(wǎng)頁端登錄方面管理員的密碼是管理員的唯一標(biāo)識(shí)必須使用微信開發(fā)平臺(tái)本人的APPSDK與本人的ID再進(jìn)行MD5加密才能形成,所以不太出現(xiàn)密碼盜用問題。3.6本章小結(jié)本小結(jié),主要從架構(gòu)、技術(shù)、數(shù)據(jù)庫、模塊、安全等方面對在線招聘系統(tǒng)作了介紹,在線招聘系統(tǒng)后端使用SpringBoot框架技術(shù)使用SSM架構(gòu),前端分為用戶端和管理者端,用戶端使用微信小程序技術(shù)開發(fā),管理者端使用Vue相關(guān)的網(wǎng)頁開發(fā)技術(shù),主要利用組件化開發(fā),將功能模塊化然后組裝起來。各類用戶已經(jīng)給出了大體功能,隨項(xiàng)目的開發(fā)過程中可能有所改變。第4章詳細(xì)設(shè)計(jì)4詳細(xì)設(shè)計(jì)4.1模塊設(shè)計(jì)本課題設(shè)計(jì)開發(fā)的在線招聘系統(tǒng)分為用戶端和管理者端,用戶端使用微信小程序技術(shù)開發(fā),無需安裝,隨想隨用,輕小方便。管理者端采用的是B/S架構(gòu),使用Vue及其相關(guān)技術(shù)開發(fā)。各個(gè)功能模塊如圖4.1所示,其中用戶端分為求職者和招聘者兩類用戶。求職者用戶的系統(tǒng)功能主要是:登錄模塊、招聘信息模塊、論壇模塊、消息模塊、我的模塊。招聘者用戶的系統(tǒng)功能主要是:登錄模塊、首頁模塊、求職信息模塊、消息模塊、我的模塊。后端主要面向管理員,對系統(tǒng)的數(shù)據(jù)包括數(shù)據(jù)庫數(shù)據(jù)和前端數(shù)據(jù)進(jìn)行管理,功能包括:登錄模塊、個(gè)人信息模塊、信息展示模塊、數(shù)據(jù)分析模塊等。圖4.1功能模塊圖4.2功能模塊設(shè)計(jì)4.2.1求職者方面(1)登錄模塊用戶再登錄頁面可以選擇求職者,然后點(diǎn)擊登錄按鈕進(jìn)行登錄。分為兩種情況,這時(shí)候用戶點(diǎn)擊登錄按鈕,這時(shí)系統(tǒng)會(huì)調(diào)用數(shù)據(jù)庫查詢用戶的uid是否存在,其中第一種情況為用戶從未使用過該系統(tǒng)也就是uid不存在,這時(shí)界面后彈出微信授權(quán)提示框,用戶同意則登錄成功。其中的原理是前端在用戶同意授權(quán)的時(shí)候獲取該用戶的微信code,然后發(fā)送給后端,后端使用MD5加密后得到密鑰也就是uid,然后請求微信公共平臺(tái),得到用戶的微信信息,包括昵稱、性別、頭像等,然后后端將uid還有獲取到信息存入數(shù)據(jù)庫,完成登錄。其中第二種情況為用戶使用過該系統(tǒng),也就是在點(diǎn)擊登錄時(shí)系統(tǒng)調(diào)用數(shù)據(jù)庫可以查詢到該用戶的uid,這是就會(huì)顯示提示框檢驗(yàn)到用戶信息可以直接登錄。如圖4.2圖4.2登錄模塊流程圖(2)招聘信息模塊用戶進(jìn)入招聘信息模塊,用戶可以看到系統(tǒng)所展示的崗位信息,在頁面的頂部有搜索框,以及薪資選擇器、地點(diǎn)選擇器、職位選擇器,幫助用戶進(jìn)行特定職位查詢和篩選。用戶在找到自己感興趣的崗位時(shí)可以點(diǎn)擊該崗位,則進(jìn)入該崗位的詳細(xì)頁面,然后點(diǎn)擊開始溝通則可以與該崗位聯(lián)系人進(jìn)行交流討論。如圖4.3圖4.3招聘信息模塊(3)論壇模塊在登錄成功進(jìn)入論壇模塊后,用戶可以瀏覽系統(tǒng)發(fā)布的一些話題,話題會(huì)顯示話題標(biāo)題,話題內(nèi)容、發(fā)布時(shí)間、點(diǎn)贊數(shù)等。用戶可以對感興趣的話題進(jìn)行點(diǎn)贊,點(diǎn)贊數(shù)可以動(dòng)態(tài)顯示。用戶還可以參與討論。如圖4.4圖4.4論壇模塊流程圖(4)消息模塊用戶在登錄成功后,可以進(jìn)入消息模塊,在消息模塊,用戶可以瀏覽到那些用戶給你發(fā)送信息,用戶可以點(diǎn)擊聊天記錄中的用戶頭像進(jìn)入聊天頁面進(jìn)行回復(fù)。用戶還可以通過招聘信息或者收藏欄的詳情頁面進(jìn)入聊天頁面進(jìn)行交流。如下圖圖4.5消息模塊流程圖(5)我的模塊用戶在登錄成功后可以進(jìn)入我的模塊,在我的模塊中用戶可以完善個(gè)人信息,完善個(gè)人信息可以幫助招聘者更好了解該用戶,提高招聘者與用戶的溝通率。此外,用戶可以收藏欄中找到自己收藏過的崗位,實(shí)現(xiàn)該崗位詳細(xì)頁面的直接跳轉(zhuǎn)。具體流程如圖4.6圖4.6我的模塊流程圖4.2.2招聘者方面(1)登錄模塊與求職者相同,見圖4.2(2)首頁模塊用戶登錄成功進(jìn)入首頁模塊,在首頁模塊用戶可以瀏覽自己已發(fā)布的職位,可以對自己已發(fā)布的職位進(jìn)行修改以及刪除。用戶還可以發(fā)布新崗位。具體流程如圖4.7圖4.7首頁模塊流程圖(3)求職信息模塊登錄成功后進(jìn)入求職信息模塊,在該模塊,用戶可以瀏覽一些求職值的信息,模塊設(shè)有搜索框可以進(jìn)行模糊查詢,還有地點(diǎn)選擇器、薪資選擇器、職位選擇器,幫助用戶進(jìn)行信息篩選。再找到自己感興趣的求職信息后可以進(jìn)入詳情頁面,查看該求職者具體信息,你可以與其進(jìn)行聊天交流。具體流程如圖4.8圖4.8求職信息模塊流程圖(4)消息模塊用戶可以在消息頁面查看消息記錄,可以進(jìn)行消息回復(fù),與求職者相同,見圖4.5。(5)我的模塊用戶可以在我的模塊進(jìn)行信息完善,流程圖見圖4.9。圖4.9我的模塊流程圖總結(jié),在線招聘系統(tǒng)小程序端的總體流程圖如下:圖4.10用戶流程圖4.2.3管理者方面管理者通過用戶名和uid進(jìn)行登錄,登錄成功后則可以使用管理后臺(tái)系統(tǒng)的功能,具體有,瀏覽招聘信息數(shù)據(jù)或者求職信息數(shù)據(jù)并對其進(jìn)行查詢或者篩選,查看基于招聘數(shù)據(jù)或者求職數(shù)據(jù)生成的柱狀圖、餅狀圖等可視化圖表。修改自身的昵稱和頭像。具體流程如圖4.11圖4.11管理者模塊流程圖4.3本章小結(jié)本章節(jié)主要對本課題在線招聘系統(tǒng)各個(gè)模塊以及總體流程進(jìn)行了分析,避免在開發(fā)系統(tǒng)中缺少目標(biāo),對流程以及步驟模糊不清等情況發(fā)生。在本章節(jié)中對基于小程序的用戶端以及對基于Vue開發(fā)的管理者端各個(gè)模塊的功能進(jìn)行分析,模塊中功能的聯(lián)系加以確認(rèn)。用戶端分為求職者和管理者兩類用戶。求職者有招聘信息模塊、論壇模塊、消息模塊,我的模塊。招聘者有首頁模塊、求職信息模塊、消息模塊、我的模塊。管理者端主要對系統(tǒng)數(shù)據(jù)的管理和監(jiān)測,主要功能模塊有數(shù)據(jù)信息模塊、數(shù)據(jù)分析模塊、個(gè)人信息模塊。第5章系統(tǒng)實(shí)現(xiàn)5系統(tǒng)實(shí)現(xiàn)5.1求職者用戶端系統(tǒng)實(shí)現(xiàn)5.1.1登錄模塊實(shí)現(xiàn)(1)前端實(shí)現(xiàn)登錄界面主要是由系統(tǒng)宣傳圖、身份選擇和登錄按鈕組成。身份選擇使用單選框radio實(shí)現(xiàn)。分兩種情況,用戶未登錄過,用戶選擇身后然后點(diǎn)擊登錄,這時(shí),系統(tǒng)會(huì)彈出請求獲取信息的授權(quán)提示框(使用getUserProfile),當(dāng)用戶選擇同意則新用戶登錄成功,系統(tǒng)會(huì)從授權(quán)信息中獲取用戶基本信息,無需用戶填寫,簡單方便。第二種情況,用戶登錄過,用戶點(diǎn)擊登錄,系統(tǒng)會(huì)彈出已檢測你的身份信息,是否直接登錄,用戶點(diǎn)擊登錄則登錄系統(tǒng)。(2)后端實(shí)現(xiàn)在登錄模塊,首先是用戶登錄時(shí),后端UtilController收到前端請求獲取用戶的code,然后調(diào)用Service層getOpenid方法將code變?yōu)橛脩舻奈ㄒ粯?biāo)識(shí)uid,然后查看數(shù)據(jù)庫user表,判斷user表是否存在該uid,將查詢到的數(shù)據(jù)返回到前端。第二是,用戶第一次登錄在同意授權(quán)的時(shí)候,前端向后端發(fā)送請求,后端UtilController接收用戶的code以及用戶基本信息,調(diào)用方法將其變?yōu)橛脩粑ㄒ粯?biāo)識(shí)openid也就是uid,然后將uid作為IM系統(tǒng)的用戶名將其與前端獲取的基本系統(tǒng)分別傳入IM系統(tǒng)和數(shù)據(jù)庫。(3)實(shí)現(xiàn)效果首頁具體如圖5.1所示:圖5.1登錄展示圖5.1.2招聘信息模塊實(shí)現(xiàn)(1)前端實(shí)現(xiàn)招聘信息模塊主要由三部分組成,分別為頂部搜索框,偏下的三個(gè)條件選擇器和招聘信息展示模塊。開發(fā)時(shí)使用小程序組件化開發(fā),頂部搜索框?yàn)樽远x組件,在搜索框中輸入關(guān)鍵詞回車即可進(jìn)行模糊查詢,薪資選擇器和職位選擇器為自定義選擇器,選擇器支持多個(gè)選擇器疊加篩選,招聘信息由諸多崗位信息單元組成,每個(gè)崗位信息單元包括崗位發(fā)布時(shí)間、崗位名稱、薪資、公司名稱、發(fā)布時(shí)間和若干個(gè)工作要求組成。用戶可以點(diǎn)擊進(jìn)入詳情頁面,在詳情頁面可以選擇是否與該崗位聯(lián)系人發(fā)起溝通。(2)服務(wù)器端實(shí)現(xiàn)首先,在搜索功能中,前端會(huì)向后端PostController發(fā)送請求,Controller會(huì)調(diào)用Service層getSearch方法,在getSearch方法中會(huì)使用MyBatis-Plus中的QueryWrapper構(gòu)造器通過like、or運(yùn)算語句實(shí)現(xiàn)單一關(guān)鍵詞多字段模糊查詢。條件選擇器,則會(huì)調(diào)用PostController中g(shù)etMore方法,同樣使用QueryWrapper構(gòu)造器通過like、and運(yùn)算語句疊加并加上邏輯判斷實(shí)現(xiàn)多條件選擇器疊加篩選功能。招聘信息的獲取則調(diào)用后端PostController調(diào)用Service層中查詢post表中所有數(shù)據(jù)的方法,并將數(shù)據(jù)以json形式返回給前端,前端進(jìn)行數(shù)據(jù)和頁面渲染。(3)實(shí)現(xiàn)效果招聘信息模塊具體如下圖5.2~5.5所示:圖5.2招聘信息界面圖5.3條件篩選界面圖5.4模糊查詢界面圖5.5崗位詳情界面5.1.3論壇模塊實(shí)現(xiàn)(1)前端實(shí)現(xiàn)頂部是個(gè)輪播圖,使用swiperview實(shí)現(xiàn),然后就是論壇話題展示頁面,每一個(gè)話題單元由用戶頭像、用戶昵稱、發(fā)布時(shí)間、話題題目、話題內(nèi)容、點(diǎn)贊圖標(biāo)、討論圖標(biāo)組成。用戶可以進(jìn)行點(diǎn)贊、話題會(huì)顯示點(diǎn)贊數(shù)量。點(diǎn)擊討論圖標(biāo)會(huì)進(jìn)入討論頁面、用戶可以在這發(fā)表言論,也可以看到其他用戶的言論。話題內(nèi)容使用scroll-view組件,只顯示三行多余會(huì)以...省略,方便用戶瀏覽,頁面跳轉(zhuǎn)使用wx.navigateTo并附帶用戶點(diǎn)擊話題的主鍵,跳轉(zhuǎn)到討論頁面會(huì)根據(jù)頁面路由所帶的參數(shù)獲取特定話題的討論記錄。討論中的輸入框和發(fā)送按鈕布局為固定,防止討論數(shù)過多用戶找不到輸入框。(2)服務(wù)端實(shí)現(xiàn)在進(jìn)入論壇模塊,會(huì)在此頁面的生命周期函數(shù)onload中向后端發(fā)送請求,后端TalkController會(huì)接收該請求,并調(diào)用Service中查詢話題表中所有話題的dao持久層方法,并將獲取到的數(shù)據(jù)以json形式返回給前端,論壇頁面收到數(shù)據(jù)后開始數(shù)據(jù)和頁面渲染。用戶進(jìn)入討論頁面后,同樣會(huì)在討論頁面的生命周期onload函數(shù)中向后端發(fā)送請求并傳入話題主鍵,后端TalkController層獲取到tid主鍵,查詢talk數(shù)據(jù)表中所有tid等于所獲參數(shù)的行,將獲取的數(shù)據(jù)以json數(shù)組形式發(fā)送給前端,前端收到后端傳來的數(shù)據(jù)進(jìn)行頁面和數(shù)據(jù)渲染。如果獲取失敗,或者因?yàn)榉?wù)器原因而失敗,則返回錯(cuò)誤碼給前端。(3)實(shí)現(xiàn)效果實(shí)現(xiàn)效果如圖5.6、圖5.7所示:圖5.6話題展示界面圖5.7話題討論區(qū)界面5.1.4消息模塊實(shí)現(xiàn)(1)前端實(shí)現(xiàn)消息模塊可以瀏覽用戶給自己發(fā)的消息記錄,消息記錄可以看到用戶發(fā)送給自己最新一條消息以及用戶的昵稱和頭像還有發(fā)送最新一條信息距離現(xiàn)在的時(shí)長。用戶可以點(diǎn)擊用戶頭像進(jìn)入與該用戶的聊天室,在聊天室中你可以通過上滑查看歷史消息,你也可以發(fā)送消息給用戶。聊天室中消息以用戶頭像和文本信息為主要形式,用戶自己發(fā)的消息以及頭像位于右側(cè),別的用戶位于左側(cè)。這邊主要聊聊用戶發(fā)送信息如何刷新聊天頁面的問題,這邊的主要解決方法是創(chuàng)立一個(gè)空數(shù)組記錄用戶自己以及別的用戶的聊天,使用微信setData方法使得每有一個(gè)消息更新都會(huì)刷新data里中的聊天記錄數(shù)組,在頁面中使用for循環(huán)遍歷數(shù)組,這樣有新聊天記錄時(shí),setData就會(huì)更新聊天數(shù)組,然后頁面就會(huì)重新for循環(huán)渲染。(2)服務(wù)端實(shí)現(xiàn)這邊的聊天功能主要使用騰訊云產(chǎn)品IM即時(shí)通訊來完成的,首先需要進(jìn)行登錄,需要產(chǎn)品個(gè)人SDK和用戶用戶名的簽名,這一部分主要是在后端實(shí)現(xiàn)的,前面說過用戶登錄時(shí)使用code獲取openid作為uid,也作為IM即時(shí)通訊系統(tǒng)的用戶名,所以只要在后端對該用戶的uid進(jìn)行算法加密形成簽名,然后使用簽名加上自己管理員身份的APPID請求指定地址即可完成登錄。這邊是在后端UtilController中實(shí)現(xiàn)的,收到前端請求時(shí),Controller或調(diào)用對應(yīng)的Service,將uid,進(jìn)行Base64URL和TLSSigAPIv2算法解析形成簽名,然后在后端向特定地址發(fā)送http請求,登錄完成后用戶就可以使用IM系統(tǒng)的聊天功能了。(3)實(shí)現(xiàn)效果實(shí)現(xiàn)效果如圖5.8、圖5.9所示:圖5.8消息記錄界面圖5.9聊天室界面5.1.5我的模塊實(shí)現(xiàn)(1)前端實(shí)現(xiàn)我的模塊主要分為兩部分,完善個(gè)人信息和我的收藏。個(gè)人信息模塊主要用來完善用戶信息,我的收藏可以查看收藏過的崗位。首先在我的頁面會(huì)顯示用戶的頭像和身份,這些數(shù)據(jù)是使用小程序全局變量和本地存儲(chǔ),在用戶登錄的時(shí)候就已經(jīng)儲(chǔ)存完畢,下半部分有我的簡歷和我的收藏。點(diǎn)擊我的簡歷會(huì)進(jìn)入我的信息詳情頁面,點(diǎn)擊編輯則進(jìn)入我的信息編輯頁面。信息編輯頁面會(huì)自動(dòng)獲取補(bǔ)充信息,用戶已有的信息自動(dòng)補(bǔ)充上去不用用戶手動(dòng)打字或者選擇,用戶只需改動(dòng)自己想要改動(dòng)的地方或者沒有填寫的地方,信息編輯頁面使用的時(shí)表單form,需要為每個(gè)表單中的元素附上name屬性,在表單中可以上傳頭像、修改個(gè)人信息、修改想要尋找的崗位信息,表單里的組件有input、radio、textarea、picker、image等。用戶可以通過點(diǎn)擊我的收藏中的崗位進(jìn)入該崗位的詳情頁面,在詳情頁面中用戶可以考慮是否與該崗位的聯(lián)系人進(jìn)行溝通交流,當(dāng)然,用戶可以將收藏欄中的崗位從我的收藏中刪除。頁面的跳轉(zhuǎn)使用的是wx.navigateTo方法,向后端發(fā)送請求主要使用小程序自帶的httpAPI。(2)服務(wù)端實(shí)現(xiàn)用戶點(diǎn)擊我的簡歷,小程序從本地存儲(chǔ)中獲取當(dāng)前用戶的uid,然后使用小程序http發(fā)送GET請求到后端,后端SeekController收到請求,調(diào)用getByOpenid方法,調(diào)用SeekServiceImpl中g(shù)etByOpenid方法,又在SeekServiceImpl中的getByopenid方法中調(diào)用dao持久層中MyBatis-Plus已經(jīng)封裝完畢的getById方法,根據(jù)傳入的uid獲取該uid整行數(shù)據(jù),然后以json形式傳給前端,前端進(jìn)行頁面和數(shù)據(jù)渲染。在信息編輯頁面,用戶點(diǎn)擊保存會(huì)發(fā)送PUT請求給SeekController層,最終調(diào)用MyBatis-Plus已封裝的update方法完成對數(shù)據(jù)庫seek數(shù)據(jù)表該uid行的數(shù)據(jù)改寫。同樣用戶點(diǎn)擊刪除按鈕,前端發(fā)送Delete請求,后端完成對數(shù)據(jù)庫seek數(shù)據(jù)表的該條記錄的刪除。用戶點(diǎn)擊收藏中的崗位,會(huì)將該崗位的pid傳給后端,后端根據(jù)pid獲取數(shù)據(jù)庫該pid的記錄然后傳給前端,前端根據(jù)數(shù)據(jù)渲染崗位詳情頁面。(3)實(shí)現(xiàn)效果實(shí)現(xiàn)效果如圖5.10~圖5.15所示:圖5.10我的模塊展示圖5.11崗位詳情頁面圖5.12完善信息表單頁面1圖5.13完善信息表單頁面1圖5.14飲食項(xiàng)目管理圖5.15職位詳情頁面5.2招聘者用戶端的實(shí)現(xiàn)5.2.1登錄模塊的實(shí)現(xiàn)與求職者用戶端的登錄模塊實(shí)現(xiàn)相同,實(shí)現(xiàn)效果見圖首頁模塊的實(shí)現(xiàn)(1)前端實(shí)現(xiàn)首頁由兩部分組成,頂部是由輪播圖,有swiperview組件實(shí)現(xiàn),然后就是招聘人員的崗位發(fā)布模塊,在首頁可以看到用戶自己所發(fā)布的崗位,用戶可以點(diǎn)擊添加發(fā)布新的崗位,也還可以點(diǎn)擊已發(fā)布的崗位對已發(fā)布的崗位進(jìn)行修改和刪除操作。發(fā)布新崗位需要填寫一些信息,部分信息有信息自行獲取無需用戶填寫,用戶只需填寫系統(tǒng)給出的信息,填寫完畢后,點(diǎn)擊保存,則發(fā)布新崗位完成。用戶點(diǎn)擊已發(fā)布的崗位,進(jìn)入崗位編輯頁面,崗位編輯頁面無需用戶從頭填寫,只需在原本該崗位信息基礎(chǔ)上進(jìn)行修改或補(bǔ)充,系統(tǒng)將自行將你點(diǎn)擊的崗位信息補(bǔ)充到崗位編輯頁面,發(fā)布時(shí)間無需用戶填寫,有系統(tǒng)自行獲取,編輯完成后,點(diǎn)擊保存,崗位保存成功,點(diǎn)擊刪除則該崗位刪除。該過程主要是通過一系列按鈕或組件的點(diǎn)擊事件來觸發(fā),并向后端或前端尋找數(shù)據(jù)。(2)服務(wù)器端實(shí)現(xiàn)在頁面的初始化過程中,小程序會(huì)根據(jù)頁面初始化情況調(diào)用對應(yīng)的生命周期函數(shù),首先在頁面onload生命周期函數(shù)中小程序像后端發(fā)送GET請求,后端PostController收到請求后調(diào)用Service層查詢所有的方法,該方法是調(diào)用dao層MyBatis-Plus封裝selectList方法,查詢數(shù)據(jù)庫post表中所有數(shù)據(jù),以json數(shù)組形式返回給前端。用戶在添加崗位中保存按鈕,會(huì)向后端請求Post請求,會(huì)將用戶填寫的崗位信息以表單形式發(fā)送給后端,后端PostController接收數(shù)據(jù),同樣由Controller到Service到Dao,最終調(diào)用MyBatis-Plus封裝的insert方法,實(shí)現(xiàn)將數(shù)據(jù)添加到數(shù)據(jù)庫的seek表中。同樣。刪除是由前端發(fā)送Delete請求發(fā)送給后端,PostController接收后以相同的形式,調(diào)用Dao層MyBatis-Plus封裝的delete方法,完成對數(shù)據(jù)庫該條記錄的刪除。而更改則是發(fā)送PUT請求,后端調(diào)用MyBatis-Plus封裝的update方法。(3)實(shí)現(xiàn)效果 實(shí)現(xiàn)效果見圖5.16首頁界面和5.17發(fā)布管理頁面圖5.16首頁界面圖5.17發(fā)布管理界面5.2.3求職信息模塊實(shí)現(xiàn)(1)前端實(shí)現(xiàn)跟求職者中的招聘信息模塊實(shí)現(xiàn)方式差不多,同樣有三個(gè)部分組成,頂部搜索框、然后是三個(gè)條件選擇器,分別為地點(diǎn)選擇器,職位選擇器和薪資選擇器,再然后就是一些求職者信息的展示,用戶也就是招聘者可以在搜索框中打字對求職者進(jìn)行模糊查詢,回車觸發(fā)事件獲取搜索框內(nèi)容并像后端發(fā)送請求,用戶在輸入框輸入的關(guān)鍵字可以對數(shù)據(jù)庫中seek表中place、polity、background、status、advantage、ejob字段進(jìn)行比較。然后條件選擇器可以疊加篩選,比如說可以先使用地點(diǎn)選擇器選擇地點(diǎn)進(jìn)行篩選后,可以在篩選后的數(shù)據(jù)中再進(jìn)行職位篩選或者薪資篩選。招聘者瀏覽求職信息,對感興趣的求職者可以通過點(diǎn)擊進(jìn)入該用戶信息的詳情頁面,這跳轉(zhuǎn)是通過頁面路由實(shí)現(xiàn)。在詳情頁面招聘者可以考慮是否與該求職者進(jìn)行溝通交流。(2)服務(wù)端實(shí)現(xiàn)首先,用戶在搜索庫輸入關(guān)鍵字進(jìn)行回車觸發(fā)事件函數(shù),在函數(shù)中會(huì)發(fā)送GET請求,SeekController收到請求并獲取用戶輸入的關(guān)鍵字,SeekController在調(diào)用SeekService層對應(yīng)的方法進(jìn)行實(shí)現(xiàn)并將獲取到的數(shù)據(jù)返回給前端。SeekServce層對這個(gè)功能是這樣實(shí)現(xiàn)的:使用QueryWrapper構(gòu)造器,對六個(gè)字段進(jìn)行l(wèi)ike比較并用or運(yùn)算連接,這樣六個(gè)只要有一個(gè)帶用戶輸入的關(guān)鍵字都會(huì)被查詢出來。條件篩選也是使用QueryWrapper構(gòu)造器,三個(gè)構(gòu)造器,分別傳三個(gè)參數(shù)給后端,后端判斷是否為空,為空的話就說明用戶沒有使用該構(gòu)造器,則該條件的篩選不需要使用and連接起來,使用eq進(jìn)行該條件的查詢,使用and連接所使用的條件選擇器,這樣就實(shí)現(xiàn)了多種條件選擇器的疊加效果。點(diǎn)擊進(jìn)入詳情頁面,會(huì)向后端發(fā)送選擇的求職者的sid,后端根據(jù)sid從seek數(shù)據(jù)表中查詢數(shù)據(jù)傳給前端,前端進(jìn)行頁面和數(shù)據(jù)渲染和初始化。(3)實(shí)現(xiàn)效果實(shí)現(xiàn)效果如圖5.18求職信息頁面、5.19求職信息詳情頁面。圖5.18求職信息頁面圖5.19求職信息詳情頁面5.2.4消息模塊實(shí)現(xiàn)與求職者消息模塊實(shí)現(xiàn)相同,效果見圖5.8消息記錄界面和圖5.9聊天室界面。5.2.5我的模塊實(shí)現(xiàn)(1)前端實(shí)現(xiàn)跟求職者模塊差不多,但只由完善信息功能。我的頁面在頂部會(huì)顯示用戶的頭像、昵稱、身份。用戶可以點(diǎn)擊我的簡歷進(jìn)入我的信息編輯頁面,這個(gè)跳轉(zhuǎn)主要是使用頁面路由實(shí)現(xiàn)的使用的是wx.reLaunch方法,該方法可以跳轉(zhuǎn)任意頁面,這里用來跳轉(zhuǎn)到個(gè)人信息詳情頁面,在個(gè)人信息詳情頁面中,可以點(diǎn)擊編輯進(jìn)入信息編輯頁面,這邊系統(tǒng)會(huì)調(diào)用前后端用戶數(shù)據(jù)將信息自行補(bǔ)充,用戶只需修改數(shù)據(jù)或者補(bǔ)充空白地方就可以了,完成后用戶可以點(diǎn)擊保存,則用戶數(shù)據(jù)修改成功,用戶在該模塊主要以單選框、選擇器、輸入框形式輸入信息。職位選擇器中的選項(xiàng)是由自己定義的,主要從utils文件中的job.js中獲取。用戶可以通過上傳頭像和上傳公司icon修改用戶自己頭像和公司icon。(2)服務(wù)端實(shí)現(xiàn)后端實(shí)現(xiàn)與求職者我的模塊后臺(tái)實(shí)現(xiàn)差不多,主要是控制器不同,招聘者的我的模塊后端的請求是由PostController接收的,由PostController到PostService到PostDao到MyBatis-Plus提供的update方法修改數(shù)據(jù)庫post表和user表中的信息,這里著重說明一下上傳頭像,這邊是小程序調(diào)用chooseImageAPI方法,可以使用戶從本地上傳圖片,然后小程序發(fā)送POST請求,將上傳的圖片發(fā)送給后端,后端獲取到,將其下載到當(dāng)?shù)匾粋€(gè)文件夾內(nèi),然后服務(wù)器在本地使用nginx反向代理,將這個(gè)文件夾映射成url地址,然后就可以通過url訪問圖片,然后后端只需將生成的url更新到數(shù)據(jù)庫的user和post表就完成了。(3)實(shí)現(xiàn)效果實(shí)現(xiàn)效果參考圖5.13。5.3管理員端的實(shí)現(xiàn)5.3.1數(shù)據(jù)信息模塊(1)前端實(shí)現(xiàn)左側(cè)的菜單欄,可以選擇查看求職者數(shù)據(jù)還是招聘者數(shù)據(jù)。求職者數(shù)據(jù)和招聘者數(shù)據(jù)都是以表格形式呈現(xiàn)出來的,這邊以求職者數(shù)據(jù)解釋。該模塊可以分為兩個(gè)部分,頂部是條件選擇器,分別為日期選擇器、職業(yè)選擇器、地點(diǎn)選擇器,搜索框可以進(jìn)行多個(gè)字段模糊查詢。然后是表格,表格中數(shù)據(jù)來自數(shù)據(jù)庫。管理者端使用Vue相關(guān)技術(shù)實(shí)現(xiàn)的web系統(tǒng),界面主要通過HTML、和ElementUI實(shí)現(xiàn)的,在開發(fā)過程中使用組件化開發(fā)。第一部分是Psearch.vue,主要實(shí)現(xiàn)條件選擇器和搜索框。條件選擇器使用的是el-date-picker、el-cascader和v-distpicker,由于ElementUI沒有地點(diǎn)選擇這邊使用node.js集成了v-distpicker,進(jìn)行地點(diǎn)篩選。選擇器可以使用雙向綁定獲取選擇器中用戶的選項(xiàng),也可以使用組件事件進(jìn)行獲取。搜索框使用el-put實(shí)現(xiàn),使用v-model雙向綁定獲取用戶輸入的文字。第二部分是Ptable.vue,表格使用的是el-table,在表格的每條記錄的末尾有查看和刪除兩個(gè)選項(xiàng),這兩個(gè)和表格第一個(gè)字段也就是表的主鍵固定,不會(huì)隨著橫向滾動(dòng)條的滾動(dòng)而變化,方便用戶辨識(shí)和操作。表格的數(shù)據(jù)是分頁顯示的,用戶可以選擇每頁顯示數(shù)據(jù)的數(shù)量,解決了進(jìn)行條件篩選后或者搜索后的數(shù)據(jù)分頁問題和在不同頁碼上進(jìn)行搜索和條件篩選的問題。在不是第一頁再進(jìn)行查詢或篩選會(huì)獲取篩選或查詢的數(shù)據(jù)并將頁碼調(diào)到第一頁并顯示,在篩選或搜索后,會(huì)重新獲取數(shù)量并重新分配頁碼。前端向后端發(fā)送請求是使用axios,菜單欄的頁面導(dǎo)航使用的是Vue的Router,查看按鈕的跳轉(zhuǎn)使用的是Router的push方法,并使用query傳遞pid,Psearch.vue與Psearch.vue之間的數(shù)據(jù)傳遞使用的是props和emit方法,Psearch.vue和Psearch.vue具有相同的父組件,只要數(shù)據(jù)使用emit傳到父組件就可以實(shí)現(xiàn)兩個(gè)組件數(shù)據(jù)共享。(2)服務(wù)端實(shí)現(xiàn)與小程序端的招聘信息模塊和求職信息模塊類似,不過在管理者端的數(shù)據(jù)是使用分頁的形式,主要是后端每次返回一頁的數(shù)據(jù)然后前端收到數(shù)據(jù)進(jìn)行渲染不是返回所有數(shù)據(jù)然后使用js函數(shù)進(jìn)行分割,這樣做的目的是避免前端對數(shù)據(jù)的處理導(dǎo)致反應(yīng)速度下降以及提高對數(shù)據(jù)的保護(hù)。分頁的實(shí)現(xiàn)使用了MyBatis-plus提供的IPage插件,后端返回給前端的也是IPage類型的數(shù)據(jù),因?yàn)槭褂昧薘estController,會(huì)將IPage數(shù)據(jù)以json類型返回,方便前端的使用。IPage需要兩個(gè)參數(shù),分別為當(dāng)前的頁碼和每頁顯示的條數(shù),前端在進(jìn)行條件篩選或查詢時(shí)顯示的數(shù)據(jù)也都是分頁形式,所以后端只需要在條件篩選處理和查詢處理的業(yè)務(wù)層基礎(chǔ)上獲得前端傳來的current(當(dāng)前頁碼)和size(每個(gè)條數(shù))兩個(gè)參數(shù),使用Mybatis-Plus封裝的selectPage函數(shù)就可以實(shí)現(xiàn)。而日期條件篩選獲取的是中國標(biāo)準(zhǔn)時(shí)間,而數(shù)據(jù)庫中當(dāng)字段是yyyy-mm-dd的形式,所以用戶使用日期條件篩選,后端獲取到參數(shù)是需要將中國標(biāo)準(zhǔn)時(shí)間轉(zhuǎn)化為該字段對應(yīng)的形式,后端需要注意的是沒被使用過的條件選擇器給出的參數(shù)應(yīng)該是空的,后端需要進(jìn)行以下邏輯判斷,條件選擇器條件的疊加使用QueryWrapper的and連接,使用eq進(jìn)行相等判斷。(3)實(shí)現(xiàn)效果數(shù)據(jù)信息界面和詳情界面如圖5.20、5.21、5.22所示。圖5.20求職數(shù)據(jù)信息頁面圖5.21招聘數(shù)據(jù)信息頁面圖5.22詳情頁面5.3.2個(gè)人信息模塊(1)前端實(shí)現(xiàn)管理員點(diǎn)擊網(wǎng)頁頂端的頭像小人即可修改個(gè)人信息和頭像,用戶點(diǎn)擊時(shí),頁面會(huì)彈出一個(gè)對話框,在對話框中管理者可以修改自己的昵稱和上傳頭像。(2)服務(wù)器端效果主要和小程序端上傳頭像實(shí)現(xiàn)類似,用戶上傳頭像,后端Controller曾接收請求,后端創(chuàng)建文件用戶保存用戶上傳的圖片,并使用nginx將文件路徑生成url并保存對對應(yīng)的數(shù)據(jù)庫表中。(3)實(shí)現(xiàn)效果個(gè)人信息修改頁面如圖5.23所示。圖5.23信息修改頁面5.3.3數(shù)據(jù)分析模塊(1)前端實(shí)現(xiàn)用戶點(diǎn)擊左側(cè)菜單欄中的數(shù)據(jù)分析,即可展開數(shù)據(jù)分析模塊,主要有求職者數(shù)據(jù)和招聘者數(shù)據(jù)兩個(gè)方面。菜單欄使用el-menu組件,跳轉(zhuǎn)使用VueRouter實(shí)現(xiàn)的,在求職者的數(shù)據(jù)分析模塊可以看到柱狀圖和餅狀圖對應(yīng)求職者期望崗位與數(shù)量的關(guān)系。在招聘者的數(shù)據(jù)分析模塊可以看到柱狀圖和餅狀圖對應(yīng)招聘者發(fā)布的職位類型與數(shù)量的關(guān)系。圖標(biāo)是使用Echarts實(shí)現(xiàn)的,需要使用npm進(jìn)行集成,這部分的實(shí)現(xiàn)難點(diǎn)主要是對后端數(shù)據(jù)進(jìn)行的處理,后端返回的數(shù)據(jù)與Echarts圖標(biāo)需要數(shù)據(jù)的格式不適應(yīng),需要對后端返回的數(shù)據(jù)運(yùn)用js函數(shù)進(jìn)行分割處理。(2)服務(wù)器端實(shí)現(xiàn)以求職者為例,在頁面的created生命周期函數(shù)中使用axios發(fā)送請求,Controller層收到請求后調(diào)用相應(yīng)的Service業(yè)務(wù)層,業(yè)務(wù)層的實(shí)現(xiàn)主要是使用QueryWrapper構(gòu)造器,這邊使用了select拼接count()SQL函數(shù),使用groupBy進(jìn)行分組,然后使用MyBatis-Plus封裝的selectMaps函數(shù),得到職位和數(shù)量關(guān)系,得到的數(shù)據(jù)Map數(shù)組,這邊以職位名稱為鍵,數(shù)量為值,將Map數(shù)組變?yōu)閱我籑ap,然后使用fastjson對Map數(shù)據(jù)進(jìn)行格式化最后返回前端。(3)實(shí)現(xiàn)效果求職者數(shù)據(jù)分析頁面和招聘者數(shù)據(jù)分析頁面分別如圖5.24和圖5.25所示。圖5.24求職者數(shù)據(jù)分析頁面圖5.25招聘者數(shù)據(jù)分析頁面5.4本章小結(jié)本章節(jié)對在線招聘系統(tǒng)的各項(xiàng)功能的實(shí)現(xiàn)做了解釋。前端主要分為用戶端和管理者端,分別使用小程序開發(fā)技術(shù)和Vue相關(guān)技術(shù)實(shí)現(xiàn)。用戶端分為兩類用戶:求職者和招聘者。求職者的功能主要有登錄模塊、招聘信息模塊、論壇模塊、消息模塊和我的模塊。招聘者的功能主要有登錄模塊、首頁模塊、求職信息模塊、消息模塊、我的模塊。管理者端的功能主要有個(gè)人信息模塊、數(shù)據(jù)信息模塊、數(shù)據(jù)分析模塊。對各個(gè)模塊從前端實(shí)現(xiàn)、后端實(shí)現(xiàn)和實(shí)現(xiàn)效果做了解釋和展示。第6章系統(tǒng)測試和結(jié)果6系統(tǒng)測試和結(jié)果6.1測試計(jì)劃為了驗(yàn)證系統(tǒng)的功能完整性和健全性,進(jìn)行測試是非常必要的。自己開發(fā)的系統(tǒng)使用的體驗(yàn)不能與大眾的體驗(yàn)劃上等號(hào),自己在進(jìn)行測試過程中不一定能夠發(fā)現(xiàn)系統(tǒng)的所有Bug,所以在測試方面主要想要邀請用戶使用本系統(tǒng)并請求得到反饋,自己根據(jù)反饋進(jìn)行更新和維護(hù),提高系統(tǒng)進(jìn)一步的良好體驗(yàn)。在測試過程中,需要比較目前系統(tǒng)呈現(xiàn)的功能是否滿足設(shè)計(jì)該系統(tǒng)的初衷,系統(tǒng)呈現(xiàn)的效果是否滿足自己的預(yù)想,系統(tǒng)是否實(shí)現(xiàn)了設(shè)計(jì)階段需要完成的所有功能。測試能夠幫助開發(fā)者快速找到問題所在,方便系統(tǒng)的改善。軟件系統(tǒng)的測試需要科學(xué)的方法和合理的安排。本人針對本系統(tǒng)測試分為兩部分:用戶和管理員。用戶測試模塊有授權(quán)登錄、首頁、招聘信息、求職信息、論壇、消息、我的。管理員測試模塊有:密碼登錄,個(gè)人信息、數(shù)據(jù)信息,數(shù)據(jù)分析。系統(tǒng)的主要測試方法是黑河測試,測試用例如下表所示表6.1.1用戶測試用例表用例編號(hào)測試描述預(yù)期結(jié)果優(yōu)先級01授權(quán)登錄測試系統(tǒng)根據(jù)用戶是否登錄而給出不同登錄流程高02首頁測試招聘者可以發(fā)布新崗位、修改或刪除已發(fā)布崗位高03招聘信息測試可以模糊查詢,多條件篩選、收藏、可以進(jìn)入詳情頁面并由此進(jìn)入聊天頁面高04求職信息測試可以模糊查詢,多條件篩選、可以進(jìn)入詳情頁面并由此進(jìn)入聊天頁面高05論壇模塊測試可以點(diǎn)贊,進(jìn)入討論區(qū),可以顯示論壇話題列表中06消息模塊測試可以顯示消息列表,可以根據(jù)消息列表而發(fā)起聊天高07我的模塊測試可以進(jìn)入完善信息模塊,并編輯自己信息,可以查看收藏的崗位信息中表6.1.2管理員測試用例表用例編號(hào)測試描述預(yù)期結(jié)果優(yōu)先級01密碼登錄測試系統(tǒng)可以對用戶名和密碼進(jìn)行核對高02個(gè)人信息模塊測試用戶可以修改自己的昵稱和頭像高03數(shù)據(jù)信息模塊測試可以分頁顯示數(shù)據(jù),可以模糊查詢,多條件篩選、查看詳情和刪除,可以進(jìn)行頁碼跳轉(zhuǎn)高04數(shù)據(jù)分析模塊測試可以動(dòng)態(tài)顯示職位與數(shù)量的關(guān)系高6.2測試與結(jié)果分析6.2.1功能測試功能測試是為了確保軟件系統(tǒng)按照其給定的規(guī)格運(yùn)行,測試主要通過提供輸入和驗(yàn)證基于需求的輸出來測試應(yīng)用軟件的功能方面,主要考慮API、安全、前后端通信、數(shù)據(jù)庫、用戶界面以及其他功能間的聯(lián)動(dòng)效果。當(dāng)系統(tǒng)出現(xiàn)錯(cuò)誤時(shí),是否提供有價(jià)值的錯(cuò)誤信息,系統(tǒng)是否能夠正常運(yùn)行,系統(tǒng)是否能夠無縫連接。(1)用戶方面測試1.授權(quán)登錄測試:該測試是為了確認(rèn)系統(tǒng)是否能夠從數(shù)據(jù)庫中獲取相應(yīng)的信息,針對不同情況的用戶能否采取正確的登錄流程。該測試如表6.2.1所示。表6.2.1授權(quán)登錄模塊測試表功能描述授權(quán)登錄時(shí)各種情況的處理測試目的檢測系統(tǒng)授權(quán)登錄的健全性測試條件不同情況的用戶進(jìn)行系統(tǒng)登錄測試編號(hào)用戶操作預(yù)期結(jié)果實(shí)際結(jié)果測試狀態(tài)01用戶未選擇身份,點(diǎn)擊登錄系統(tǒng)彈出身份未選擇提示框系統(tǒng)彈出身份未選擇提示框與預(yù)期結(jié)果一致02登錄過系統(tǒng)的用戶再登錄系統(tǒng)系統(tǒng)彈出提示框已檢測到你的信息,是否直接登錄系統(tǒng)彈出檢測信息提示框與預(yù)期結(jié)果一致03未曾登錄過系統(tǒng)的用戶點(diǎn)擊登錄彈出授權(quán)提示框彈出授權(quán)提示框與預(yù)期結(jié)果一致04用戶同意授權(quán)進(jìn)入系統(tǒng)成功進(jìn)入系統(tǒng)與預(yù)期結(jié)果一致2.首頁模塊測試:進(jìn)入首頁后,在首頁模塊,招聘者可以瀏覽自己已發(fā)布的崗位信息,點(diǎn)擊添加按鈕,出現(xiàn)信息表單,招聘者完成表單,點(diǎn)擊保存,新增崗位發(fā)布完成。用戶點(diǎn)擊已發(fā)布崗位列表中的崗位,進(jìn)入崗位詳情頁面,點(diǎn)擊編輯,用戶可以增刪崗位信息,點(diǎn)擊保存完成對選擇的崗位的修改操作,點(diǎn)擊刪除,完成對該崗位的刪除操作,該測試如表6.2.2所示。表6.2.2首頁模塊測試表功能描述首頁模塊的各類操作測試目的判斷對于首頁模塊的崗位增刪能否成功測試條件用戶登錄后進(jìn)行崗位增刪改的測試測試編號(hào)用戶操作預(yù)期結(jié)果實(shí)際結(jié)果測試狀態(tài)01招聘者進(jìn)入首頁顯示招聘者自己所發(fā)布的崗位信息顯示自己所發(fā)布的崗位信息與預(yù)期結(jié)果一致02用戶點(diǎn)擊添加出現(xiàn)信息表單出現(xiàn)信息表單與預(yù)期結(jié)果一致03添加操作的用戶填寫表單點(diǎn)擊保存已發(fā)布崗位多出當(dāng)才填寫的崗位信息已發(fā)布崗位多出當(dāng)才填寫的崗位信息與預(yù)期結(jié)果一致04用戶點(diǎn)擊已發(fā)布的崗位進(jìn)入該崗位的詳細(xì)頁面進(jìn)入該崗位的詳細(xì)頁面與預(yù)期結(jié)果一致05用戶再詳情頁面點(diǎn)擊編輯顯示自動(dòng)補(bǔ)充的崗位信息表單顯示自動(dòng)補(bǔ)充的崗位信息表單與預(yù)期結(jié)果一致06用戶在表單增改信息后點(diǎn)擊保存該項(xiàng)崗位信息被修改該項(xiàng)崗位信息被修改與預(yù)期結(jié)果一致07用戶在表單增改后點(diǎn)擊刪除已發(fā)布崗位欄中該崗位消失已發(fā)布崗位欄中該崗位消失與預(yù)期結(jié)果一致3.招聘信息模塊測試:進(jìn)入招聘信息模塊,求職者可以瀏覽所有招聘者發(fā)布的崗位,用戶可以進(jìn)行模糊查詢、條件篩選對崗位信息進(jìn)行查找,用戶點(diǎn)擊某項(xiàng)崗位會(huì)進(jìn)入崗位的詳情頁面,用戶可以在詳情頁面考慮是否與該崗位聯(lián)系人進(jìn)行溝通。該測試如表6.2.3所示。表6.2.3招聘信息模塊測試表功能描述招聘信息查看以及發(fā)起溝通測試目的判斷招聘信息模塊的各項(xiàng)功能能否正確執(zhí)行測試條件用戶登錄后的招聘信息模塊的測試測試編號(hào)用戶操作預(yù)期結(jié)果實(shí)際結(jié)果測試狀態(tài)01求職者進(jìn)入招聘信息模塊用戶可以瀏覽招聘信息用戶可以瀏覽招聘信息與預(yù)期結(jié)果一致02在搜索框中輸入關(guān)鍵字后進(jìn)行回車系統(tǒng)根據(jù)用戶給出的關(guān)鍵字查找對應(yīng)的招聘信息并顯示系統(tǒng)根據(jù)用戶給出的關(guān)鍵字查找對應(yīng)的招聘信息并顯示與預(yù)期結(jié)果一致03求職者使用條件選擇器對招聘信息進(jìn)行篩選系統(tǒng)顯示篩選后的招聘信息系統(tǒng)顯示篩選后的招聘信息與預(yù)期結(jié)果一致04求職者對某項(xiàng)崗位點(diǎn)擊收藏按鈕我的收藏欄中出現(xiàn)該條崗位信息我的收藏欄中出現(xiàn)該條崗位信息與預(yù)期結(jié)果一致05用戶點(diǎn)擊招聘信息列表中某項(xiàng)崗位進(jìn)入該崗位詳情頁面,且頁面顯示正常進(jìn)入該崗位詳情頁面,且頁面顯示正常與預(yù)期結(jié)果一致06崗位詳情頁面點(diǎn)擊開始溝通按鈕進(jìn)入與該崗位聯(lián)系人的聊天室進(jìn)入與該崗位聯(lián)系人的聊天室與預(yù)期結(jié)果一致4.求職信息模塊測試:招聘者進(jìn)入求職信息模塊,招聘者在該模塊可以瀏覽所有求職信息,招聘者可以在搜索框中進(jìn)行模糊查詢,招聘者可以使用條件選擇器對求職信息進(jìn)行篩選,招聘者點(diǎn)擊某項(xiàng)求職信息進(jìn)入該求職信息的詳情頁面,在詳情頁面中,招聘可以考慮是否與該求職者溝通交流。該測試如表6.2.4所示。表6.2.4求職信息模塊測試表功能描述求職信息查看以及發(fā)起溝通測試目的判斷求職信息模塊的各項(xiàng)功能能否正確執(zhí)行測試條件用戶登錄后的求職信息模塊的測試測試編號(hào)用戶操作預(yù)期結(jié)果實(shí)際結(jié)果測試狀態(tài)01求職者進(jìn)入求職信息模塊用戶可以瀏覽求職信息用戶可以瀏覽求職信息與預(yù)期結(jié)果一致02在搜索框中輸入關(guān)鍵字后進(jìn)行回車系統(tǒng)根據(jù)用戶給出的關(guān)鍵字查找對應(yīng)的求職信息并顯示系統(tǒng)根據(jù)用戶給出的關(guān)鍵字查找對應(yīng)的求職信息并顯示與預(yù)期結(jié)果一致03求職者使用條件選擇器對求職信息進(jìn)行篩選系統(tǒng)顯示篩選后的求職信息系統(tǒng)顯示篩選后的求職信息與預(yù)期結(jié)果一致04用戶點(diǎn)擊求職信息列表中某項(xiàng)求職信息進(jìn)入該求職者詳情頁面,且頁面顯示正常進(jìn)入該求職者詳情頁面,且頁面顯示正常與預(yù)期結(jié)果一致05求職者詳情頁面點(diǎn)擊開始溝通按鈕進(jìn)入與求職者的聊天室進(jìn)入與求職者的聊天室與預(yù)期結(jié)果一致5.論壇模塊測試:求職者可以瀏覽話題,可以對話題進(jìn)行點(diǎn)贊,話題會(huì)顯示用戶的點(diǎn)贊數(shù),求職者可以進(jìn)入某項(xiàng)話題的討論區(qū),在討論區(qū)求職者可以發(fā)送文本消息參與討論。該測試如表6.2.5所示。表6.2.5論壇模塊測試表功能描述求職者對論壇模塊的各種操作測試目的測試論壇模塊能否正確執(zhí)行測試條件用戶登錄成功進(jìn)入論壇模塊測試編號(hào)用戶操作預(yù)期結(jié)果實(shí)際結(jié)果測試狀態(tài)01求職者進(jìn)入論壇模塊頁面顯示話題列表,且數(shù)據(jù)正常顯示頁面顯示話題表,且數(shù)據(jù)正常顯示與預(yù)期結(jié)果一致02求職者進(jìn)入某項(xiàng)話題的討論區(qū)進(jìn)入討論頁面,且顯示該話題其他用戶的討論情況進(jìn)入討論頁面,且顯示該話題其他用戶的討論情況與預(yù)期結(jié)果一致03對話題點(diǎn)贊點(diǎn)贊圖案變紅且數(shù)量加一點(diǎn)贊圖案變紅且數(shù)量加一與預(yù)期結(jié)果一致04在討論區(qū),求職者發(fā)送消息討論區(qū)顯示該求職者的言論討論區(qū)顯示該求職者的言論與預(yù)期結(jié)果一致6.消息模塊測試:在該模塊,用戶可以看到其他用戶發(fā)送給自己的消息。用戶可以點(diǎn)擊用戶,進(jìn)入與該用戶的聊天室,在聊天室中可以看到于該用戶的歷史聊天記錄。該測試如表6.2.6所示。表6.2.6消息模塊測試表功能描述消息模塊測試測試目的測試消息模塊能否正確執(zhí)行測試條件用戶登錄成功進(jìn)入消息模塊測試編號(hào)用戶操作預(yù)期結(jié)果實(shí)際結(jié)果測試狀態(tài)01用戶進(jìn)入消息模塊頁面實(shí)現(xiàn)歷史消息記錄頁面實(shí)現(xiàn)歷史消息記錄與預(yù)期結(jié)果一致02用戶點(diǎn)擊某用戶進(jìn)入與該用戶的聊天室且顯示與該用戶的歷史聊天進(jìn)入與該用戶的聊天室且顯示與該用戶的歷史聊天與預(yù)期結(jié)果一致03在聊天室中發(fā)送消息在頁面右側(cè)顯示自己的消息在頁面右側(cè)顯示自己的消息與預(yù)期結(jié)果一致04在聊天室中用戶給我發(fā)消息在頁面左側(cè)顯示用戶的消息在頁面左側(cè)顯示用戶的消息與預(yù)期結(jié)果一致7.我的模塊測試:在該模塊,用戶可以進(jìn)入完善信息頁面,用戶在完善信息頁面完善信息點(diǎn)擊保存用戶的信息修改完畢,用戶點(diǎn)擊我的收藏進(jìn)入收藏欄頁面,收藏欄頁面實(shí)現(xiàn)該用戶收藏的全部職位。該測試如表6.2.7所示。表6.2.7我的模塊測試表功能描述我的模塊測試測試目的測試我的模塊各項(xiàng)功能能否正確執(zhí)行測試條件用戶登錄成功進(jìn)入我的模塊測試編號(hào)用戶操作預(yù)期結(jié)果實(shí)際結(jié)果測試狀態(tài)01用戶點(diǎn)擊我的簡歷進(jìn)入個(gè)人信息頁面,顯示用戶目前的個(gè)人信息進(jìn)入個(gè)人信息頁面,顯示用戶目前的個(gè)人信息與預(yù)期結(jié)果一致02用戶在個(gè)人信息頁面點(diǎn)擊編輯用戶可以對個(gè)人信息進(jìn)行編輯用戶可以對個(gè)人信息進(jìn)行編輯與預(yù)期結(jié)果一致03用戶編輯完個(gè)人信息點(diǎn)擊保存用戶個(gè)人信息修改成功用戶個(gè)人信息修改成功與預(yù)期結(jié)果一致04用戶點(diǎn)擊我的收藏按鈕用戶進(jìn)入收藏欄頁面,可以已收藏的崗位信息用戶進(jìn)入收藏欄頁面,可以已收藏的崗位信息與預(yù)期結(jié)果一致05對收藏欄中的崗位進(jìn)行刪除該崗位從用戶的收藏欄中消失該崗位從用戶的收藏欄中消失與預(yù)期結(jié)果一致(2)管理者方面測試1.密碼登錄模塊測試:該測試是為了確認(rèn)系統(tǒng)是否能夠從數(shù)據(jù)庫中獲取相應(yīng)的信息,對用戶輸入的信息能否正確核對并采取正確的登錄流程。該測試如表6.2.8所示。表6.2.8密碼登錄模塊測試表功能描述密碼登錄時(shí)對用戶名和密碼的判斷測試目的測試密碼登錄模塊能否正確執(zhí)行測試條件管理員完成登錄測試編號(hào)用戶操作預(yù)期結(jié)果實(shí)際結(jié)果測試狀態(tài)01用戶登錄時(shí)輸入錯(cuò)誤的密碼系統(tǒng)彈出密碼錯(cuò)誤提示框系統(tǒng)彈出密碼錯(cuò)誤提示框與預(yù)期結(jié)果一致02用戶以正確的用戶名和密碼登錄登錄成功進(jìn)入系統(tǒng)登錄成功進(jìn)入系統(tǒng)與預(yù)期結(jié)果一致2.個(gè)人信息模塊測試:管理員點(diǎn)擊頭像,系統(tǒng)會(huì)彈出小窗口,在小窗口填寫昵稱和上傳頭像,管理員點(diǎn)擊確認(rèn)管理員的個(gè)人信息將會(huì)被改寫。該測試如表6.2.9所示。表6.2.9個(gè)人信息模塊測試表功能描述管理員個(gè)人信息的修改測試目的測試個(gè)人信息模塊的各項(xiàng)功能的執(zhí)行情況測試條件管理員完成登錄測試編號(hào)用戶操作預(yù)期結(jié)果實(shí)際結(jié)果測試狀態(tài)01管理員點(diǎn)擊頭像系統(tǒng)彈出表單窗口系統(tǒng)彈出表單窗口與預(yù)期結(jié)果一致02管理員在表單窗口填寫完整信息點(diǎn)擊保存管理員的昵稱和頭像改變管理員的昵稱和頭像改變與預(yù)期結(jié)果一致03表單窗口未填信息點(diǎn)擊保存出現(xiàn)紅字提示,保存失敗出現(xiàn)紅字提示,保存失敗與預(yù)期結(jié)果一致3.數(shù)據(jù)信息模塊測試:進(jìn)入數(shù)據(jù)信息模塊以表格分頁的形式顯示招聘數(shù)據(jù),表格的上部有條件選擇器和搜索框,表格中的每條記錄的尾部有查看和刪除按鈕,不會(huì)隨著橫向滾動(dòng)條的滾動(dòng)而變化,用戶點(diǎn)擊查看會(huì)進(jìn)入該條記錄的詳情頁面,用戶點(diǎn)擊刪除會(huì)刪除該條記錄,并且分頁表格會(huì)重新刷新。表格底部有頁碼,可以選擇頁碼進(jìn)行分頁跳轉(zhuǎn)。該測試如表6.2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論