趙越超 胡杰
(山西農(nóng)業(yè)大學(xué)軟件學(xué)院 山西省太谷縣 030801)
隨著社會的迅速發(fā)展,汽車已經(jīng)成為人們外出旅行必不可少的一種交通工具。但是如何解決車輛的合理停放,解決道路的堵塞等,成為了目前最大的問題。如果采用傳統(tǒng)的人工管理模式來解決這些問題,反而會造成延誤辦理時間以及人力資源浪費,特別是在車輛流量高峰期的時候,這些問題會尤其顯著。而且,如今停車場大部分都是新型的地下停車場,其占用的場地不僅龐大而且復(fù)雜,如果沒有一個顯眼的參照物,用戶在取車的時候,往往需要花費大量的時間用來找車,極大程度浪費了客戶的時間。因此,基于以上問題,開發(fā)一個停車管理系統(tǒng)就顯得很有必要,既可以節(jié)省資源,又可以實現(xiàn)信息的有效存儲、查詢和更新,提高工作效率,提升服務(wù)質(zhì)量,還能在一定程度上緩解交通壓力。
本系統(tǒng)整體上使用SSM 框架且采用MVC 開發(fā)模式建立的基于JavaEE 的管理系統(tǒng)。SSM 框架是三種技術(shù)的合稱,分別是指Spring,SpringMVC 和Mybatis,其Spring 在此系統(tǒng)中用來解決Java 后端獲取前端數(shù)據(jù)問題,Mybatis 用來解決Java 后端和數(shù)據(jù)庫之間的數(shù)據(jù)交互,最后前端界面使用HTML+CSS+Bootstrap 進行加工修飾。數(shù)據(jù)庫使用安全系數(shù)較高的Mysql 數(shù)據(jù)庫,開發(fā)工具使用Eclipses。
本系統(tǒng)對于使用設(shè)備的配備和要求不高,一般的臺式機就可以實現(xiàn)正常的運行使用,只要滿足程序及系統(tǒng)運行的需求即可,所需費用較少。最后通過計算得知收益大于支出,所以該系統(tǒng)經(jīng)濟上是可行的。
根據(jù)使用者需求類型的不同,此系統(tǒng)大致將使用者分為了兩種類型,一直是需要進行停車的普通用戶簡稱為用戶,一種是對停車進行管理的工作人員簡稱為管理員?,F(xiàn)將他們的需求概括如下:
用戶能夠在網(wǎng)上時刻查詢到目標(biāo)停車場是否擁有空的停車位,如果當(dāng)前沒有空的停車位,用戶可以查詢到具體等待的時間。如果存在空的停車位,用戶可以進行線上預(yù)約。用戶能夠動態(tài)查看自己停車的位置。
管理員可以在線上對停車信息進行記錄,并且當(dāng)停車時間達到規(guī)定時間后系統(tǒng)會自動扣除相應(yīng)的費用。管理員不僅需要對停車位置擁有最高操作權(quán)限,還需要能夠?qū)τ脩粜畔⑦M行操作的最高權(quán)限。
根據(jù)停車場管理員和停車用戶的實際需求出發(fā),本系統(tǒng)將用戶分為了管理員(停車場管理員)和普通用戶(停車用戶)兩類,為了簡化管理,系統(tǒng)也分為兩類來進行對應(yīng),從而實現(xiàn)用戶擁有不同的功能權(quán)限。
在管理員子系統(tǒng)中,停車場管理員擁有此系統(tǒng)的最高的權(quán)限且可使用系統(tǒng)中全部的功能。管理員子系統(tǒng)是由管理員信息管理、用戶信息管理、計費管理、車位管理、停車管理和系統(tǒng)功能六部分組成。
用戶子系統(tǒng)由用戶信息模塊、車位查詢模塊、停車管理模塊、計費管理模塊和系統(tǒng)功能模塊五部分組成。用戶只有在用戶信息模塊中具有修改的權(quán)限,其他模塊中僅僅具有查詢的權(quán)限,不具備其他權(quán)限。用戶可完成對停車歷史記錄、用戶信息、計費信息、車輛在場信息、當(dāng)前車輛位置和當(dāng)前可用車位信息的查詢;對信息和密碼的修;對用戶的注銷操作。
表1
表2
表3
根據(jù)停車場管理員和停車用戶的實際需求,設(shè)計了用戶信息表,停車收費信息表、停車表等,表1、表2 和表3 為部分?jǐn)?shù)據(jù)庫表。
下述為用戶子系統(tǒng)功能模塊的部分實現(xiàn):
6.1.1 登錄/注銷模塊
在這個模塊中主要完成用戶的登錄和注銷功能。用戶通過微信或者瀏覽器輸入相應(yīng)的地址可進入系統(tǒng)登錄界面中,如果用戶是首次登錄,則需要進行注冊。考慮到用戶具有流動特點,不會經(jīng)常性使用系統(tǒng),所以用戶只需填寫一些簡單的信息便可完成注冊操作。用戶只有通過使用正確的賬號和密碼,當(dāng)前頁面才會重定向跳轉(zhuǎn)到用戶首頁面中,在這個頁面主要包括用戶基本信息、車位查詢、停車管理、計費管理和系統(tǒng)功能五大功能模塊。并且在前四個模塊中都配備有“數(shù)據(jù)導(dǎo)出”和“信息搜索”功能,從而來滿足用戶的需求。當(dāng)用戶需要退出的時候,先點擊頁面右上角的用戶名出現(xiàn)下拉列表,然后點擊“注銷登錄”選項來實現(xiàn)退出功能。
忠誠顧客是指對企業(yè)有充足的信任和滿意,并長時間關(guān)注且持續(xù)、重復(fù)地消費同一企業(yè)產(chǎn)品或服務(wù)的顧客。忠實顧客的購買行為具有4個特征分別為指向性、重復(fù)性、相關(guān)性、推薦性等[1]。
6.1.2 用戶信息模塊
在這個模塊中,用戶擁有查詢信息和修改信息的權(quán)限。用戶可通過點擊功能欄中的“用戶信息”來查看到自己的基本信息和賬號余額(默認(rèn)為0 元)。當(dāng)用戶需要進行對自己的信息進行更改時,只需點擊“編輯”就可實現(xiàn)。其中賬號余額信息不會在用戶更改頁面中出現(xiàn),對其用戶也沒有修改的功能權(quán)限,賬戶余額只有當(dāng)用戶充值成功且停車管理員確定后才會發(fā)生更改。
6.1.3 車位查詢模塊
這個模塊是用戶最為關(guān)注的模塊,因為此模塊實現(xiàn)了用戶最重要的需求。用戶通過點擊功能欄中“車位查詢”就可以查看到目標(biāo)停車場是否有空車位。查詢頁面是按照上中下三部分進行布局,頁面最上端顯示空車位的信息,目的是讓用戶在第一時間看到空車位的信息;頁面中部按照車位使用時間進行排序,并且在每行末端顯示車位使用時間;頁面末端提供空車位預(yù)約功能,只有當(dāng)空車位存在時,預(yù)約功能才會顯示在用戶的界面中。這個的實現(xiàn)方法是在頁面中使用if 語句通過判斷空車位的數(shù)目是否大于零來實現(xiàn)的。只有當(dāng)空車位的數(shù)目大于零時預(yù)約功能才會顯示,其他情況不顯示。
下述為管理員子系統(tǒng)功能模塊的部分實現(xiàn):
6.2.1 登錄/注銷模塊
管理員成功登錄系統(tǒng)后,會進入到主要包括管理員信息管理、用戶信息管理、計費管理、車位管理、停車管理和系統(tǒng)功能六部分的管理員首頁面中。而且前五個模塊中都配備有“數(shù)據(jù)導(dǎo)出”和“信息搜索”功能,以滿足管理員“信息搜索”的需求。管理員需要注銷用戶的時候具體操作和用戶端注銷操作一樣。
這個模塊針對用戶注冊后不再繼續(xù)使用的情況,提供了很好的解決辦法。具體實現(xiàn)是在用戶信息實體類中加入三個屬性,分別為注冊時間屬性、一年內(nèi)登錄次數(shù)屬性和用戶權(quán)限級別屬性,并且這三個屬性不再用戶端顯示,然后通過對這兩個屬性內(nèi)容的搜索來獲知未繼續(xù)使用此系統(tǒng)的用戶。其中注冊時間屬性是用戶注冊時Java后端調(diào)用時間函數(shù)來進行獲取保存的,一年內(nèi)登錄次數(shù)屬性是用戶登錄時Java 后端進行次數(shù)統(tǒng)計來進行獲取保存的。因此管理員只需在“信息搜索”中先查找一年內(nèi)登錄次數(shù)為零,然后再對搜索出的結(jié)果按照注冊時間逆排序從而得到未繼續(xù)使用的用戶,最后通過多選進行批量刪除,這樣就保證所刪除的用戶是真正未繼續(xù)使用的用戶。在此模塊中,當(dāng)管理員需要增加和修改用戶信息時,通過界面的“增添記錄”按鈕和“編輯”按鈕便可實現(xiàn)。
6.2.3 計費管理模塊
這個模塊是系統(tǒng)線上計費功能的基礎(chǔ)模塊,管理員在配置好計費信息后,停車模塊中才可以完成線上計費的功能。管理員通過點擊功能欄中的“計費管理”可以查詢當(dāng)前的計費信息。如果管理員首次登錄系統(tǒng),那么此計費信息為空。在計費管理模塊中,管理員可對當(dāng)前具體的計費信息進行修改和刪除操作,為了避免管理員因誤操作造成損失,刪除操作采用的是偽刪除方式;修改操作則需要進行二次確定才可對停車計費信息進行更改。管理員通過點擊界面中的“添加記錄”按鈕來增加新的計費信息,填寫的計費信息表中除了備注是選填外,其它為必填項。管理員對計費管理模塊進行操作時,為保障系統(tǒng)數(shù)據(jù)的安全性,其他系統(tǒng)各個功能模塊會處于“休眠”狀態(tài)。計費信息的更改不會對其造成影響,它們還會繼續(xù)使用“舊計費信息”來完成各項功能。在此后用戶停車時,才會使用“新計費信息”來進行計費。
用戶在登錄界面注冊成功后,但是在登錄系統(tǒng)的時候一直提示失敗,這一問題的原因是Mybatis 沒有提交用戶的數(shù)據(jù)。Mybatis 默認(rèn)情況下自動提交事務(wù)是關(guān)閉狀態(tài),所以導(dǎo)致程序執(zhí)行成功,但并不會把用戶數(shù)據(jù)儲存到數(shù)據(jù)庫中,解決辦法是把SqlSessionFactory 的openSession()方法傳入?yún)?shù)true,具體代碼為openSession(true),這樣便可解決用戶注冊成功后登錄失敗的問題。
用戶在頁面中點擊“數(shù)據(jù)導(dǎo)出”按鈕后沒有反映。這一問題是有兩個原因造成的,第一個原因是在相應(yīng)的jsp 頁面中沒有導(dǎo)入FileSaver.js、tableExport.js 和base64.js 這三個文件;第二個原因是導(dǎo)入了上述的三個架包,但是jquery.min.js 文件的版本不是最新的,這也會導(dǎo)致“數(shù)據(jù)導(dǎo)出”失效。因此,對于這個問題的解決辦法也比較簡單。如果是第一種情況則導(dǎo)入相關(guān)的文件,如果是第二種情況則下載最新的jquery.min.js 并導(dǎo)入頁面中,這樣便成功解決問題。
停車管理系統(tǒng)可以有效解決車輛的合理停放問題,使之在一定程度上不會影響到城市的道路交通,同時方便用戶節(jié)省時間,使車輛的管理更加規(guī)范合理,成功解決之前的管理人員過多,管理效果不好的問題。并且在龐大的停車場中,可以更快的定位到自己車輛的位置,從而讓用戶在第一時間找到自己的車輛,避免浪費時間,滿足開發(fā)此停車管理系統(tǒng)的初衷。