畢業(yè)設(shè)計(jì)(論文)-springboot教師工作量計(jì)算系統(tǒng)設(shè)計(jì)_第1頁(yè)
畢業(yè)設(shè)計(jì)(論文)-springboot教師工作量計(jì)算系統(tǒng)設(shè)計(jì)_第2頁(yè)
畢業(yè)設(shè)計(jì)(論文)-springboot教師工作量計(jì)算系統(tǒng)設(shè)計(jì)_第3頁(yè)
畢業(yè)設(shè)計(jì)(論文)-springboot教師工作量計(jì)算系統(tǒng)設(shè)計(jì)_第4頁(yè)
畢業(yè)設(shè)計(jì)(論文)-springboot教師工作量計(jì)算系統(tǒng)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩40頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

本科生畢業(yè)論文(設(shè)計(jì))題目springboot教師工作量計(jì)算系統(tǒng)學(xué)院XXXXX專業(yè)班級(jí)XXXXX學(xué)生姓名XXXX指導(dǎo)教師XXXX撰寫日期:2022年9月10日目錄TOC\o"1-3"\h\u摘要 摘要隨著教育事業(yè)的發(fā)展,對(duì)教學(xué)質(zhì)量的評(píng)價(jià)不僅表現(xiàn)在學(xué)生質(zhì)量上,而且還反映在教職工隊(duì)伍素質(zhì)上;為了提高教師的工作效率,分析了學(xué)校日常教學(xué)管理工作的統(tǒng)計(jì)特點(diǎn),加強(qiáng)對(duì)教師績(jī)效的考核,而績(jī)效考核的主要指標(biāo)是教師工作量的大小。因此需要做出套及時(shí)有效的系統(tǒng),幫助教學(xué)管理人員對(duì)教師工作量進(jìn)行管理和查詢;解決由人工操作帶來的許多錯(cuò)誤和諸多不便,減輕管理人員的勞動(dòng)強(qiáng)度,達(dá)到更好地利用資源,提高工作效率;同時(shí)也便于教師本人對(duì)工作量的查詢及核實(shí)。在實(shí)際應(yīng)用中,這套系統(tǒng)的必要性將得到充分的體現(xiàn)。論文針對(duì)在教師工作量計(jì)算系統(tǒng)信息數(shù)據(jù)規(guī)模大,管理員和教師用戶需要對(duì)教師工作量涉及到的信息進(jìn)行管理的需求,設(shè)計(jì)了教師工作量計(jì)算系統(tǒng)的框架,給出了教師工作量計(jì)算系統(tǒng)的總體設(shè)計(jì),并對(duì)教師工作量計(jì)算系統(tǒng)的架構(gòu)及關(guān)鍵模塊的實(shí)現(xiàn)過程進(jìn)行了詳細(xì)論述。采用Java語言和MySQL數(shù)據(jù)庫(kù)技術(shù),基于springboot框架實(shí)現(xiàn)了一個(gè)完整系統(tǒng)的設(shè)計(jì),為使用者提供了良好的教師工作量計(jì)算系統(tǒng)。關(guān)鍵詞:教師工作量計(jì)算系統(tǒng);Java;MySQL;springboot框架AbstractWiththedevelopmentofeducation,theevaluationofteachingqualityisnotonlyreflectedinthequalityofstudents,butalsoreflectedinthequalityofteachingstaff;Inordertoimprovetheworkefficiencyofteachers,thispaperanalyzesthestatisticalcharacteristicsofdailyteachingmanagementinschools,andstrengthenstheassessmentofteachers'performance.Themainindicatorofperformanceassessmentistheworkloadofteachers.Therefore,itisnecessarytomakeatimelyandeffectivesystemtohelpteachingmanagersmanageandquerytheworkloadofteachers;Solvemanyerrorsandinconveniencescausedbymanualoperation,reducethelaborintensityofmanagementpersonnel,achievebetteruseofresourcesandimproveworkefficiency;Itisalsoconvenientforteacherstoqueryandverifytheworkload.Inpracticalapplication,thenecessityofthissystemwillbefullyreflected.Inviewofthelargescaleofinformationdataintheteacherworkloadcalculationsystemandtheneedofadministratorsandteacheruserstomanagetheinformationinvolvedintheteacherworkload,thepaperdesignstheframeworkoftheteacherworkloadcalculationsystem,givestheoveralldesignoftheteacherworkloadcalculationsystem,anddiscussesindetailthearchitectureoftheteacherworkloadcalculationsystemandtheimplementationprocessofkeymodules.UsingJavalanguageandMySQLdatabasetechnology,acompletesystemdesignisimplementedbasedonthespringbootframework,providinguserswithagoodteacherworkloadcalculationsystem.Keywords:Teacherworkloadcalculationsystem;Java;MySQL;Springbootframework第1章緒論研究背景隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,計(jì)算機(jī)在各行各業(yè)中的應(yīng)用迅速普及,計(jì)算機(jī)的應(yīng)用在工作量管理中同樣也得到了飛速的發(fā)展。對(duì)于工作量管理最基層的管理之一工作量管理來說,利用計(jì)算機(jī)實(shí)現(xiàn)工作量管理等日常工作來提高辦事效率,是適應(yīng)當(dāng)今社會(huì)發(fā)展要求,推動(dòng)工作量管理領(lǐng)域現(xiàn)代化快速發(fā)展的必要條件。雖然工作量只是工作量管理工作的一個(gè)環(huán)節(jié),但是工作量管理是一項(xiàng)瑣碎、復(fù)雜而又十分細(xì)致的工作。日常等工作量非常的大,如果用手工來操作,不僅工作量大而且容易出現(xiàn)錯(cuò)誤。而利用計(jì)算機(jī)就不同了,一個(gè)完善的工作量管理系統(tǒng)可以幫你解決所有這方面的問題。同時(shí)計(jì)算機(jī)具有手工管理所無法比擬的優(yōu)點(diǎn)。例如:檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長(zhǎng)等。這些優(yōu)點(diǎn)能夠極大地提高工作量管理管理的效率達(dá)到事半功倍的效果。1.2研究意義我們現(xiàn)在所做的課題就是在目前的情形下,從學(xué)校的現(xiàn)有的條件實(shí)際出發(fā),利用個(gè)人所擁有的計(jì)算機(jī)硬件設(shè)備和軟件條件,從思想上,工作思維和工作方式做起,實(shí)現(xiàn)一整套關(guān)于學(xué)校用戶工作量管理系統(tǒng)的軟件來實(shí)現(xiàn)一些基本信息的維護(hù)。為學(xué)校的工作量管理人員減少點(diǎn)負(fù)擔(dān),從根本上解決用手工操作工作量大且容易出錯(cuò)的問題,同時(shí),這也是學(xué)校工作量管理管理領(lǐng)域以后發(fā)展的必然趨勢(shì)。1.3論文結(jié)構(gòu)與章節(jié)安排論文將分層次經(jīng)行編排,除去論文摘要致謝文獻(xiàn)參考部分,正文部分還會(huì)對(duì)網(wǎng)站需求做出分析,以及闡述大體的設(shè)計(jì)和實(shí)現(xiàn)的功能,最后羅列部分調(diào)測(cè)記錄,論文主要架構(gòu)如下:第一章:引言。第一章主要介紹了課題研究的背景,系統(tǒng)開發(fā)的意義和本文的研究?jī)?nèi)容與主要工作。第二章:系統(tǒng)需求分析。第二章主要從系統(tǒng)的用戶、功能等方面進(jìn)行需求分析。第三章:系統(tǒng)設(shè)計(jì)。第三章主要對(duì)系統(tǒng)框架、系統(tǒng)功能模塊、數(shù)據(jù)庫(kù)進(jìn)行功能設(shè)計(jì)。第四章:系統(tǒng)實(shí)現(xiàn)。第四章主要介紹了系統(tǒng)框架搭建、系統(tǒng)界面的實(shí)現(xiàn)。第五章:系統(tǒng)測(cè)試。第五章主要對(duì)系統(tǒng)的部分界面進(jìn)行測(cè)試并對(duì)主要功能進(jìn)行測(cè)試第六章:總結(jié)第2章相關(guān)技術(shù)2.1開發(fā)技術(shù)本系統(tǒng)前端框架采用了比較流行的漸進(jìn)式JavaScript框架Vue.js。使用Vue-Router和Vuex實(shí)現(xiàn)動(dòng)態(tài)路由和全局狀態(tài)管理,Ajax實(shí)現(xiàn)前后端通信,ElementUI組件庫(kù)使頁(yè)面快速成型。后端部分:采用SpringBoot作為開發(fā)框架,同時(shí)集成MyBatis、Redis等相關(guān)技術(shù)。2.2Java簡(jiǎn)介Java主要采用CORBA技術(shù)和安全模型,可以在互聯(lián)網(wǎng)應(yīng)用的數(shù)據(jù)保護(hù)。它還提供了對(duì)EJB(EnterpriseJavaBeans)的全面支持,JavaservletAPI,JSP(Javaserverpages),和XML技術(shù)。Java語言是一種面向?qū)ο蟮恼Z言,它通過提供最基本的方法來完成指定的任務(wù),開發(fā)者只需要知道一些概念就能夠編寫出一些應(yīng)用程序。Java程序相對(duì)較小,其代碼能夠在小機(jī)器上運(yùn)行。Java是一種計(jì)算機(jī)編程語言,具有封裝、繼承和多態(tài)性三個(gè)主要特性,廣泛應(yīng)用于企業(yè)Web應(yīng)用程序開發(fā)和移動(dòng)應(yīng)用程序開發(fā)。Java語言和一般編譯器以及直譯的區(qū)別在于,Java首先將源代碼轉(zhuǎn)換為字節(jié)碼,然后將其轉(zhuǎn)換為JVM的可執(zhí)行文件,JVM可以在各種不同的JVM上運(yùn)行。因此,實(shí)現(xiàn)了它的跨平臺(tái)特性。雖然這使得Java在早期非常緩慢,但是隨著Java的開發(fā),它已經(jīng)得到了改進(jìn)。2.3MVVM模式MVVM是Model-View-ViewModel的簡(jiǎn)寫。它本質(zhì)上就是MVC的改進(jìn)版。MVVM就是將其中的View的狀態(tài)和行為抽象化,讓我們將視圖UI和業(yè)務(wù)邏輯分開。當(dāng)然這些事ViewModel已經(jīng)幫我們做了,它可以取出Model的數(shù)據(jù)同時(shí)幫忙處理View中由于需要展示內(nèi)容而涉及的業(yè)務(wù)邏輯。微軟的WPF帶來了新的技術(shù)體驗(yàn),如Silverlight、音頻、視頻、3D、動(dòng)畫……,這導(dǎo)致了軟件UI層更加細(xì)節(jié)化、可定制化。同時(shí),在技術(shù)層面,WPF也帶來了諸如Binding、DependencyProperty、RoutedEvents、Command、DataTemplate、ControlTemplate等新特性。MVVM(Model-View-ViewModel)框架的由來便是MVP(Model-View-Presenter)模式與WPF結(jié)合的應(yīng)用方式時(shí)發(fā)展演變過來的一種新型架構(gòu)框架。它立足于原有MVP框架并且把WPF的新特性糅合進(jìn)去,以應(yīng)對(duì)客戶日益復(fù)雜的需求變化。2.4B/S結(jié)構(gòu)B/S(Browser/Server)比前身架構(gòu)更為省事的架構(gòu)。它借助Webserver完成數(shù)據(jù)的傳遞交流。只需要下載瀏覽器作為客戶端,那么工作就達(dá)到“瘦身”效果,不需要考慮不停裝軟件的問題。2.5MySQL數(shù)據(jù)庫(kù)Mysql的語言是非結(jié)構(gòu)化的,用戶可以在數(shù)據(jù)上進(jìn)行工作。MySQL因?yàn)槠渌俣?、可靠性和適應(yīng)性而備受關(guān)注。大多數(shù)人都認(rèn)為在不需要\t"/item/MySQL%E6%95%B0%E6%8D%AE%E5%BA%93/_blank"事務(wù)化處理的情況下,MySQL是管理內(nèi)容最好的選擇。并且因?yàn)镸ysql的語言和結(jié)構(gòu)比較簡(jiǎn)單,但是功能和存儲(chǔ)信息量很強(qiáng)大,所以得到了普遍的應(yīng)用。Mysql數(shù)據(jù)庫(kù)在編程過程中的作用是很廣泛的,為用戶進(jìn)行數(shù)據(jù)查詢帶來了方便。Mysql數(shù)據(jù)庫(kù)的應(yīng)用因其靈活性強(qiáng),功能強(qiáng)大,所以在實(shí)現(xiàn)某功能時(shí)只需要一小段代碼,而不像其他程序需要編寫大段代碼。總體來說,Mysql數(shù)據(jù)庫(kù)的語言相對(duì)要簡(jiǎn)潔很多。數(shù)據(jù)流程分析主要就是數(shù)據(jù)存儲(chǔ)的儲(chǔ)藏室,它是在計(jì)算機(jī)上進(jìn)行的,而不是現(xiàn)實(shí)中的儲(chǔ)藏室。數(shù)據(jù)的存放是按固定格式,而不是無序的,其定義就是:長(zhǎng)期有固定格式,可以共享的存儲(chǔ)在計(jì)算機(jī)存儲(chǔ)器上。數(shù)據(jù)庫(kù)管理主要是數(shù)據(jù)存儲(chǔ)、修改和增加以及數(shù)據(jù)表的建立。為了保證系統(tǒng)數(shù)據(jù)的正常運(yùn)行,一些有能力的處理者可以進(jìn)行管理而不需要專業(yè)的人來處理。數(shù)據(jù)表的建立,可以對(duì)數(shù)據(jù)表中的數(shù)據(jù)進(jìn)行調(diào)整,數(shù)據(jù)的重新組合及重新構(gòu)造,保證數(shù)據(jù)的安全性。介于數(shù)據(jù)庫(kù)的功能強(qiáng)大等特點(diǎn),本系統(tǒng)的開發(fā)主要應(yīng)用了Mysql進(jìn)行對(duì)數(shù)據(jù)的管理。2.6SpringBoot框架介紹Spring框架是Java平臺(tái)上的一種開源應(yīng)用框架,提供具有控制反轉(zhuǎn)特性的容器。盡管Spring框架自身對(duì)編程模型沒有限制,但其在Java應(yīng)用中的頻繁使用讓它備受青睞,以至于后來讓它作為EJB(EnterpriseJavaBeans)模型的補(bǔ)充,甚至是替補(bǔ)。Spring框架為開發(fā)提供了一系列的解決方案,比如利用控制反轉(zhuǎn)的核心特性,并通過依賴注入實(shí)現(xiàn)控制反轉(zhuǎn)來實(shí)現(xiàn)管理對(duì)象生命周期容器化,利用面向切面編程進(jìn)行聲明式的事務(wù)管理,整合多種持久化技術(shù)管理數(shù)據(jù)訪問,提供大量?jī)?yōu)秀的Web框架方便開發(fā)等等。Spring框架具有控制反轉(zhuǎn)(IOC)特性,IOC旨在方便項(xiàng)目維護(hù)和測(cè)試,它提供了一種通過Java的反射機(jī)制對(duì)Java對(duì)象進(jìn)行統(tǒng)一的配置和管理的方法。Spring框架利用容器管理對(duì)象的生命周期,容器可以通過掃描XML文件或類上特定Java注解來配置對(duì)象,開發(fā)者可以通過依賴查找或依賴注入來獲得對(duì)象。Spring框架具有面向切面編程(AOP)框架,SpringAOP框架基于代理模式,同時(shí)運(yùn)行時(shí)可配置;AOP框架主要針對(duì)模塊之間的交叉關(guān)注點(diǎn)進(jìn)行模塊化。Spring框架的AOP框架僅提供基本的AOP特性,雖無法與AspectJ框架相比,但通過與AspectJ的集成,也可以滿足基本需求。Spring框架下的事務(wù)管理、遠(yuǎn)程訪問等功能均可以通過使用SpringAOP技術(shù)實(shí)現(xiàn)。Spring的事務(wù)管理框架為Java平臺(tái)帶來了一種抽象機(jī)制,使本地和全局事務(wù)以及嵌套事務(wù)能夠與保存點(diǎn)一起工作,并且?guī)缀蹩梢栽贘ava平臺(tái)的任何環(huán)境中工作。Spring集成多種事務(wù)模板,系統(tǒng)可以通過事務(wù)模板、XML或Java注解進(jìn)行事務(wù)配置,并且事務(wù)框架集成了消息傳遞和緩存等功能。Spring的數(shù)據(jù)訪問框架解決了開發(fā)人員在應(yīng)用程序中使用數(shù)據(jù)庫(kù)時(shí)遇到的常見困難。它不僅對(duì)Java:JDBC、iBATS/MyBATIs、Hibernate、Java數(shù)據(jù)對(duì)象(JDO)、ApacheOJB和ApacheCayne等所有流行的數(shù)據(jù)訪問框架中提供支持,同時(shí)還可以與Spring的事務(wù)管理一起使用,為數(shù)據(jù)訪問提供了靈活的抽象。Spring框架最初是沒有打算構(gòu)建一個(gè)自己的WebMVC框架,其開發(fā)人員在開發(fā)過程中認(rèn)為現(xiàn)有的StrutsWeb框架的呈現(xiàn)層和請(qǐng)求處理層之間以及請(qǐng)求處理層和模型之間的分離不夠,于是創(chuàng)建了SpringMVC。第3章系統(tǒng)分析系統(tǒng)分析是開發(fā)一個(gè)項(xiàng)目的先決條件,通過系統(tǒng)分析可以很好的了解系統(tǒng)的主體用戶的基本需求情況,同時(shí)這也是項(xiàng)目的開發(fā)的原因。進(jìn)而對(duì)系統(tǒng)開發(fā)進(jìn)行可行性分析,通常包括技術(shù)可行性、經(jīng)濟(jì)可行性等,可行性分析同時(shí)也是從項(xiàng)目整體角度進(jìn)行的分析。然后就是對(duì)項(xiàng)目的具體需求進(jìn)行分析,分析的手段一般都是通過用戶的用例圖來實(shí)現(xiàn)。下面是詳細(xì)的介紹。3.1可行性分析(1)經(jīng)濟(jì)可行性:經(jīng)濟(jì)可行性在此僅代表網(wǎng)站的運(yùn)維成本,開發(fā)成本不在此考慮。目前該模式下的教師工作量計(jì)算系統(tǒng)的數(shù)量日益增多,網(wǎng)上進(jìn)行教師工作量計(jì)算的相關(guān)信息的查詢管理變得平民化普及化,用戶人數(shù)呈上升趨勢(shì),當(dāng)用戶人數(shù)龐大了,運(yùn)維成本可以由廣告費(fèi)進(jìn)行填補(bǔ),包括開發(fā)成本。所以經(jīng)濟(jì)可行性沒有問題。(2)操作可行性:此次項(xiàng)目設(shè)計(jì)參考了幾個(gè)該模式下網(wǎng)站的開發(fā)案例,對(duì)他們的操作界面分析,將眾多案例結(jié)合在一起,突出以人為本簡(jiǎn)化操作,所以具有基本計(jì)算機(jī)知識(shí)的人都會(huì)操作本項(xiàng)目。因此操作可行性也沒有問題。(3)技術(shù)可行性:技術(shù)可行性指的是對(duì)于搭建框架的可行性,以及有更優(yōu)秀的技術(shù)出現(xiàn)時(shí)系統(tǒng)的技術(shù)更新?lián)Q代的納新性如何,開發(fā)時(shí)間成本費(fèi)用比如何?,F(xiàn)有的Java語言能夠迎合所有電子商務(wù)系統(tǒng)的搭建,系統(tǒng)技術(shù)設(shè)備的可擴(kuò)展性可以由springboot構(gòu)架的資源優(yōu)勢(shì)予以促成。我采用了編譯器eclipse+java+mysql用以運(yùn)行整體程序。綜上所述技術(shù)可行性也沒有問題。(4)法律可行性:從開發(fā)者角度來看,springboot框架是網(wǎng)上開源且免費(fèi)的,在知識(shí)產(chǎn)權(quán)方面不會(huì)產(chǎn)生任何法律糾紛。從用戶使用角度來看,只要不再系統(tǒng)上販賣違禁品,對(duì)系統(tǒng)做出條約協(xié)議,杜絕非法支付即可。綜上所述法律可行性也沒有問題。3.2系統(tǒng)流程分析業(yè)務(wù)流程是用一些特定的符合和線條來進(jìn)行演示用戶在使用系統(tǒng)時(shí)的過程,在進(jìn)行系統(tǒng)分析的時(shí)候,業(yè)務(wù)流程可以幫助開發(fā)人員更好的理解業(yè)務(wù),發(fā)現(xiàn)錯(cuò)誤,完善系統(tǒng)。3.2.1數(shù)據(jù)增加流程用戶成功登入系統(tǒng)后就能夠?qū)崿F(xiàn)增加數(shù)據(jù)的操作,增加數(shù)據(jù)的編號(hào)是特定的,系統(tǒng)生成,用戶不能隨意填寫,除了編號(hào)以外,其他增加信息用戶自己填寫,填寫后的信息經(jīng)過系統(tǒng)驗(yàn)證,驗(yàn)證合法通過就顯示增加數(shù)據(jù)成功了,相反的話,就沒有增加成功,圖2-1顯示的就是在增加數(shù)據(jù)時(shí)的流程。圖2-1數(shù)據(jù)增加流程圖3.2.2數(shù)據(jù)修改流程數(shù)據(jù)修改時(shí)的流程和上面介紹的數(shù)據(jù)增加時(shí)的流程差不多,如圖2-2所示。圖2-2數(shù)據(jù)修改流程圖3.2.3數(shù)據(jù)刪除流程如果系統(tǒng)里面存在一些沒有用的數(shù)據(jù)的話,相關(guān)的管理人員還可以對(duì)這些數(shù)據(jù)進(jìn)行刪除,圖2-3就是數(shù)據(jù)刪除時(shí)的流程圖。圖2-3數(shù)據(jù)刪除流程圖3.3系統(tǒng)功能分析3.3.1功能性分析按照教師工作量計(jì)算系統(tǒng)的角色,我劃分為了教師用戶和管理員模塊這兩大部分。教師用戶模塊:(1)注冊(cè)登錄:游客可以隨時(shí)進(jìn)入到系統(tǒng)中,對(duì)系統(tǒng)中的信息瀏覽,但是想要實(shí)現(xiàn)教師工作量等信息查詢,就必須有這個(gè)系統(tǒng)的賬號(hào),如果沒有賬號(hào)的話,可以注冊(cè)教師用戶進(jìn)行相關(guān)的操作,同時(shí)用戶還可以通過“我的”這以按鈕對(duì)個(gè)人信息以及操作的信息進(jìn)行管控。(2)公告信息:教師可以在線上進(jìn)行公告信息瀏覽等。(3)教師工作量:教師登錄后可以點(diǎn)擊教師工作量查看工作等詳細(xì)信息。(4)教師工資:教師登錄后可以查看和編輯教師的職稱、評(píng)教等級(jí)、課程數(shù)量、教師學(xué)歷、教師姓名、工資詳情等進(jìn)行提交相關(guān)信息。(5)課程信息:教師登錄后可以對(duì)課程信息進(jìn)行查看、安排,并對(duì)授課后課程信息進(jìn)行總結(jié)上傳。(6)課程資料:教師點(diǎn)擊“課程資料”這個(gè)菜單按鈕,可以對(duì)課程的資料進(jìn)行查詢、重置、刪除、添加等相應(yīng)操作。管理員管理模塊:(1)人員管理:管理員可以對(duì)教師用戶進(jìn)行維護(hù)管理。(2)公告消息:可對(duì)公告消息進(jìn)行查詢、重置、刪除、添加等相應(yīng)操作。(3)教師工作量:可對(duì)教師的年度工作量進(jìn)行查詢、重置、刪除、添加等相應(yīng)操作。(4)教師工資:可對(duì)教師的工資信息進(jìn)行查詢、重置、刪除、添加等相應(yīng)操作。(5)課程信息:可對(duì)教師的課程信息進(jìn)行查詢、重置、刪除、添加等相應(yīng)操作。(6)課程資料:可對(duì)教師的課程資料信息進(jìn)行查詢、重置、刪除、添加等相應(yīng)操作。3.3.2非功能性分析教師工作量計(jì)算系統(tǒng)的非功能性需求比如教師工作量計(jì)算系統(tǒng)的安全性怎么樣,可靠性怎么樣,性能怎么樣,可拓展性怎么樣等。具體可以表示在如下3-1表格中:表2-1教師工作量計(jì)算系統(tǒng)非功能需求表安全性主要指教師工作量計(jì)算系統(tǒng)數(shù)據(jù)庫(kù)的安裝,數(shù)據(jù)庫(kù)的使用和密碼的設(shè)定必須合乎規(guī)范。可靠性可靠性是指教師工作量計(jì)算系統(tǒng)能夠安裝用戶的指示進(jìn)行操作,經(jīng)過測(cè)試,可靠性90%以上。性能性能是影響教師工作量計(jì)算系統(tǒng)占據(jù)市場(chǎng)的必要條件,所以性能最好要佳才好。可擴(kuò)展性比如數(shù)據(jù)庫(kù)預(yù)留多個(gè)屬性,比如接口的使用等確保了系統(tǒng)的非功能性需求。易用性用戶只要跟著教師工作量計(jì)算系統(tǒng)的頁(yè)面展示內(nèi)容進(jìn)行操作,就可以了??删S護(hù)性教師工作量計(jì)算系統(tǒng)開發(fā)的可維護(hù)性是非常重要的,經(jīng)過測(cè)試,可維護(hù)性沒有問題3.4系統(tǒng)用例分析通過3.3功能的分析,得出了本教師工作量計(jì)算系統(tǒng)的用例圖:圖3-4就是教師角色的用例展示。圖3-4教師工作量計(jì)算系統(tǒng)教師角色用例圖圖3-5就是管理員角色的用例展示。圖3-5教師工作量計(jì)算系統(tǒng)管理員角色用例圖3.5本章小結(jié)本章主要通過對(duì)教師工作量計(jì)算系統(tǒng)的可行性分析、流程分析、功能需求分析、系統(tǒng)用例分析,確定整個(gè)教師工作量計(jì)算系統(tǒng)要實(shí)現(xiàn)的功能。同時(shí)也為教師工作量計(jì)算系統(tǒng)的代碼實(shí)現(xiàn)和測(cè)試提供了標(biāo)準(zhǔn)。第4章系統(tǒng)設(shè)計(jì)本章主要討論的內(nèi)容包括教師工作量計(jì)算系統(tǒng)的功能模塊設(shè)計(jì)、數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)。4.1系統(tǒng)架構(gòu)設(shè)計(jì)本教師工作量計(jì)算系統(tǒng)從架構(gòu)上分為三層:表現(xiàn)層(UI)、業(yè)務(wù)邏輯層(BLL)以及數(shù)據(jù)層(DL)。圖4-1教師工作量計(jì)算系統(tǒng)系統(tǒng)架構(gòu)設(shè)計(jì)圖表現(xiàn)層(UI):又稱UI層,主要完成本教師工作量計(jì)算系統(tǒng)的UI交互功能,一個(gè)良好的UI可以打打提高用戶的用戶體驗(yàn),增強(qiáng)用戶使用本教師工作量計(jì)算系統(tǒng)時(shí)的舒適度。UI的界面設(shè)計(jì)也要適應(yīng)不同版本的教師工作量計(jì)算系統(tǒng)以及不同尺寸的分辨率,以做到良好的兼容性。UI交互功能要求合理,用戶進(jìn)行交互操作時(shí)必須要得到與之相符的交互結(jié)果,這就要求表現(xiàn)層要與業(yè)務(wù)邏輯層進(jìn)行良好的對(duì)接。業(yè)務(wù)邏輯層(BLL):主要完成本教師工作量計(jì)算系統(tǒng)的數(shù)據(jù)處理功能。用戶從表現(xiàn)層傳輸過來的數(shù)據(jù)經(jīng)過業(yè)務(wù)邏輯層進(jìn)行處理交付給數(shù)據(jù)層,系統(tǒng)從數(shù)據(jù)層讀取的數(shù)據(jù)經(jīng)過業(yè)務(wù)邏輯層進(jìn)行處理交付給表現(xiàn)層。數(shù)據(jù)層(DL):由于本教師工作量計(jì)算系統(tǒng)的數(shù)據(jù)是放在服務(wù)端的mysql數(shù)據(jù)庫(kù)中,因此本屬于服務(wù)層的部分可以直接整合在業(yè)務(wù)邏輯層中,所以數(shù)據(jù)層中只有數(shù)據(jù)庫(kù),其主要完成本教師工作量計(jì)算系統(tǒng)的數(shù)據(jù)存儲(chǔ)和管理功能。4.2系統(tǒng)功能模塊設(shè)計(jì)4.2.1整體功能模塊設(shè)計(jì)在上一章節(jié)中主要對(duì)系統(tǒng)的功能性需求和非功能性需求進(jìn)行分析,并且根據(jù)需求分析了本教師工作量計(jì)算系統(tǒng)中的用例。那么接下來就要開始對(duì)本教師工作量計(jì)算系統(tǒng)的架構(gòu)、主要功能和數(shù)據(jù)庫(kù)開始進(jìn)行設(shè)計(jì)。教師工作量計(jì)算系統(tǒng)根據(jù)前面章節(jié)的需求分析得出,其總體設(shè)計(jì)模塊圖如圖3-2所示。圖4-2教師工作量計(jì)算系統(tǒng)功能模塊圖4.2.2用戶模塊設(shè)計(jì)本系統(tǒng)的用戶包括管理員、教師。兩種用戶模塊的功能基本是相同的,教師比管理員多了一個(gè)注冊(cè)功能,所以以用戶模塊的結(jié)構(gòu)圖為例進(jìn)行分析,用戶模塊結(jié)構(gòu)圖為例進(jìn)行分析,如下圖:圖4-3用戶模塊結(jié)構(gòu)圖4.2.3教師工資管理模塊設(shè)計(jì)教師工作量計(jì)算系統(tǒng)可以進(jìn)行教師工資管理,教師用戶可以在線查看工資詳情,具體的結(jié)構(gòu)圖如下:圖4-4在線留言模塊結(jié)構(gòu)圖4.2.4課程信息管理模塊設(shè)計(jì)教師工作量計(jì)算系統(tǒng)中,教師可以查看課程信息詳情,管理員后臺(tái)進(jìn)行課程信息進(jìn)行查詢、重置、刪除、添加等相應(yīng)操作,其模塊功能結(jié)構(gòu),具體的結(jié)構(gòu)圖如下:圖4-5教師請(qǐng)假模塊結(jié)構(gòu)圖4.3數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì)一般包括需求分析、概念模型設(shè)計(jì)、數(shù)據(jù)庫(kù)表建立三大過程,其中需求分析前面章節(jié)已經(jīng)闡述,概念模型設(shè)計(jì)有概念模型和邏輯結(jié)構(gòu)設(shè)計(jì)兩部分。4.3.1數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)下面是整個(gè)教師工作量計(jì)算系統(tǒng)中主要的數(shù)據(jù)庫(kù)表總E-R實(shí)體關(guān)系圖。圖4-6教師工作量計(jì)算系統(tǒng)總E-R關(guān)系圖4.3.2數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)通過上一小節(jié)中教師工作量計(jì)算系統(tǒng)中總E-R關(guān)系圖上得出一共需要?jiǎng)?chuàng)建很多個(gè)數(shù)據(jù)表。在此我主要羅列幾個(gè)主要的數(shù)據(jù)庫(kù)表結(jié)構(gòu)設(shè)計(jì)。access_token字段名稱類型長(zhǎng)度不是null主鍵字段說明token_idint11是是臨時(shí)訪問牌IDtokenvarchar64否否臨時(shí)訪問牌infotext0否否maxageint2是否最大壽命c(diǎn)reate_timetimestamp0是否創(chuàng)建時(shí)間update_timetimestamp0是否更新時(shí)間user_idint11是是用戶編號(hào)announcement_information字段名稱類型長(zhǎng)度不是null主鍵字段說明announcement_information_idint11是否公告信息IDannouncement_novarchar64否否公告編號(hào)announcement_titlevarchar64否否公告標(biāo)題publishervarchar64否否發(fā)布人release_datedate0否否發(fā)布日期announcement_contenttext0否否公告內(nèi)容recommendint11是否智能推薦create_timedatetime0是否創(chuàng)建時(shí)間update_timetimestamp0是否更新時(shí)間auth字段名稱類型長(zhǎng)度不是null主鍵字段說明auth_idint11是是授權(quán)IDuser_groupvarchar64否否用戶組mod_namevarchar64否否模塊名table_namevarchar64否否表名page_titlevarchar255否否頁(yè)面標(biāo)題pathvarchar255否否路由路徑positionvarchar32否否位置modevarchar32是否跳轉(zhuǎn)方式addtinyint1是是是否可增加deltinyint1是是是否可刪除settinyint1是是是否可修改gettinyint1是是是否可查看field_addvarchar500否否添加字段field_setvarchar500否否修改字段field_getvarchar500否否查詢字段table_nav_namevarchar500否否跨表導(dǎo)航名稱table_navvarchar500否否跨表導(dǎo)航optiontext0否否配置create_timetimestamp0是否創(chuàng)建時(shí)間update_timetimestamp0是否更新時(shí)間course_information字段名稱類型長(zhǎng)度不是null主鍵字段說明course_information_idint11是否課程信息IDcourse_novarchar64否否課程編號(hào)course_namevarchar64否否課程名稱lecturerint11否否授課教師teachers_namevarchar64否否教師姓名teaching_timedatetime0否否授課時(shí)間lecture_sectionvarchar64否否授課課節(jié)remarkstext0否否備注信息recommendint11是否智能推薦create_timedatetime0是否創(chuàng)建時(shí)間update_timetimestamp0是否更新時(shí)間course_materials字段名稱類型長(zhǎng)度不是null主鍵字段說明course_materials_idint11是否課程資料IDcourse_novarchar64否否課程編號(hào)course_namevarchar64否否課程名稱lecturerint11否否授課教師teachers_namevarchar64否否教師姓名teaching_timedatetime0否否授課時(shí)間lecture_sectionvarchar64否否授課課節(jié)information_documentsvarchar255否否資料文件course_summarytext0否否課程總結(jié)recommendint11是否智能推薦create_timedatetime0是否創(chuàng)建時(shí)間update_timetimestamp0是否更新時(shí)間hits字段名稱類型長(zhǎng)度不是null主鍵字段說明hits_idint10是是點(diǎn)贊IDuser_idint11是是點(diǎn)贊人create_timetimestamp0是否創(chuàng)建時(shí)間update_timetimestamp0是否更新時(shí)間source_tablevarchar255否否來源表source_fieldvarchar255否否來源字段source_idint10是是來源IDteacher_salary字段名稱類型長(zhǎng)度不是null主鍵字段說明teacher_salary_idint11是否教師工資IDtitle_namevarchar64否否標(biāo)題名稱teacher_informationint11否否教師信息teachers_namevarchar64否否教師姓名teacher_educationvarchar64否否教師學(xué)歷academic_salaryvarchar64否否學(xué)歷工資teacher_titlevarchar64否否教師職稱title_salaryvarchar64否否職稱工資number_of_coursesint11否否課程數(shù)量teaching_evaluation_gradevarchar64否否評(píng)教等級(jí)teaching_evaluation_bonusvarchar64否否評(píng)教獎(jiǎng)金annual_salaryvarchar64否否年度工資salary_detailstext0否否工資詳情recommendint11是否智能推薦create_timedatetime0是否創(chuàng)建時(shí)間update_timetimestamp0是否更新時(shí)間teacher_user字段名稱類型長(zhǎng)度不是null主鍵字段說明teacher_user_idint11是否教師用戶IDteachers_namevarchar64否否教師姓名gender_of_teachersvarchar64否否教師性別teacher_idvarchar64是否教師工號(hào)name_of_departmentvarchar64否否院系名稱class_namevarchar64否否班級(jí)名稱teacher_educationvarchar64否否教師學(xué)歷teacher_titlevarchar64否否教師職稱examine_statevarchar16是否審核狀態(tài)recommendint11是否智能推薦user_idint11是否用戶IDcreate_timedatetime0是否創(chuàng)建時(shí)間update_timetimestamp0是否更新時(shí)間teacher_workload字段名稱類型長(zhǎng)度不是null主鍵字段說明teacher_workload_idint11是否教師工作量IDtitle_namevarchar64否否標(biāo)題名稱teacher_informationint11否否教師信息teachers_namevarchar64否否教師姓名number_of_studentsint11否否學(xué)生數(shù)量student_hoursvarchar64否否學(xué)生學(xué)時(shí)total_workloadvarchar64否否總工作量recommendint11是否智能推薦create_timedatetime0是否創(chuàng)建時(shí)間update_timetimestamp0是否更新時(shí)間upload字段名稱類型長(zhǎng)度不是null主鍵字段說明upload_idint11是否上傳IDnamevarchar64否否文件名pathvarchar255否否訪問路徑filevarchar255否否文件路徑displayvarchar255否否顯示順序father_idint11否否父級(jí)IDdirvarchar255否否文件夾typevarchar32否否文件類型user字段名稱類型長(zhǎng)度不是null主鍵字段說明user_idmediumint8是是用戶IDstatesmallint1是是賬戶狀態(tài)user_groupvarchar32否否所在用戶組login_timetimestamp0是否上次登錄時(shí)間phonevarchar11否否手機(jī)號(hào)碼phone_statesmallint1是是手機(jī)認(rèn)證usernamevarchar16是否用戶名nicknamevarchar16否否昵稱passwordvarchar64是否密碼emailvarchar64否否郵箱email_statesmallint1是是郵箱認(rèn)證avatarvarchar255否否頭像地址create_timetimestamp0是否創(chuàng)建時(shí)間user_group字段名稱類型長(zhǎng)度不是null主鍵字段說明group_idmediumint8是是用戶組IDdisplaysmallint4是是顯示順序namevarchar16是否名稱descriptionvarchar255否否描述source_tablevarchar255否否來源表source_fieldvarchar255否否來源字段source_idint10是是來源IDregistersmallint1否是注冊(cè)位置create_timetimestamp0是否創(chuàng)建時(shí)間update_timetimestamp0是否更新時(shí)間4.4本章小結(jié)整個(gè)教師工作量計(jì)算系統(tǒng)的需求分析主要對(duì)系統(tǒng)總體架構(gòu)以及功能模塊的設(shè)計(jì),通過建立E-R模型和數(shù)據(jù)庫(kù)邏輯系統(tǒng)設(shè)計(jì)完成了數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)。第5章系統(tǒng)詳細(xì)設(shè)計(jì)教師工作量計(jì)算系統(tǒng)的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)主要是根據(jù)前面的教師工作量計(jì)算系統(tǒng)的需求分析和教師工作量計(jì)算系統(tǒng)的總體設(shè)計(jì)來設(shè)計(jì)頁(yè)面并實(shí)現(xiàn)業(yè)務(wù)邏輯。主要從教師工作量計(jì)算系統(tǒng)界面實(shí)現(xiàn)、業(yè)務(wù)邏輯實(shí)現(xiàn)這兩部分進(jìn)行介紹。5.1用戶功能模塊5.1.1教師首頁(yè)界面當(dāng)進(jìn)入教師工作量計(jì)算系統(tǒng)的時(shí)候,系統(tǒng)以上中下的布局進(jìn)行展示,首先映入眼簾的是系統(tǒng)的導(dǎo)航欄,下面是公告信息,再往下是各種各樣的系統(tǒng)信息,其主界面展示如下圖5-1所示。圖5-1教師首頁(yè)界面圖5.1.2個(gè)人管理界面用戶登錄/注冊(cè)成功之后可以修改自己的基本信息。修改頁(yè)面的表單中每一個(gè)input的name值都要與實(shí)體類中的參數(shù)相匹配,在用戶點(diǎn)擊修改頁(yè)面的時(shí)候,如果改后用戶名與數(shù)據(jù)庫(kù)里面重復(fù)了,頁(yè)面會(huì)提示該用戶名已經(jīng)存在了,否則通過Id來查詢用戶,并將用戶的信息修改為表單提交的數(shù)據(jù)。其個(gè)人信息界面展示如下圖5-2所示。圖5-2個(gè)人信息界面圖個(gè)人信息邏輯代碼如下:/***注冊(cè)*@paramuser*@return*/@PostMapping("register")publicMap<String,Object>signUp(@RequestBodyUseruser){//查詢用戶Map<String,String>query=newHashMap<>();query.put("username",user.getUsername());Listlist=service.select(query,newHashMap<>()).getResultList();if(list.size()>0){returnerror(30000,"用戶已存在");}user.setUserId(null);user.setPassword(service.encryption(user.getPassword()));service.save(user);returnsuccess(1);}/***用戶ID:[0,8388607]用戶獲取其他與用戶相關(guān)的數(shù)據(jù)*/@Id@GeneratedValue(strategy=GenerationType.IDENTITY)@Column(name="user_id")privateIntegeruserId;/***賬戶狀態(tài):[0,10](1可用|2異常|3已凍結(jié)|4已注銷)*/@Basic@Column(name="state")privateIntegerstate;/***所在用戶組:[0,32767]決定用戶身份和權(quán)限*/@Basic@Column(name="user_group")privateStringuserGroup;/***上次登錄時(shí)間:*/@Basic@Column(name="login_time")privateTimestamploginTime;/***手機(jī)號(hào)碼:[0,11]用戶的手機(jī)號(hào)碼,用于找回密碼時(shí)或登錄時(shí)*/@Basic@Column(name="phone")privateStringphone;/***手機(jī)認(rèn)證:[0,1](0未認(rèn)證|1審核中|2已認(rèn)證)*/@Basic@Column(name="phone_state")privateIntegerphoneState;/***用戶名:[0,16]用戶登錄時(shí)所用的賬戶名稱*/@Basic@Column(name="username")privateStringusername;/***昵稱:[0,16]*/@Basic@Column(name="nickname")privateStringnickname;/***密碼:[0,32]用戶登錄所需的密碼,由6-16位數(shù)字或英文組成*/@Basic@Column(name="password")privateStringpassword;/***郵箱:[0,64]用戶的郵箱,用于找回密碼時(shí)或登錄時(shí)*/@Basic@Column(name="email")privateStringemail;/***郵箱認(rèn)證:[0,1](0未認(rèn)證|1審核中|2已認(rèn)證)*/@Basic@Column(name="email_state")privateIntegeremailState;/***頭像地址:[0,255]*/@Basic@Column(name="avatar")privateStringavatar;/***創(chuàng)建時(shí)間:*/@Basic@Column(name="create_time")@JsonFormat(pattern="yyyy-MM-ddHH:mm:ss")privateTimestampcreateTime;@Basic@TransientprivateStringcode;}5.1.3教師登錄界面教師工作量計(jì)算系統(tǒng)中的前臺(tái)上注冊(cè)后的教師是可以通過自己的賬戶名和密碼進(jìn)行登錄的,當(dāng)教師輸入完整的自己的賬戶名和密碼信息并點(diǎn)擊“登錄”按鈕后,將會(huì)首先驗(yàn)證輸入的有沒有空數(shù)據(jù),再次驗(yàn)證輸入的賬戶名+密碼和數(shù)據(jù)庫(kù)中當(dāng)前保存的用戶信息是否一致,只有在一致后將會(huì)登錄成功并自動(dòng)跳轉(zhuǎn)到教師工作量計(jì)算系統(tǒng)的首頁(yè)中;否則將會(huì)提示相應(yīng)錯(cuò)誤信息,教師登錄界面如下圖5-3所示。圖5-3教師登錄界面圖教師登錄的邏輯代碼如下所示。/***登錄*@paramdata*@paramhttpServletRequest*@return*/@PostMapping("login")publicMap<String,Object>login(@RequestBodyMap<String,String>data,HttpServletRequesthttpServletRequest){("[執(zhí)行登錄接口]");Stringusername=data.get("username");Stringemail=data.get("email");Stringphone=data.get("phone");Stringpassword=data.get("password");ListresultList=null;Map<String,String>map=newHashMap<>();if(username!=null&&"".equals(username)==false){map.put("username",username);resultList=service.select(map,newHashMap<>()).getResultList();}elseif(email!=null&&"".equals(email)==false){map.put("email",email);resultList=service.select(map,newHashMap<>()).getResultList();}elseif(phone!=null&&"".equals(phone)==false){map.put("phone",phone);resultList=service.select(map,newHashMap<>()).getResultList();}else{returnerror(30000,"賬號(hào)或密碼不能為空");}if(resultList==null||password==null){returnerror(30000,"賬號(hào)或密碼不能為空");}//判斷是否有這個(gè)用戶if(resultList.size()<=0){returnerror(30000,"用戶不存在");}UserbyUsername=(User)resultList.get(0);Map<String,String>groupMap=newHashMap<>();groupMap.put("name",byUsername.getUserGroup());ListgroupList=userGroupService.select(groupMap,newHashMap<>()).getResultList();if(groupList.size()<1){returnerror(30000,"用戶組不存在");}UserGroupuserGroup=(UserGroup)groupList.get(0);//查詢用戶審核狀態(tài)if(!StringUtils.isEmpty(userGroup.getSourceTable())){Stringsql="selectexamine_statefrom"+userGroup.getSourceTable()+"WHEREuser_id="+byUsername.getUserId();Stringres=String.valueOf(service.runCountSql(sql).getSingleResult());if(res==null){returnerror(30000,"用戶不存在");}if(!res.equals("已通過")){returnerror(30000,"該用戶審核未通過");}}//查詢用戶狀態(tài)if(byUsername.getState()!=1){returnerror(30000,"用戶非可用狀態(tài),不能登錄");}Stringmd5password=service.encryption(password);if(byUsername.getPassword().equals(md5password)){//存儲(chǔ)Token到數(shù)據(jù)庫(kù)AccessTokenaccessToken=newAccessToken();accessToken.setToken(UUID.randomUUID().toString().replaceAll("-",""));accessToken.setUser_id(byUsername.getUserId());tokenService.save(accessToken);//返回用戶信息JSONObjectuser=JSONObject.parseObject(JSONObject.toJSONString(byUsername));user.put("token",accessToken.getToken());JSONObjectret=newJSONObject();ret.put("obj",user);returnsuccess(ret);}else{returnerror(30000,"賬號(hào)或密碼不正確");}}5.1.4公告信息界面當(dāng)點(diǎn)擊導(dǎo)航欄上的“公告信息”的時(shí)候,就會(huì)進(jìn)入對(duì)應(yīng)的界面查看公告信息,公告信息界面如下圖5-4所示。圖5-4公告信息界面圖5.1.5課程信息界面教師登錄系統(tǒng)后可以點(diǎn)擊“課程信息”菜單,對(duì)課程安排信息進(jìn)行查看了解等,課程信息界面如下圖5-5所示。圖5-5課程信息界面圖課程信息的邏輯代碼如下:@PostMapping("/add")@TransactionalpublicMap<String,Object>add(HttpServletRequestrequest)throwsIOException{service.insert(service.readBody(request.getReader()));returnsuccess(1);}@TransactionalpublicMap<String,Object>addMap(Map<String,Object>map){service.insert(map);returnsuccess(1);}publicMap<String,Object>readBody(BufferedReaderreader){BufferedReaderbr=null;StringBuildersb=newStringBuilder("");try{br=reader;Stringstr;while((str=br.readLine())!=null){sb.append(str);}br.close();Stringjson=sb.toString();returnJSONObject.parseObject(json,Map.class);}catch(IOExceptione){e.printStackTrace();}finally{if(null!=br){try{br.close();}catch(IOExceptione){e.printStackTrace();}}}returnnull;}publicvoidinsert(Map<String,Object>body){StringBuffersql=newStringBuffer("INSERTINTO");sql.append("`").append(table).append("`").append("(");for(Map.Entry<String,Object>entry:body.entrySet()){sql.append("`"+humpToLine(entry.getKey())+"`").append(",");}sql.deleteCharAt(sql.length()-1);sql.append(")VALUES(");for(Map.Entry<String,Object>entry:body.entrySet()){Objectvalue=entry.getValue();if(valueinstanceofString){sql.append("'").append(entry.getValue()).append("'").append(",");}else{sql.append(entry.getValue()).append(",");}}sql.deleteCharAt(sql.length()-1);sql.append(")");("[{}]-插入操作:{}",table,sql);Queryquery=runCountSql(sql.toString());query.executeUpdate();}5.1.6課程資料界面教師點(diǎn)擊“課程資料”菜單,可以對(duì)課程資料信息進(jìn)行查看了解或下載等,課程資料界面如下圖5-6所示。圖5-6課程資料界面圖課程資料界面邏輯代碼如下:@RequestMapping(value={"/avg_group","/avg"}) publicMap<String,Object>avg(HttpServletRequestrequest){Querycount=service.avg(service.readQuery(request),service.readConfig(request));returnsuccess(count.getResultList());}5.1.7教師工作量界面當(dāng)教師點(diǎn)擊“教師工作量”菜單后就進(jìn)入教師工作量界面,可以查看教師總工作量詳細(xì)信息。教師工作量界面如下圖5-7所示。圖5-7教師工作量界面圖5.1.8教師工資界面教師進(jìn)入系統(tǒng),可以在線查看教師工資、獎(jiǎng)金等詳細(xì)信息,教師工資界面如下圖5-8所示。圖5-8教師工資界面圖5.2管理員功能模塊5.2.1教師工資管理界面教師工作量計(jì)算系統(tǒng)中的可對(duì)教師的總工作量進(jìn)行查詢、重置、刪除、添加等相應(yīng)操作。界面如下圖5-9所示。圖5-9教師工資管理界面圖教師工資管理界面邏輯代碼如下:@RequestMapping(value={"/count_group","/count"})publicMap<String,Object>count(HttpServletRequestrequest){Querycount=service.count(service.readQuery(request),service.readConfig(request));returnsuccess(count.getResultList());}5.2.2人員管理界面教師工作量計(jì)算系統(tǒng)中的管理人員在“教師用戶”這一菜單是中可以對(duì)注冊(cè)的教師用戶進(jìn)行管控,這里以教師用戶管理為例。界面如下圖5-10所示。圖5-10教師管理界面圖教師用戶管理界面關(guān)鍵代碼如下:@RequestMapping("/get_list")publicMap<String,Object>getList(HttpServletRequestrequest){Map<String,Object>map=service.selectToPage(service.readQuery(request),service.readConfig(request));returnsuccess(map);5.2.3教師工資管理界面管理員可對(duì)教師的工資信息進(jìn)行查詢、重置、刪除、添加等相應(yīng)操作。,界面如下圖5-11所示。圖5-11教師工資管理界面圖教師工資管理界面邏輯代碼如下:@PostMapping("/upload")publicMap<String,Object>upload(@RequestParam("file")MultipartFilefile){("進(jìn)入方法");if(file.isEmpty()){returnerror(30000,"沒有選擇文件");}try{//判斷有沒路徑,沒有則創(chuàng)建StringfilePath=System.getProperty("user.dir")+"\\target\\classes\\static\\upload\\";FiletargetDir=newFile(filePath);if(!targetDir.exists()&&!targetDir.isDirectory()){if(targetDir.mkdirs()){("創(chuàng)建目錄成功");}else{log.error("創(chuàng)建目錄失敗");}}StringfileName=file.getOriginalFilename();Filedest=newFile(filePath+fileName);("文件路徑:{}",dest.getPath());("文件名:{}",dest.getName());file.transferTo(dest);JSONObjectjsonObject=newJSONObject();jsonObject.put("url","/api/upload/"+fileName);returnsuccess(jsonObject);}catch(IOExceptione){("上傳失敗:{}",e.getMessage());}returnerror(30000,"上傳失敗");}5.2.4課程信息管理界面教師工作量計(jì)算系統(tǒng)中的管理人員在“課程信息”中可對(duì)教師的課程信息進(jìn)行查詢、重置、刪除、添加等相應(yīng)操作。其管理界面如下圖5-12所示。圖5-12課程信息管理界面圖課程信息管理界面邏輯代碼如下:@PostMapping("/set")@TransactionalpublicMap<String,Object>set(HttpServletRequestrequest)throwsIOException{service.update(service.readQuery(request),service.readConfig(request),service.readBody(request.getReader()));returnsuccess(1);}publicMap<String,String>readConfig(HttpServletRequestrequest){Map<String,String>map=newHashMap<>();map.put(FindConfig.PAGE,request.getParameter(FindConfig.PAGE));map.put(FindConfig.SIZE,request.getParameter(FindConfig.SIZE));map.put(FindConfig.LIKE,request.getParameter(FindConfig.LIKE));map.put(FindConfig.ORDER_BY,request.getParameter(FindConfig.ORDER_BY));map.put(FindConfig.FIELD,request.getParameter(FindConfig.FIELD));map.put(FindConfig.GROUP_BY,request.getParameter(FindConfig.GROUP_BY));map.put(FindConfig.MAX_,request.getParameter(FindConfig.MAX_));map.put(FindConfig.MIN_,request.getParameter(FindConfig.MIN_));returnmap;}publicMap<String,String>readQuery(HttpServletRequestrequest){StringqueryString=request.getQueryString();if(queryString!=null&&!"".equals(queryString)){String[]querys=queryString.split("&");Map<String,String>map=newHashMap<>();for(Stringquery:querys){String[]q=query.split("=");map.put(q[0],q[1]);}map.remove(FindConfig.PAGE);map.remove(FindConfig.SIZE);map.remove(FindConfig.LIKE);map.remove(FindConfig.ORDER_BY);map.remove(FindConfig.FIELD);map.remove(FindConfig.GROUP_BY);map.remove(FindConfig.MAX_);map.remove(FindConfig.MIN_);returnmap;}else{returnnewHashMap<>();}}@Transactionalpublicvoidupdate(Map<String,String>query,Map<String,String>config,Map<String,Object>body){StringBuffersql=newStringBuffer("UPDATE").append("`").append(table).append("`").append("SET");for(Map.Entry<String,Object>entry:body.entrySet()){Objectvalue=entry.getValue();if(valueinstanceofString){sql.append("`"+humpToLine(entry.getKey())+"`").append("=").append("'").append(value).append("'").append(",");}else{sql.append("`"+humpToLine(entry.getKey())+"`").append("=").append(value).append(",");}}sql.deleteCharAt(sql.length()-1);sql.append(toWhereSql(query,"0".equals(config.get(FindConfig.LIKE))));("[{}]-更新操作:{}",table,sql);Queryquery1=runCountSql(sql.toString());query1.executeUpdate();}publicStringtoWhereSql(Map<String,String>query,Booleanlike){if(query.size()>0){try{StringBuildersql=newStringBuilder("WHERE");for(Map.Entry<String,String>entry:query.entrySet()){if(entry.getKey().contains(FindConfig.MIN_)){Stringmin=humpToLine(entry.getKey()).replace("_min","");sql.append("`"+min+"`").append(">='").append(URLDecoder.decode(entry.getValue(),"UTF-8")).append("'and");continue;}if(entry.getKey().contains(FindConfig.MAX_)){Stringmax=humpToLine(entry.getKey()).replace("_max","");

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論