SSM车位管理系统 计算机毕设源码65739
目 ?錄
摘要
1 緒論
1.1選題背景
1.2理論意義
1.3系統(tǒng)開發(fā)技術(shù)的特色
1.4?ssm框架介紹
1.5論文結(jié)構(gòu)與章節(jié)安排
2?車位管理系統(tǒng)系統(tǒng)分析
2.1 可行性分析
2.2 系統(tǒng)流程分析
2.2.1數(shù)據(jù)增加流程
2.2.2數(shù)據(jù)修改流程
2.2.3數(shù)據(jù)刪除流程
2.3 系統(tǒng)功能分析
2.3.1 功能性分析
2.3.2 非功能性分析
2.4 系統(tǒng)用例分析
2.5本章小結(jié)
3 車位管理系統(tǒng)總體設(shè)計(jì)
3.1 系統(tǒng)架構(gòu)設(shè)計(jì)
3.2 系統(tǒng)功能模塊設(shè)計(jì)
3.2.1整體功能模塊設(shè)計(jì)
3.2.2用戶模塊設(shè)計(jì)
3.2.3評(píng)論管理模塊設(shè)計(jì)
3.2.4車位管理模塊設(shè)計(jì)
3.3 數(shù)據(jù)庫(kù)設(shè)計(jì)
3.3.1 數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)
3.3.2 數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)
3.4本章小結(jié) 20
4?車位管理系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn) 21
4.1用戶功能模塊 21
4.1.1 前臺(tái)首頁(yè)界面 21
4.1.2 用戶登錄界面 21
4.1.3用戶注冊(cè)界面 25
4.1.4新聞資訊界面
4.1.5 密碼修改界面
4.1.6公告信息界面
4.1.7?車位詳情界面
4.2管理員功能模塊
4.2.1 登錄界面
4.2.2?系統(tǒng)用戶管理界面
4.2.3?資源管理界面 30
4.2.4?模塊管理界面 31
5系統(tǒng)測(cè)試 32
5.1系統(tǒng)測(cè)試的目的 32
5.2 系統(tǒng)測(cè)試用例 32
5.3 系統(tǒng)測(cè)試結(jié)果 33
結(jié)論 34
參考文獻(xiàn) 35
致??謝
摘要
科技進(jìn)步的飛速發(fā)展引起人們?nèi)粘I畹木薮笞兓?#xff0c;電子信息技術(shù)的飛速發(fā)展使得電子信息技術(shù)的各個(gè)領(lǐng)域的應(yīng)用水平得到普及和應(yīng)用。信息時(shí)代的到來已成為不可阻擋的時(shí)尚潮流,人類發(fā)展的歷史正進(jìn)入一個(gè)新時(shí)代。在現(xiàn)實(shí)運(yùn)用中,應(yīng)用軟件的工作規(guī)則和開發(fā)步驟,采用Java技術(shù)建設(shè)車位管理系統(tǒng)。
本設(shè)計(jì)主要實(shí)現(xiàn)集人性化、高效率、便捷等優(yōu)點(diǎn)于一身的車位管理系統(tǒng),完成首頁(yè)、系統(tǒng)用戶管理(管理員、停車用戶)資源管理(新聞列表、新聞分類)公告信息管理(公告信息)模塊管理(車位信息、入場(chǎng)信息、出場(chǎng)信息、預(yù)約信息)等功能模塊。系統(tǒng)通過瀏覽器與服務(wù)器進(jìn)行通信,實(shí)現(xiàn)數(shù)據(jù)的交互與變更。本系統(tǒng)通過科學(xué)的管理方式、便捷的服務(wù)提高了工作效率,減少了數(shù)據(jù)存儲(chǔ)上的錯(cuò)誤和遺漏。車位管理系統(tǒng)使用Java語言,采用基于 MVVM模式的SSM技術(shù)進(jìn)行開發(fā),使用 Eclipse 2017 CI 10 編譯器編寫,數(shù)據(jù)方面主要采用的是微軟的MySQL關(guān)系型數(shù)據(jù)庫(kù)來作為數(shù)據(jù)存儲(chǔ)媒介,配合前臺(tái)HTML+CSS 技術(shù)完成系統(tǒng)的開發(fā)。
關(guān)鍵詞:ssm技術(shù);MYSQL;車位管理系統(tǒng)
Abstract
The rapid development of science and technology has caused great changes in people's daily life. The rapid development of electronic information technology has made the application level of electronic information technology in all fields popular and applied. The arrival of the information age has become an irresistible fashion trend, and the history of human development is entering a new era. In practical application, the working rules and development steps of the application software are used to build the parking space management system using Java technology.
This design mainly realizes the parking space management system integrating the advantages of humanization, efficiency and convenience, and completes the functional modules such as homepage, system user management (administrator, parking user) resource management (news list, news classification), announcement information management (announcement information) module management (parking space information, admission information, exit information, reservation information) and so on. The system communicates with the server through the browser to realize data interaction and change. The system improves work efficiency and reduces errors and omissions in data storage through scientific management and convenient services. The parking space management system uses Java language, uses SSM technology based on MVVM mode for development, and uses Eclipse 2017 CI 10 compiler to write. In terms of data, Microsoft's MySQL relational database is mainly used as the data storage medium, and the system development is completed with the front HTML+CSS technology.
Keywords:?Ssm technology; MYSQL; Parking space management system
1 緒論
1.1選題背景
?隨著經(jīng)濟(jì)的發(fā)展,人們生活水平和生活質(zhì)量不斷提高,作為奢侈消費(fèi)品的私家車也開始普及化。私家車保有量大幅的提高,為新建小區(qū)的車位設(shè)計(jì)提出了更高要求。那么互聯(lián)網(wǎng)的不斷擴(kuò)大與發(fā)展,就為實(shí)現(xiàn)小區(qū)私家車與車位有效銜接、高效管理提供了前提。
對(duì)于小區(qū)車位管理來說也不例外。現(xiàn)今,有很多停車位管理都是初步開始實(shí)施,甚至尚未使用計(jì)算機(jī)進(jìn)行信息處理。根據(jù)調(diào)查得知,他們以前對(duì)信息管理的主要方式是基于文本、表格等紙質(zhì)的手工處理,對(duì)于管理過程中的很多信息都是用人工計(jì)算、手抄進(jìn)行。數(shù)據(jù)信息處理工作量大,容易出錯(cuò)且由于數(shù)據(jù)繁多,容易丟失,不易查找??偟膩碚f,缺乏車位信息采集處理系統(tǒng)及規(guī)范的信息管理手段。例如:在住戶提出需要車位的時(shí)候,工作人員不能在第一時(shí)間告知是否有空余車位可以提供,需要在核對(duì)大量信息、數(shù)據(jù)之后才能給與答復(fù),中間不管是對(duì)于住戶來說,還是對(duì)于物業(yè)辦的工作人員來說,都是一件費(fèi)時(shí)費(fèi)力的事情。又如:在車位的分配上,不能從大局知道每一個(gè)車位的位置及分布,以及現(xiàn)屬于哪一位住戶。
數(shù)據(jù)處理手工操作,工作量大,出錯(cuò)率高,出錯(cuò)后不易更改,傳統(tǒng)的小區(qū)車位管理系統(tǒng)已經(jīng)不能適應(yīng)大規(guī)模車位的管理了,小區(qū)規(guī)模越來越大,車輛數(shù)量的增加使得管理難度的加大,在車輛的安全性方面無法得到保證。在家門口停車作為大眾生活不可缺少的一部分,社會(huì)對(duì)于小區(qū)停車新型管理系統(tǒng)產(chǎn)生了強(qiáng)大的市場(chǎng)需求,因此,開發(fā)車位管理信息系統(tǒng)的設(shè)計(jì)具有重要的實(shí)際意義。近年來中國(guó)經(jīng)濟(jì)的高速發(fā)展,各地區(qū)的車輛數(shù)量增長(zhǎng)迅速,由此各地的小區(qū)的機(jī)動(dòng)車檔案資料增加迅速。隨著檔案資料的增加,工作人員勞動(dòng)強(qiáng)度增大,檔案資料的存儲(chǔ)、查詢等工作與辦公高效率的要求矛盾日漸突出。本論文所介紹的便是一個(gè)小區(qū)車輛管理系統(tǒng),以規(guī)范對(duì)車輛信息的管理,提高管理效率。
1.2理論意義
近年來,社會(huì)經(jīng)濟(jì)不斷發(fā)展,人民的生活水平逐步提高,個(gè)人用車擁有量逐年上升。但是,因?yàn)槟壳靶^(qū)交通管理方法落后、合理規(guī)劃車位有限等原因,不能使小區(qū)用戶更快捷的進(jìn)入小區(qū)找到停車位,很顯然小區(qū)車輛管理的不規(guī)范和停車引導(dǎo)系統(tǒng)的技術(shù)落后嚴(yán)重制約小區(qū)智能化管理的發(fā)展,這已經(jīng)成為迫在眉睫的問題。由于我國(guó)對(duì)小區(qū)的管理還不是很規(guī)范,因此常常會(huì)出現(xiàn)小區(qū)車輛停在路邊,使本來就比較窄的道路更加的狹窄,有的道路車輛已經(jīng)無法通過,很多時(shí)候就因?yàn)橐惠v停在十字路口的車導(dǎo)致小區(qū)道路堵塞。小區(qū)的無序停車,亂停車的現(xiàn)象正在困擾著小區(qū)居民的出行,干擾著人們的正常生活和工作,更為嚴(yán)重的是我國(guó)小區(qū)車位的智能化進(jìn)程也受了較為嚴(yán)重的影響。本文建立車位信息管理系統(tǒng),力爭(zhēng)為提高小區(qū)的車位智能化管理進(jìn)行構(gòu)建和設(shè)計(jì)。?為了給小區(qū)打造一個(gè)整潔、和諧、安全的環(huán)境,為了提高小區(qū)住戶尋找空閑停車位的效率和空閑停車位的利用率,增加小區(qū)車輛和車位配對(duì)的效率,更好的滿足居民的停車需求,建設(shè)一個(gè)車位信息管理系統(tǒng)是必要的。
本課題旨在設(shè)計(jì)并實(shí)現(xiàn)小區(qū)車位信息管理,用來解決傳統(tǒng)車位管理系統(tǒng)中存在的眾多問題,從而提高對(duì)于車位的管理效率。過去,住戶來到物業(yè)辦告知我們需要-?-個(gè)車位,工作人員都要通過核對(duì)空余車位信息,每個(gè)車位到住戶家的位置,綜合地址信息,然后才可以反饋給住戶,而往往住戶家附近的車位都已經(jīng)被別的住戶所擁有,又或者是新規(guī)劃了一些車位,但是還沒有及時(shí)更新車位信息。
為了解決車位匹配的問題,我們可以通過住戶自行上網(wǎng)查找車位信息來實(shí)現(xiàn),本系統(tǒng)就是根據(jù)此需求進(jìn)行開發(fā)和設(shè)計(jì)的。開發(fā)一個(gè)滿足用戶及工作人員需求,為用戶提供便捷服務(wù)的安全穩(wěn)定的在線電影車位選擇系統(tǒng)、為工作人員提供一個(gè)快捷的車位管理信息系統(tǒng)。使用本系統(tǒng),可以有效地管理和統(tǒng)計(jì)車輛和車位的基本信息,也為住戶選擇車位提供了便利。
1.3系統(tǒng)開發(fā)技術(shù)的特色
(1)車位管理系統(tǒng)中的web后臺(tái)管理中的后端不再使用古老的jsp+javabean+servlet技術(shù),而是使用當(dāng)前主流的ssm框架,它減少java配置代碼,簡(jiǎn)化編程代碼,目前ssm框架也是很多企業(yè)選擇的框架之一。
(2)車位管理系統(tǒng)中的web后臺(tái)管理中的前端使用的是JavaScript框架,它配合ajax[8]和jquery[9]可以美化頁(yè)面設(shè)計(jì)。
(3)車位管理系統(tǒng)中數(shù)據(jù)庫(kù)用的mysql5.7,它執(zhí)行效率高。
1.4ssm框架介紹
SSM(Spring+SpringMVC+MyBatis)框架集由Spring、MyBatis兩個(gè)開源框架整合而成(SpringMVC是Spring中的部分內(nèi)容)。常作為數(shù)據(jù)源較簡(jiǎn)單的web項(xiàng)目的框架。
?Spring
Spring就像是整個(gè)項(xiàng)目中裝配bean的大工廠,在配置文件中可以指定使用特定的參數(shù)去調(diào)用實(shí)體類的構(gòu)造方法來實(shí)例化對(duì)象。也可以稱之為項(xiàng)目中的粘合劑。
Spring的核心思想是IoC(控制反轉(zhuǎn)),即不再需要程序員去顯式地`new`一個(gè)對(duì)象,而是讓Spring框架幫你來完成這一切。
?SpringMVC
SpringMVC在項(xiàng)目中攔截用戶請(qǐng)求,它的核心Servlet即DispatcherServlet承擔(dān)中介或是前臺(tái)這樣的職責(zé),將用戶請(qǐng)求通過HandlerMapping去匹配Controller,Controller就是具體對(duì)應(yīng)請(qǐng)求所執(zhí)行的操作。SpringMVC相當(dāng)于SSH框架中struts。
?mybatis
mybatis是對(duì)jdbc的封裝,它讓數(shù)據(jù)庫(kù)底層操作變的透明。mybatis的操作都是圍繞一個(gè)sqlSessionFactory實(shí)例展開的。mybatis通過配置文件關(guān)聯(lián)到各實(shí)體類的Mapper文件,Mapper文件中配置了每個(gè)類對(duì)數(shù)據(jù)庫(kù)所需進(jìn)行的sql語句映射。在每次與數(shù)據(jù)庫(kù)交互時(shí),通過sqlSessionFactory拿到一個(gè)sqlSession,再執(zhí)行sql命令。
頁(yè)面發(fā)送請(qǐng)求給控制器,控制器調(diào)用業(yè)務(wù)層處理邏輯,邏輯層向持久層發(fā)送請(qǐng)求,持久層與數(shù)據(jù)庫(kù)交互,后將結(jié)果返回給業(yè)務(wù)層,業(yè)務(wù)層將處理邏輯發(fā)送給控制器,控制器再調(diào)用視圖展現(xiàn)數(shù)據(jù)。
1.5論文結(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ā)的現(xiàn)狀和本文的理論意義與主要工作。
第二章:系統(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?車位管理系統(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ì)的介紹。
2.1 可行性分析
(1)技術(shù)可行性分析
車位管理系統(tǒng)存儲(chǔ)所使用的是mysql數(shù)據(jù)庫(kù)以及開發(fā)中所使用的是IDEA、Tomcat這些開發(fā)工具的使用,能夠給我們的編寫工作帶來許多的便利。系統(tǒng)使用SSM框架進(jìn)行開發(fā),使系統(tǒng)的可擴(kuò)展性和維護(hù)性更佳,減少java配置代碼,簡(jiǎn)化編程代碼,目前SSM框架也是很多企業(yè)選擇的框架之一。
(2)經(jīng)濟(jì)可行性分析
在開發(fā)車位管理系統(tǒng)中所使用的開發(fā)軟件像IDEA開發(fā)工具、Tomcat8.0服務(wù)器、MySQL5.7數(shù)據(jù)庫(kù)、Photoshop圖片處理軟件等,這些都是開源免費(fèi)的,這些環(huán)境在學(xué)校都進(jìn)行了系統(tǒng)的學(xué)習(xí),自己能夠獨(dú)立操作完成,不需要額外花費(fèi),而且系統(tǒng)的開發(fā)工具從網(wǎng)上都可以直接下載,因此在經(jīng)濟(jì)方面是可行的。
(3)操作可行性分析
此次項(xiàng)目設(shè)計(jì)的時(shí)候我參考了很多類似系統(tǒng)的成功案例,對(duì)它們的操作界面以及功能都進(jìn)行了系統(tǒng)的分析,將眾多案例結(jié)合在一起,突出以人為本簡(jiǎn)化操作,所以具有基本計(jì)算機(jī)知識(shí)的人都會(huì)操作本項(xiàng)目。因此操作可行性也沒有問題。
2.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)。
2.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ù)增加流程圖
2.2.2 數(shù)據(jù)修改流程
數(shù)據(jù)修改時(shí)的流程和上面介紹的數(shù)據(jù)增加時(shí)的流程差不多,如圖2-2所示。
?
圖2-2 ?數(shù)據(jù)修改流程圖
2.2.3 數(shù)據(jù)刪除流程
如果系統(tǒng)里面存在一些沒有用的數(shù)據(jù)的話,相關(guān)的管理人員還可以對(duì)這些數(shù)據(jù)進(jìn)行刪除,圖2-3就是數(shù)據(jù)刪除時(shí)的流程圖。
?
圖2-3 ?數(shù)據(jù)刪除流程圖
2.3?系統(tǒng)功能分析
2.3.1 功能性分析
按照車位管理系統(tǒng)的角色,我劃分為了車位用戶管理模塊和管理員管理模塊這兩大部分。
車位用戶管理模塊:
(1)用戶注冊(cè)登錄:用戶注冊(cè)為用戶并登錄?車位管理系統(tǒng);用戶對(duì)個(gè)人信息的增刪改查,比如個(gè)人資料,密碼修改。
(2)查看車位管理系統(tǒng)的首頁(yè)信息:車位管理系統(tǒng)的首頁(yè)信息包含了首頁(yè)、交流論壇、公告信息、新聞資訊、個(gè)人賬戶、個(gè)人收藏、車位信息等。
(3)公告信息:當(dāng)用戶點(diǎn)擊“公告信息”這一菜單按鈕,會(huì)顯示管理員在后臺(tái)發(fā)布的所有的公告信息,可以查看詳情;
(4)新聞資訊:當(dāng)用戶點(diǎn)擊“新聞資訊”這一菜單按鈕,會(huì)顯示管理員在后臺(tái)發(fā)布的所有的新聞資訊,可以查看詳情,進(jìn)行收藏、點(diǎn)贊、評(píng)論等;
(5)個(gè)人賬戶:在前臺(tái)點(diǎn)擊“個(gè)人賬戶”下面的“個(gè)人賬戶”可以對(duì)個(gè)人資料+密碼修改+自己收藏的信息進(jìn)行管控。
(6)模塊管理:用戶登錄到后臺(tái)后可以在“模塊管理”菜單下管理自己的入場(chǎng)信息、出場(chǎng)信息以及預(yù)約信息。
(7)個(gè)人中心:當(dāng)用戶點(diǎn)擊右上角“我的”這個(gè)按鈕,就會(huì)進(jìn)入到對(duì)應(yīng)的后臺(tái)進(jìn)行信息的管理了;
(8)車位信息:車位用戶可以查看車位信息,在查詢到自己想要了解的車位的時(shí)候,可以進(jìn)入查看詳細(xì)的介紹,點(diǎn)擊“停車預(yù)約”這一按鈕以后會(huì)跳轉(zhuǎn)到停車預(yù)約信息填寫的界面,根據(jù)提示填寫好停車預(yù)約的信息,點(diǎn)擊“提交”以后停車預(yù)約就完成了,在車位信息詳情這個(gè)界面,同時(shí)支持用戶對(duì)喜歡的車位進(jìn)行收藏、點(diǎn)贊的功能。
管理員管理模塊:
(1)登錄:管理員的賬號(hào)是在數(shù)據(jù)表表中直接設(shè)置生成的,不需要進(jìn)行注冊(cè);
(2)系統(tǒng)用戶管理:當(dāng)點(diǎn)擊“系統(tǒng)用戶管理”這一菜單的時(shí)候,會(huì)出現(xiàn)管理員+車位用戶兩個(gè)子菜單,可以對(duì)這兩個(gè)模塊進(jìn)行增刪改查操作;
(3)資源管理:當(dāng)點(diǎn)擊“資源管理”這一菜單的時(shí)候,會(huì)出現(xiàn)新聞列表+新聞分類這兩個(gè)子菜單,能夠?qū)τ脩粼谇芭_(tái)提交的新聞列表進(jìn)行管理;
(4)模塊管理:當(dāng)點(diǎn)擊“模塊”這一菜單的時(shí)候,會(huì)出現(xiàn)車位信息+入場(chǎng)信息+出場(chǎng)信息+預(yù)約信息這四個(gè)子菜單,對(duì)用戶提交的車位信息進(jìn)行管控,以及實(shí)現(xiàn)對(duì)用戶提交的預(yù)約信息進(jìn)行審核管理;
(5)公告信息管理:管理員可以對(duì)車位管理系統(tǒng)中首頁(yè)顯示的公告欄以及系統(tǒng)中的一些公告發(fā)布到系統(tǒng)當(dāng)中,讓用戶及時(shí)的查看到系統(tǒng)信息,進(jìn)行合理安排。
2.3.2 非功能性分析
車位管理系統(tǒng)的非功能性需求比如?車位管理系統(tǒng)的安全性怎么樣,可靠性怎么樣,性能怎么樣,可拓展性怎么樣等。具體可以表示在如下3-1表格中:
表3-1?車位管理系統(tǒng)非功能需求表
| 安全性 | 主要指?車位管理系統(tǒng)數(shù)據(jù)庫(kù)的安裝,數(shù)據(jù)庫(kù)的使用和密碼的設(shè)定必須合乎規(guī)范。 |
| 可靠性 | 可靠性是指車位管理系統(tǒng)能夠安裝用戶的指示進(jìn)行操作,經(jīng)過測(cè)試,可靠性90%以上。 |
| 性能 | 性能是影響車位管理系統(tǒng)占據(jù)市場(chǎng)的必要條件,所以性能最好要佳才好。 |
| 可擴(kuò)展性 | 比如數(shù)據(jù)庫(kù)預(yù)留多個(gè)屬性,比如接口的使用等確保了系統(tǒng)的非功能性需求。 |
| 易用性 | 用戶只要跟著車位管理系統(tǒng)的頁(yè)面展示內(nèi)容進(jìn)行操作,就可以了。 |
| 可維護(hù)性 | 車位管理系統(tǒng)開發(fā)的可維護(hù)性是非常重要的,經(jīng)過測(cè)試,可維護(hù)性沒有問題 |
2.4?系統(tǒng)用例分析
通過2.3功能的分析,得出了本車位管理系統(tǒng)的用例圖:
車位用戶角色用例如圖2-3所示。
?
圖2-3車位管理車位用戶角色用例圖
web后臺(tái)管理上的管理員是維護(hù)整個(gè)車位管理系統(tǒng)中所有數(shù)據(jù)信息的。管理員角色用例如圖2-4所示。
?
圖2-4車位管理系統(tǒng)管理員角色用例圖
2.5本章小結(jié)
本章主要通過對(duì)車位管理系統(tǒng)的可行性分析、流程分析、功能需求分析、系統(tǒng)用例分析,確定整個(gè)車位管理系統(tǒng)要實(shí)現(xiàn)的功能。同時(shí)也為車位管理系統(tǒng)的代碼實(shí)現(xiàn)和測(cè)試提供了標(biāo)準(zhǔn)。
3?車位管理系統(tǒng)總體設(shè)計(jì)
本章主要討論的內(nèi)容包括車位管理系統(tǒng)的功能模塊設(shè)計(jì)、數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)。
3.1 系統(tǒng)架構(gòu)設(shè)計(jì)
本車位管理系統(tǒng)從架構(gòu)上分為三層:表現(xiàn)層(UI)、業(yè)務(wù)邏輯層(BLL)以及數(shù)據(jù)層(DL)。
圖3-1車位管理系統(tǒng)架構(gòu)設(shè)計(jì)圖
?
表現(xiàn)層(UI):又稱UI層,主要完成本車位管理系統(tǒng)的UI交互功能,一個(gè)良好的UI可以打打提高用戶的用戶體驗(yàn),增強(qiáng)用戶使用本車位管理系統(tǒng)時(shí)的舒適度。UI的界面設(shè)計(jì)也要適應(yīng)不同版本的車位管理系統(tǒng)以及不同尺寸的分辨率,以做到良好的兼容性。UI交互功能要求合理,用戶進(jìn)行交互操作時(shí)必須要得到與之相符的交互結(jié)果,這就要求表現(xiàn)層要與業(yè)務(wù)邏輯層進(jìn)行良好的對(duì)接。
業(yè)務(wù)邏輯層(BLL):主要完成本車位管理系統(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):由于本車位管理系統(tǒng)的數(shù)據(jù)是放在服務(wù)端的mysql數(shù)據(jù)庫(kù)中,因此本屬于服務(wù)層的部分可以直接整合在業(yè)務(wù)邏輯層中,所以數(shù)據(jù)層中只有數(shù)據(jù)庫(kù),其主要完成本車位管理系統(tǒng)的數(shù)據(jù)存儲(chǔ)和管理功能。
3.2?系統(tǒng)功能模塊設(shè)計(jì)
3.2.1整體功能模塊設(shè)計(jì)
在上一章節(jié)中主要對(duì)系統(tǒng)的功能性需求和非功能性需求進(jìn)行分析,并且根據(jù)需求分析了本車位管理系統(tǒng)中的用例。那么接下來就要開始對(duì)本車位管理系統(tǒng)的架構(gòu)、主要功能和數(shù)據(jù)庫(kù)開始進(jìn)行設(shè)計(jì)。車位管理系統(tǒng)根據(jù)前面章節(jié)的需求分析得出,其總體設(shè)計(jì)模塊圖如圖3-2所示。
?
圖3-2車位管理系統(tǒng)功能模塊圖
3.2.2用戶模塊設(shè)計(jì)
(1)用戶模塊結(jié)構(gòu)圖
本網(wǎng)站的用戶包括管理員和系統(tǒng)用戶模塊。兩種用戶模塊的功能基本是相同的,系統(tǒng)用戶模塊比管理員多了一個(gè)注冊(cè)功能,所以以用戶模塊的結(jié)構(gòu)圖為例進(jìn)行分析,如下圖:
?
圖3-3用戶用戶模塊結(jié)構(gòu)圖
(2)各個(gè)結(jié)構(gòu)的具體業(yè)務(wù)邏輯
a.查詢用戶信息:設(shè)計(jì)最基礎(chǔ)的查詢功能,主要就是根據(jù)用戶id查詢用戶信息。該功能主要體現(xiàn)在管理員用戶信息查詢和用戶自己查詢信息的時(shí)候。
b.修改用戶信息:用戶可以根據(jù)情況,對(duì)自己的基本信息進(jìn)行修改,包括名字修改、密碼修改、頭像修改等操作。
c.增加用戶:用戶可以通過注冊(cè)來獲得賬號(hào)
d.刪除用戶信息:管理員沒有權(quán)利進(jìn)行刪除信息的刪除,最多把用戶加入到黑名單中,禁止用戶進(jìn)行登錄操作。
3.2.3評(píng)論管理模塊設(shè)計(jì)
(1)評(píng)論模塊結(jié)構(gòu)圖
?車位管理系統(tǒng)是一個(gè)交流性質(zhì)的公開網(wǎng)站,用戶和用戶之間可以對(duì)網(wǎng)站上的內(nèi)容,比如交流中心、資訊等進(jìn)行點(diǎn)評(píng),增加用戶之間的互動(dòng)性。但是同時(shí)也為了更好的規(guī)范評(píng)論的內(nèi)容,給予管理員刪除不合適的言論的功能,所以需要專門設(shè)計(jì)一個(gè)評(píng)論管理模塊,具體的結(jié)構(gòu)圖如下:
?
圖3-4評(píng)論模塊結(jié)構(gòu)圖
(2)各個(gè)結(jié)構(gòu)的具體業(yè)務(wù)邏輯
a.查詢?cè)u(píng)論:設(shè)計(jì)最基礎(chǔ)的查詢功能,主要就是根據(jù)用戶id查詢?cè)撚脩粝碌乃性u(píng)論信息。
b.發(fā)布評(píng)論:車位用戶用戶可以根據(jù)情況,發(fā)布自己評(píng)論信息到網(wǎng)站上。
c.刪除評(píng)論:管理員沒有權(quán)限修改用戶的評(píng)論信息,但是可以刪除用戶的整條評(píng)論。
3.2.4車位管理模塊設(shè)計(jì)
(1)車位管理模塊結(jié)構(gòu)圖
?車位管理系統(tǒng)是中需要存儲(chǔ)不少用戶車位信息,用戶可以查看車位信息,進(jìn)行查看車位預(yù)約,管理員可以添加,修改,刪除車位信息等,具體的結(jié)構(gòu)圖如下:
?
圖3-5車位模塊結(jié)構(gòu)圖
(2)各個(gè)結(jié)構(gòu)的具體業(yè)務(wù)邏輯
a.添加車位信息:管理員可以對(duì)車位信息進(jìn)行添加。
b.修改車位信息:管理員可以對(duì)車位信息進(jìn)行修改。
c.刪除車位信息:管理員可以對(duì)車位信息進(jìn)行刪除。
d.車位預(yù)約:用戶可以查看預(yù)約信息。
3.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ì)兩部分。
3.3.1 數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)
下面是整個(gè)車位管理系統(tǒng)中主要的數(shù)據(jù)庫(kù)表總E-R實(shí)體關(guān)系圖。
圖3-6?車位管理系統(tǒng)總E-R關(guān)系圖
?
下面根據(jù)?車位管理系統(tǒng)的數(shù)據(jù)庫(kù)總E-R關(guān)系圖可以得出?車位管理系統(tǒng)需要很多E-R圖,在此羅列出來一些主要的數(shù)據(jù)庫(kù)E-R模型圖。
?
圖3-7車位用戶E-R關(guān)系圖
?
圖3-8?入場(chǎng)信息E-R關(guān)系圖
?
圖3-9預(yù)約信息E-R關(guān)系圖
?
圖3-10評(píng)論信息E-R關(guān)系圖
3.3.2 數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)
通過上一小節(jié)中?車位管理系統(tǒng)中總E-R關(guān)系圖上得出一共需要?jiǎng)?chuàng)建很多個(gè)數(shù)據(jù)表。在此我主要羅列幾個(gè)主要的數(shù)據(jù)庫(kù)表結(jié)構(gòu)設(shè)計(jì)。
?parking_user表:
| 名稱 | 類型 | 長(zhǎng)度 | 不是null | 主鍵 | 注釋 |
| parking_user_id | int | 11 | 是 | 是 | 停車用戶ID |
| user_name | varchar | 64 | 否 | 否 | 用戶姓名 |
| gender | varchar | 64 | 否 | 否 | 性別 |
| license_plate_number | varchar | 64 | 否 | 否 | 車牌號(hào) |
| number_of_vehicles | varchar | 64 | 否 | 否 | 車輛數(shù) |
| examine_state | varchar | 16 | 是 | 否 | 審核狀態(tài) |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| user_id | int | 11 | 是 | 否 | 用戶ID |
| create_time | datetime | 0 | 是 | 否 | 創(chuàng)建時(shí)間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時(shí)間 |
| parking_space_information表: | |||||
| 名稱 | 類型 | 長(zhǎng)度 | 不是null | 主鍵 | 注釋 |
| parking_space_information_id | int | 11 | 是 | 是 | 車位信息ID |
| garage_no | varchar | 64 | 否 | 否 | 車庫(kù)編號(hào) |
| garage_name | varchar | 64 | 否 | 否 | 車庫(kù)名稱 |
| cover | varchar | 255 | 否 | 否 | 封面 |
| number_of_parking_spaces | int | 11 | 否 | 否 | 車位數(shù)量 |
| admission_price | int | 11 | 否 | 否 | 入場(chǎng)價(jià)格 |
| overtime_unit_price | int | 11 | 否 | 否 | 超時(shí)單價(jià) |
| garage_location | varchar | 64 | 否 | 否 | 車庫(kù)位置 |
| charge_description | text | 0 | 否 | 否 | 收費(fèi)說明 |
| garage_details | longtext | 0 | 否 | 否 | 車庫(kù)詳情 |
| praise_len | int | 11 | 是 | 否 | 點(diǎn)贊數(shù) |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| create_time | datetime | 0 | 是 | 否 | 創(chuàng)建時(shí)間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時(shí)間 |
| exit_information表: | |||||
| 名稱 | 類型 | 長(zhǎng)度 | 不是null | 主鍵 | 注釋 |
| exit_information_id | int | 11 | 是 | 是 | 出場(chǎng)信息ID |
| appointment_number | varchar | 64 | 是 | 否 | 預(yù)約編號(hào) |
| garage_no | varchar | 64 | 否 | 否 | 車庫(kù)編號(hào) |
| garage_name | varchar | 64 | 否 | 否 | 車庫(kù)名稱 |
| parking_user | int | 11 | 否 | 否 | 停車用戶 |
| license_plate_number | varchar | 64 | 否 | 否 | 車牌號(hào) |
| number_of_vehicles | varchar | 64 | 否 | 否 | 車輛數(shù) |
| garage_location | varchar | 64 | 否 | 否 | 車庫(kù)位置 |
| admission_price | int | 11 | 否 | 否 | 入場(chǎng)價(jià)格 |
| overtime_unit_price | int | 11 | 否 | 否 | 超時(shí)單價(jià) |
| timeout_part | int | 11 | 否 | 否 | 超時(shí)部分 |
| parking_expenses | varchar | 64 | 否 | 否 | 停車費(fèi)用 |
| payment_date | date | 0 | 否 | 否 | 繳費(fèi)日期 |
| pay_state | varchar | 16 | 是 | 否 | 支付狀態(tài) |
| pay_type | varchar | 16 | 否 | 否 | 支付類型 |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| create_time | datetime | 0 | 是 | 否 | 創(chuàng)建時(shí)間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時(shí)間 |
| appointment_information表: | |||||
| 名稱 | 類型 | 長(zhǎng)度 | 不是null | 主鍵 | 注釋 |
| appointment_information_id | int | 11 | 是 | 是 | 預(yù)約信息ID |
| appointment_number | varchar | 64 | 否 | 否 | 預(yù)約編號(hào) |
| garage_no | varchar | 64 | 否 | 否 | 車庫(kù)編號(hào) |
| garage_name | varchar | 64 | 否 | 否 | 車庫(kù)名稱 |
| parking_user | int | 11 | 否 | 否 | 停車用戶 |
| license_plate_number | varchar | 64 | 否 | 否 | 車牌號(hào) |
| number_of_vehicles | varchar | 64 | 否 | 否 | 車輛數(shù) |
| garage_location | varchar | 64 | 否 | 否 | 車庫(kù)位置 |
| admission_price | int | 11 | 否 | 否 | 入場(chǎng)價(jià)格 |
| overtime_unit_price | int | 11 | 否 | 否 | 超時(shí)單價(jià) |
| appointment_date | date | 0 | 否 | 否 | 預(yù)約日期 |
| remarks | varchar | 64 | 否 | 否 | 備注信息 |
| examine_state | varchar | 16 | 是 | 否 | 審核狀態(tài) |
| examine_reply | varchar | 16 | 否 | 否 | 審核回復(fù) |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| create_time | datetime | 0 | 是 | 否 | 創(chuàng)建時(shí)間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時(shí)間 |
| admission_information表: | |||||
| 名稱 | 類型 | 長(zhǎng)度 | 不是null | 主鍵 | 注釋 |
| admission_information_id | int | 11 | 是 | 是 | 入場(chǎng)信息ID |
| appointment_number | varchar | 64 | 是 | 否 | 預(yù)約編號(hào) |
| garage_no | varchar | 64 | 否 | 否 | 車庫(kù)編號(hào) |
| garage_name | varchar | 64 | 否 | 否 | 車庫(kù)名稱 |
| parking_user | int | 11 | 否 | 否 | 停車用戶 |
| license_plate_number | varchar | 64 | 否 | 否 | 車牌號(hào) |
| number_of_vehicles | varchar | 64 | 否 | 否 | 車輛數(shù) |
| garage_location | varchar | 64 | 否 | 否 | 車庫(kù)位置 |
| admission_price | int | 11 | 否 | 否 | 入場(chǎng)價(jià)格 |
| overtime_unit_price | int | 11 | 否 | 否 | 超時(shí)單價(jià) |
| examine_state | varchar | 16 | 是 | 否 | 審核狀態(tài) |
| examine_reply | varchar | 16 | 否 | 否 | 審核回復(fù) |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| create_time | datetime | 0 | 是 | 否 | 創(chuàng)建時(shí)間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時(shí)間 |
| comment表: | |||||
| 名稱 | 類型 | 長(zhǎng)度 | 不是null | 主鍵 | 注釋 |
| comment_id | int | 11 | 是 | 是 | 評(píng)論ID |
| user_id | int | 11 | 是 | 否 | 評(píng)論人ID |
| reply_to_id | int | 11 | 是 | 否 | 回復(fù)評(píng)論ID |
| content | longtext | 0 | 否 | 否 | 內(nèi)容 |
| nickname | varchar | 255 | 否 | 否 | 昵稱 |
| avatar | varchar | 255 | 否 | 否 | 頭像地址 |
| create_time | timestamp | 0 | 是 | 否 | 創(chuàng)建時(shí)間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時(shí)間 |
| source_table | varchar | 255 | 否 | 否 | 來源表 |
| source_field | varchar | 255 | 否 | 否 | 來源字段 |
| source_id | int | 10 | 是 | 否 | 來源ID |
| slides表: | |||||
| 名稱 | 類型 | 長(zhǎng)度 | 不是null | 主鍵 | 注釋 |
| slides_id | int | 10 | 是 | 是 | 輪播圖ID |
| title | varchar | 64 | 否 | 否 | 標(biāo)題 |
| content | varchar | 255 | 否 | 否 | 內(nèi)容 |
| url | varchar | 255 | 否 | 否 | 鏈接 |
| img | varchar | 255 | 否 | 否 | 輪播圖 |
| hits | int | 10 | 是 | 否 | 點(diǎn)擊量 |
| create_time | timestamp | 0 | 是 | 否 | 創(chuàng)建時(shí)間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時(shí)間 |
| notice表: | |||||
| 名稱 | 類型 | 長(zhǎng)度 | 不是null | 主鍵 | 注釋 |
| notice_id | mediumint | 8 | 是 | 是 | 公告id |
| title | varchar | 125 | 是 | 否 | 標(biāo)題 |
| content | longtext | 0 | 否 | 否 | 正文 |
| create_time | timestamp | 0 | 是 | 否 | 創(chuàng)建時(shí)間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時(shí)間 |
3.4本章小結(jié)
整個(gè)車位管理系統(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ì)。
4?車位管理系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)
?車位管理系統(tǒng)的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)主要是根據(jù)前面的車位管理系統(tǒng)的需求分析和??車位管理系統(tǒng)的總體設(shè)計(jì)來設(shè)計(jì)頁(yè)面并實(shí)現(xiàn)業(yè)務(wù)邏輯。主要從車位管理系統(tǒng)界面實(shí)現(xiàn)、業(yè)務(wù)邏輯實(shí)現(xiàn)這兩部分進(jìn)行介紹。
4.1用戶功能模塊
4.1.1 前臺(tái)首頁(yè)界面
當(dāng)進(jìn)入車位管理系統(tǒng)的時(shí)候,首先映入眼簾的是系統(tǒng)的導(dǎo)航欄,下面是輪播圖以及系統(tǒng)內(nèi)容,其主界面展示如下圖4-1所示。
?
圖4-1?前臺(tái)首頁(yè)界面圖
4.1.2用戶登錄界面
?車位管理系統(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)到??車位管理系統(tǒng)的首頁(yè)中;否則將會(huì)提示相應(yīng)錯(cuò)誤信息,用戶登錄界面如下圖4-2所示。
?
圖4-2用戶登錄界面圖
登錄關(guān)鍵代碼如下所示。
?/**
?????* 登錄
?????* @param data
?????* @param httpServletRequest
?????* @return
?????*/
????@PostMapping("login")
????public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {
????????log.info("[執(zhí)行登錄接口]");
????????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, "賬號(hào)或密碼不能為空");
????????}
????????if (resultList == null || password == null) {
????????????return error(30000, "賬號(hào)或密碼不能為空");
????????}
????????//判斷是否有這個(gè)用戶
????????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);
????????//查詢用戶審核狀態(tài)
????????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,"該用戶審核未通過");
????????????}
????????}
????????//查詢用戶狀態(tài)
????????if (byUsername.getState()!=1){
????????????return error(30000,"用戶非可用狀態(tài),不能登錄");
????????}
????????String md5password = service.encryption(password);
????????if (byUsername.getPassword().equals(md5password)) {
????????????// 存儲(chǔ)Token到數(shù)據(jù)庫(kù)
????????????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, "賬號(hào)或密碼不正確");
????????}
}
????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;
}
4.1.3用戶注冊(cè)界面
不是車位管理系統(tǒng)中正式用戶的是可以在線進(jìn)行注冊(cè)的,如果你沒有本?車位管理系統(tǒng)的賬號(hào)的話,添加“注冊(cè)”,當(dāng)填寫上自己的賬號(hào)+密碼+確認(rèn)密碼+昵稱+郵箱+手機(jī)號(hào)等后再點(diǎn)擊“注冊(cè)”按鈕后將會(huì)先驗(yàn)證輸入的有沒有空數(shù)據(jù),再次驗(yàn)證密碼和確認(rèn)密碼是否是一樣的,最后驗(yàn)證輸入的賬戶名和數(shù)據(jù)庫(kù)表中已經(jīng)注冊(cè)的賬戶名是否重復(fù),只有都驗(yàn)證沒問題后即可用戶注冊(cè)成功。其用用戶注冊(cè)界面展示如下圖4-3所示。
?
圖4-3用戶注冊(cè)界面圖
注冊(cè)關(guān)鍵代碼如下所示。
/**
?????* 注冊(cè)
?????* @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);
}
4.1.4新聞資訊界面
當(dāng)訪客點(diǎn)擊車位管理系統(tǒng)中導(dǎo)航欄上的“新聞資訊”后將會(huì)進(jìn)入到該“新聞資訊”列表的界面,然后選擇想要看的新聞資訊,點(diǎn)擊進(jìn)入到詳細(xì)界面,在詳細(xì)界面可以收藏+贊+評(píng)論等操作,新聞資訊界面如下圖4-4所示。
?
圖4-4新聞資訊界面圖
4.1.5?密碼修改界面
用戶使用該車位管理系統(tǒng)注冊(cè)完成后,用戶對(duì)登錄密碼有修改需求時(shí),系統(tǒng)也可以提供用戶修改密碼權(quán)限。系統(tǒng)中所有的操作者能夠變更自己的密碼信息,執(zhí)行該功能首先必須要登入系統(tǒng),然后選擇密碼變更選項(xiàng)以后在給定的文本框中填寫初始密碼和新密碼來完成修改密碼的操作。在填寫的時(shí)候,假如兩次密碼填寫存在差異,那么此次密碼變更操作失敗,下面的圖片展示的就是該板塊對(duì)應(yīng)的工作面。密碼修改界面如下圖4-5所示。
?
圖4-5密碼修改界面圖
4.1.6公告信息界面
用戶在點(diǎn)擊導(dǎo)航欄上面的公告信息后,就可以搜索查看網(wǎng)站公告信息,用戶根據(jù)自己的喜好可以進(jìn)行交流,系統(tǒng)公告界面如下圖4-6所示。
?
圖4-6公告信息界面圖
4.1.7車位詳情界面
當(dāng)訪客點(diǎn)擊了任意車位信息后將會(huì)進(jìn)入該車位的詳情界面,可以了解到該車位信息的車庫(kù)編號(hào)、車位數(shù)量、超時(shí)單價(jià)、車庫(kù)名稱、入場(chǎng)價(jià)格、車庫(kù)位置等,同時(shí)可以對(duì)該車位信息進(jìn)行停車預(yù)約+收藏+點(diǎn)贊+評(píng)論,車位詳情展示頁(yè)面如圖4-7所示。
?
圖4-7車位詳情界面圖
4.2管理員功能模塊
4.2.1登錄界面
管理員在登錄界面輸入賬號(hào)+密碼,點(diǎn)擊“登錄”按鈕,系統(tǒng)在用戶數(shù)據(jù)庫(kù)表中會(huì)對(duì)管理員,系統(tǒng)用戶的賬號(hào)進(jìn)行匹配,賬號(hào)+密碼正確的話,就會(huì)登錄到系統(tǒng)中各個(gè)用戶的主管理界面,否則提示對(duì)應(yīng)的信息,返回到登錄的界面,如果管理人員忘記密碼的話,點(diǎn)擊“忘記密碼”根據(jù)提示可以找回密碼,然后再進(jìn)行登錄其主界面展示如下圖4-8所示。
?
圖4-8登錄界面圖
4.2.2?系統(tǒng)用戶管理界面
系統(tǒng)用戶管理模塊包含了管理員、車位用戶兩個(gè)部分,管理員在后臺(tái)都可以查看到用戶的信息,但是只有管理員可以對(duì)用戶進(jìn)行增刪改查操作;管理員可以對(duì)用戶進(jìn)行增刪改查。這里以車位用戶為例,界面如下圖4-9所示。
?
圖4-9系統(tǒng)用戶管理界面圖
4.2.3資源管理界面
?車位管理系統(tǒng)中的管理人員在“資源管理”這一菜單中是可以對(duì)車位管理系統(tǒng)內(nèi)的新聞列表、新聞分類列表進(jìn)行維護(hù)和管理的,界面如下圖4-10所示。
?
圖4-10資源管理界面圖
資源管理關(guān)鍵代碼如下所示。
?@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);
????????}
}
4.2.4?模塊管理界面
車位管理系統(tǒng)中的管理人員在“模塊管理”這一菜單下是可以對(duì)車位管理系統(tǒng)內(nèi)的車位信息、入場(chǎng)信息、出場(chǎng)信息、預(yù)約信息進(jìn)行管控的,其管理界面如下圖4-11所示。
?
圖4-11模塊管理界面圖
5系統(tǒng)測(cè)試
5.1系統(tǒng)測(cè)試的目的
系統(tǒng)開發(fā)到了最后一個(gè)階段那就是系統(tǒng)測(cè)試,系統(tǒng)測(cè)試對(duì)軟件的開發(fā)其實(shí)是非常有必要的。因?yàn)闆]什么系統(tǒng)一經(jīng)開發(fā)出來就可能會(huì)盡善盡美,再厲害的系統(tǒng)開發(fā)工程師也會(huì)在系統(tǒng)開發(fā)的時(shí)候出現(xiàn)紕漏,系統(tǒng)測(cè)試能夠較好的改正一些bug,為后期系統(tǒng)的維護(hù)性提供很好的支持。通過系統(tǒng)測(cè)試,開發(fā)人員也可以建立自己對(duì)系統(tǒng)的信心,為后期的系統(tǒng)版本的跟新提供支持。
5.2?系統(tǒng)測(cè)試用例
系統(tǒng)測(cè)試包括:用戶登錄功能測(cè)試、車位展示功能測(cè)試、車位添加、車位搜索、密碼修改功能測(cè)試,如表5-1、5-2、5-3、5-4、5-5所示:
用戶登錄功能測(cè)試:
表5-1?用戶登錄功能測(cè)試表
| 用例名稱 | 用戶登錄系統(tǒng) |
| 目的 | 測(cè)試用戶通過正確的用戶名和密碼可否登錄功能 |
| 前提 | 未登錄的情況下 |
| 測(cè)試流程 | 1) 進(jìn)入登錄頁(yè)面 2) 輸入正確的用戶名和密碼 |
| 預(yù)期結(jié)果 | 用戶名和密碼正確的時(shí)候,跳轉(zhuǎn)到登錄成功界面,反之則顯示錯(cuò)誤信息,提示重新輸入 |
| 實(shí)際結(jié)果 | 實(shí)際結(jié)果與預(yù)期結(jié)果一致 |
車位查看功能測(cè)試:
表5-2?車位查看功能測(cè)試表
| 用例名稱 | 車位查看 |
| 目的 | 測(cè)試車位查看功能 |
| 前提 | 用戶登錄 |
| 測(cè)試流程 | 點(diǎn)擊車位列表 |
| 預(yù)期結(jié)果 | 可以查看到所有車位信息 |
| 實(shí)際結(jié)果 | 實(shí)際結(jié)果與預(yù)期結(jié)果一致 |
管理員添加車位界面測(cè)試:
表5-3?管理員添加車位界面測(cè)試表
| 用例名稱 | 車位發(fā)布測(cè)試用例 |
| 目的 | 測(cè)試車位發(fā)布功能 |
| 前提 | 用戶正常登錄情況下 |
| 測(cè)試流程 | 1)點(diǎn)擊車位信息管理就,然后點(diǎn)擊添加后并填寫信息。 2)點(diǎn)擊進(jìn)行提交。 |
| 預(yù)期結(jié)果 | 提交以后,頁(yè)面首頁(yè)會(huì)顯示新的車位信息? |
| 實(shí)際結(jié)果 | 實(shí)際結(jié)果與預(yù)期結(jié)果一致 |
車位搜索功能測(cè)試:
表5-4車位搜索功能測(cè)試表
| 用例名稱 | 車位搜索測(cè)試 |
| 目的 | 測(cè)試車位搜索功能 |
| 前提 | 無 |
| 測(cè)試流程 | 1)在搜索框填入搜索關(guān)鍵字。 2)點(diǎn)擊搜索按鈕。 |
| 預(yù)期結(jié)果 | 頁(yè)面顯示包含有搜索關(guān)鍵字的車位 |
| 實(shí)際結(jié)果 | 實(shí)際結(jié)果與預(yù)期結(jié)果一致 |
密碼修改功能測(cè)試:
表5-5 密碼修改功能測(cè)試表
| 用例名稱 | 密碼修改測(cè)試用例 |
| 目的 | 測(cè)試管理員密碼修改功能 |
| 前提 | 管理員用戶正常登錄情況下 |
| 測(cè)試流程 | 1)管理員密碼修改并完成填寫。 2)點(diǎn)擊進(jìn)行提交。 |
| 預(yù)期結(jié)果 | 使用新的密碼可以登錄 |
| 實(shí)際結(jié)果 | 實(shí)際結(jié)果與預(yù)期結(jié)果一致 |
5.3?系統(tǒng)測(cè)試結(jié)果
通過編寫車位管理系統(tǒng)的測(cè)試用例,已經(jīng)檢測(cè)完畢用戶登錄模塊、車位查看模塊、車位添加模塊、車位搜索模塊、密碼修改功能測(cè)試,通過這5大模塊為車位管理系統(tǒng)的后期推廣運(yùn)營(yíng)提供了強(qiáng)力的技術(shù)支撐。
結(jié)論
至此,車位管理系統(tǒng)已經(jīng)結(jié)束,在開發(fā)前做了許多的準(zhǔn)備,在本系統(tǒng)的設(shè)計(jì)和開發(fā)過程中閱覽和學(xué)習(xí)了許多文獻(xiàn)資料,從中我也收獲了很多寶貴的方法和設(shè)計(jì)思路,對(duì)系統(tǒng)的開發(fā)也起到了很重要的作用,系統(tǒng)的開發(fā)技術(shù)選用的都是自己比較熟悉的,比如Web、ssm技術(shù)、MYSQL,這些技術(shù)都是在以前的學(xué)習(xí)中學(xué)到了,其中許多的設(shè)計(jì)思路和方法都是在以前不斷地學(xué)習(xí)中摸索出來的經(jīng)驗(yàn),其實(shí)對(duì)于我們來說工作量還是比較大的,但是正是由于之前的積累與準(zhǔn)備,才能順利的完成這個(gè)項(xiàng)目,由此看來,積累經(jīng)驗(yàn)跟做好準(zhǔn)備是十分重要的事情。
當(dāng)然在該系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)的過程中也離不開老師以及同學(xué)們的幫助,正是因?yàn)樗麄兊闹笇?dǎo)與幫助,我才能夠成功的在預(yù)期內(nèi)完成了這個(gè)系統(tǒng)。同時(shí)在這個(gè)過程當(dāng)中我也收獲了很多東西,此系統(tǒng)也有需要改進(jìn)的地方,但是由于專業(yè)知識(shí)的淺薄,并不能做到十分完美,希望以后有機(jī)會(huì)可以讓其真正的投入到使用之中。
參考文獻(xiàn)
[1]張志強(qiáng),潘立巍,王新浩,白明輝,袁紹軍,劉嗣萃,陳廣宇,王洪亮,李曉東,賀曉紅,劉震宇,王樹軍. 一種車位管理方法及系統(tǒng)[P]. 河北省:CN106355940B,2023-02-03.
[2]沈志元,張文健.基于Java技術(shù)的醫(yī)院管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2022,18(32):38-40+54.DOI:10.14004/j.cnki.ckt.2022.1994.
[3]王棋.基于SSM框架的網(wǎng)上攝影系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電子質(zhì)量,2022(10):89-93.
[4]謝霜.基于Java技術(shù)的網(wǎng)絡(luò)管理體系結(jié)構(gòu)的應(yīng)用[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2022(10):14-15.
[5]蘇婉怡,揣小龍,趙國(guó)松,王煜堯.基于Java技術(shù)的考試系統(tǒng)關(guān)鍵點(diǎn)研究[J].無線互聯(lián)科技,2022,19(18):58-60.
[6]楊玉蓮.基于SSM框架的智能煤質(zhì)化驗(yàn)室綜合管理系統(tǒng)[J].煤礦現(xiàn)代化,2022,31(05):100-104+109.DOI:10.13606/j.cnki.37-1205/td.2022.05.005.
[7]唐小玲.基于SSM框架的資質(zhì)管理系統(tǒng)開發(fā)解析[J].科學(xué)技術(shù)創(chuàng)新,2022(26):80-83.
[8]郭春霞.基于Java EE技術(shù)的軟件框架設(shè)計(jì)[J].信息記錄材料,2022,23(09):99-101.DOI:10.16009/j.cnki.cn13-1295/tq.2022.09.027.
[9]楊迎.Java技術(shù)在嵌入式系統(tǒng)中的作用探討[J].無線互聯(lián)科技,2022,19(14):96-98.
[10]李曉宇,孟令軍,王佳軍,薛志凌.基于ZigBee的立體停車場(chǎng)車位管理系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)與數(shù)字工程,2022,50(07):1624-1629.
[11]徐博,王冠.基于單片機(jī)的車位管理系統(tǒng)設(shè)計(jì)[J].無線互聯(lián)科技,2022,19(08):53-54.
[12]孟凡真. 機(jī)械式立體停車庫(kù)車位管理系統(tǒng)構(gòu)建與應(yīng)用研究[D].重慶交通大學(xué),2022.DOI:10.27671/d.cnki.gcjtc.2022.001029.
[13]馮建,李嘉明,廖明華,宋春華.基于圖像識(shí)別技術(shù)的車位管理系統(tǒng)研究與設(shè)計(jì)[J].電腦知識(shí)與技術(shù),2021,17(24):116-119.DOI:10.14004/j.cnki.ckt.2021.2305.
[14]何信劍.路邊車位管理系統(tǒng)中地磁定位技術(shù)運(yùn)用分析[J].電子世界,2021(11):5-6.DOI:10.19353/j.cnki.dzsj.2021.11.002.
[15]張志奇,鮑潤(rùn)哲,張曉航.智能云車位管理系統(tǒng)設(shè)計(jì)[J].科學(xué)技術(shù)創(chuàng)新,2021(01):103-104.
[16]Imbugwa Gerald,Manuel Mazara,Distefano Salvatore. Developing a Mobile Application Using Open Source Parking Management System on Etherium Smart Contracts.[J]. Journal of Physics: Conference Series,2020,1694(1).
[17]. Sensor Research; Investigators at Tamkang University Report Findings in Sensor Research (A Low-cost On-street Parking Management System Based On Bluetooth Beacons Dagger)[J]. Telecommunications Weekly,2020.
[18]. Sensor Research; Reports from Tamkang University Advance Knowledge in Sensor Research (A Low-Cost on-Street Parking Management System Based on Bluetooth Beacons)[J]. Journal of Technology,2020.
[19]李容容, 基于車位鎖的智慧小區(qū)車位共享管理系統(tǒng)V1.0. 湖北省,湖北創(chuàng)爾雅科技有限公司,2019-06-28.
[20]Beiping Yang,Hongming Shen,Lele Han,Yongjie Yang. A Parking Management System Based on Embedded System for Stereo Garage[P]. Proceedings of the 2015 International Conference on Intelligent Systems Research and Mechatronics Engineering,2015.
致 ?謝
逝者如斯夫,不舍晝夜。轉(zhuǎn)眼間,大用戶用戶活便已經(jīng)接近尾聲,人面對(duì)著離別與結(jié)束,總是充滿著不舍與茫然,我亦如此,仍記得那年秋天,我迫不及待的提前一天到了學(xué)校,面對(duì)學(xué)校巍峨的大門,我心里充滿了期待:這里,就是我新生活的起點(diǎn)嗎?那天,陽光明媚,學(xué)校的歡迎儀式很熱烈,我面對(duì)著一個(gè)個(gè)對(duì)著我微笑的同學(xué),仿佛一縷縷陽光透過胸口照進(jìn)了我心里,同時(shí),在那天我認(rèn)識(shí)可愛的室友,我們攜手共同度過了這難忘的兩年。如今,我望著這篇論文的致謝,不禁又要問自己:現(xiàn)在,我們就要說再見了嗎?
感慨莫名,不知所言。遙想當(dāng)初剛來學(xué)校的時(shí)候,心里總是想著工科學(xué)校會(huì)過于板正,會(huì)缺乏一些柔情,當(dāng)時(shí)心里甚至有一點(diǎn)點(diǎn)排斥,但是隨著我對(duì)學(xué)校的慢慢認(rèn)識(shí)與了解,我才認(rèn)識(shí)到了她的美麗,她的柔情,并且慢慢的喜歡上了這個(gè)校園,但是時(shí)間太快了,快到我還沒有好好體會(huì)她的美麗便要離開了,但是她帶給我的回憶,永遠(yuǎn)不會(huì)離開我,也許真正離開那天我的眼里會(huì)滿含淚水,我不是因?yàn)殡y過,我只是想將她的樣子映在我的淚水里,刻在我的心里。最后,感謝我的老師們,是你們教授了我們知識(shí)與做人的道理;感謝我的室友們,是你們陪伴了我如此之久;感謝每位關(guān)心與支持我的人。
少年,追風(fēng)趕月莫停留,平荒盡處是春山。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 免費(fèi)領(lǐng)取源碼,請(qǐng)點(diǎn)贊關(guān)注私信博主
總結(jié)
以上是生活随笔為你收集整理的SSM车位管理系统 计算机毕设源码65739的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jquery esay ui学习
- 下一篇: 【技术导向】不同研发方向学习路线及系统流