潘琦 李雪竹 王月 何佳莉 王嘉婕
摘 要:本文研究并設(shè)計了一種基于SSM的智慧旅游系統(tǒng)。該系統(tǒng)能夠?qū)崿F(xiàn)旅游資源的優(yōu)化配置和游客體驗(yàn)的提升,為旅游行業(yè)提供全面、智能的服務(wù)。該系統(tǒng)采用了當(dāng)前流行的Spring MVC框架和MyBatis數(shù)據(jù)訪問層接口,保證了系統(tǒng)的穩(wěn)定性和可擴(kuò)展性。并用關(guān)系型數(shù)據(jù)庫結(jié)構(gòu)設(shè)計了用于存儲系統(tǒng)日志、緩存數(shù)據(jù)等的輔助表,以增強(qiáng)游客在旅游方面的指導(dǎo)作用。
關(guān)鍵詞:SSM框架;大數(shù)據(jù)技術(shù);旅游領(lǐng)域
一、引言
當(dāng)前旅游業(yè)的信息量龐大,旅游系統(tǒng)在運(yùn)營過程中需要處理大量的信息。因此,需要對旅游相關(guān)信息進(jìn)行有效的管理,以便及時了解各種信息的變更,并根據(jù)變化及時做出調(diào)整,從而提高管理效率和資源利用率?,F(xiàn)有的旅游景點(diǎn)服務(wù)網(wǎng)站在信息及時性、完整性、擴(kuò)展性等方面存在不足。為了改善這一問題,提高旅游景點(diǎn)服務(wù)網(wǎng)站的及時性和擴(kuò)展性,保證系統(tǒng)能夠長期、安全、穩(wěn)定、可靠、高效的運(yùn)行是十分必要的。開發(fā)功能更加完善、更強(qiáng)大的系統(tǒng)對于實(shí)現(xiàn)旅游信息管理工作的規(guī)范化、系統(tǒng)化、自動化至關(guān)重要。這有助于提高管理信息的效率、資源利用率以及利潤的最大化;減輕旅游工作人員的工作負(fù)擔(dān);為旅游業(yè)的運(yùn)營帶來更高的效率和更好的用戶體驗(yàn);提升旅游業(yè)的市場競爭力。
二、系統(tǒng)架構(gòu)設(shè)計
(一)整體架構(gòu)。本系統(tǒng)采用分層架構(gòu),分為表現(xiàn)層、業(yè)務(wù)邏輯層和數(shù)據(jù)層。表現(xiàn)層包括用戶界面和移動端應(yīng)用;業(yè)務(wù)邏輯層包括核心業(yè)務(wù)邏輯和數(shù)據(jù)處理;數(shù)據(jù)層包括數(shù)據(jù)庫和數(shù)據(jù)存儲。
(二)技術(shù)選型
表現(xiàn)層:采用Spring MVC框架構(gòu)建Web界面,使用React等前端框架構(gòu)建移動端應(yīng)用。
業(yè)務(wù)邏輯層:使用Spring框架進(jìn)行核心業(yè)務(wù)邏輯實(shí)現(xiàn),包括用戶管理、景點(diǎn)管理、訂單管理、支付管理等。同時,使用MyBatis作為數(shù)據(jù)訪問層接口。
數(shù)據(jù)層:使用MySQL數(shù)據(jù)庫存儲數(shù)據(jù),采用分布式存儲系統(tǒng)(如Hadoop)存儲大規(guī)模數(shù)據(jù)。
(三)數(shù)據(jù)庫設(shè)計
數(shù)據(jù)庫采用MySQL,設(shè)計關(guān)系型數(shù)據(jù)庫結(jié)構(gòu),包括游客信息表、景點(diǎn)信息表、訂單信息表、支付信息表等。同時,設(shè)計用于存儲系統(tǒng)日志、緩存數(shù)據(jù)等的輔助表。頂層數(shù)據(jù)流圖如圖一所示:
(四)接口設(shè)計。系統(tǒng)提供API接口,供第三方應(yīng)用調(diào)用。接口包括用戶注冊、登錄、景點(diǎn)信息查詢、訂單提交、支付等。接口設(shè)計遵循RESTful風(fēng)格,接口地址遵循統(tǒng)一資源標(biāo)識符(URI)規(guī)范。
(五)安全性設(shè)計。系統(tǒng)采用多層次的安全措施,包括用戶身份認(rèn)證、訪問控制、加密傳輸、數(shù)據(jù)備份等。同時,使用防火墻和入侵檢測系統(tǒng),確保系統(tǒng)安全。
三、系統(tǒng)詳細(xì)設(shè)計
(一)數(shù)據(jù)庫訪問層的實(shí)現(xiàn)。系統(tǒng)通過JDBC和MySQL實(shí)現(xiàn)了連接,新建一個jdbc.properties文件來填寫與數(shù)據(jù)庫連接所需要的驅(qū)動和參數(shù)。后臺與數(shù)據(jù)庫訪問主要是通過HQL語句來進(jìn)行查詢的,查詢語句中的表名是表格的實(shí)體類名,因此*是不允許使用的,除非適合聚合函數(shù)一起使用才可以。
(二)注冊模塊的實(shí)現(xiàn)。用戶在填寫數(shù)據(jù)時,必須與注冊頁面上的驗(yàn)證相匹配否則會注冊失敗。注冊頁面的表單驗(yàn)證通過JavaScript進(jìn)行驗(yàn)證,用戶名的長度必須在6到18之間,郵箱必須帶有@符號,密碼和密碼確認(rèn)必須相同。系統(tǒng)會根據(jù)輸入密碼的強(qiáng)度給出相應(yīng)的值。電話號碼和身份證號碼必須要求輸入格式與生活相符合。用戶在前臺驗(yàn)證通過后,點(diǎn)擊注冊,表單會將輸入的值通過name值傳遞給后臺并保存到數(shù)據(jù)庫中。
(三)登錄模塊的實(shí)現(xiàn)。主要由兩部分組成:登錄界面和登錄后的用戶功能界面。在登錄界面,用戶需要輸入用戶名和密碼。如果用戶名和密碼為空,系統(tǒng)會給出提示“用戶名、密碼不能為空”。獲取用戶名和密碼后,系統(tǒng)會到數(shù)據(jù)庫中查找對應(yīng)的用戶信息。如果用戶名存在且密碼正確,則登錄成功;否則登錄失敗。登錄失敗后,系統(tǒng)會給出提示信息并將焦點(diǎn)停在文本框中。登錄成功后,會將該次會話的全局變量username設(shè)置為用戶名。登錄成功后進(jìn)入會員功能模塊,主要有會員基本信息修改、景點(diǎn)信息管理、發(fā)布信息和退出功能。退出功能會清除全局變量username的值并跳轉(zhuǎn)到首頁。
(四)用戶資料修改模塊的實(shí)現(xiàn)。用戶登錄或注冊成功后可以修改自己的基本信息。在修改頁面的表單中,每個input的name值都需要與實(shí)體類中的參數(shù)相匹配。如果修改后的用戶名與數(shù)據(jù)庫中已存在的用戶名重復(fù),頁面會提示該用戶名已存在。否則,系統(tǒng)會根據(jù)id查詢用戶信息并修改為表單提交的數(shù)據(jù)。
(五)資訊數(shù)據(jù)管理模塊的實(shí)現(xiàn)。管理員可以通過查詢資訊數(shù)據(jù)的基本信息來查詢資訊數(shù)據(jù)。查詢資訊數(shù)據(jù)是通過Ajax技術(shù)進(jìn)行的,需要傳遞資訊數(shù)據(jù)的標(biāo)題、編號等參數(shù),然后在返回到該頁面中。管理員可以選中要修改或刪除的資訊數(shù)據(jù),如果選中了超過一條數(shù)據(jù),頁面會彈出窗口提醒只能選擇一條數(shù)據(jù);如果沒有選中數(shù)據(jù),也會彈出窗口提醒必須選擇一條數(shù)據(jù)。選擇確認(rèn)修改后,系統(tǒng)會根據(jù)傳過來的id到數(shù)據(jù)庫查詢資訊數(shù)據(jù),并將結(jié)果返回到修改頁面中,可以在修改頁面中修改剛剛選中的資訊數(shù)據(jù)。點(diǎn)擊確認(rèn)后,從前端發(fā)出的form表單會將修改的數(shù)據(jù)提交到后臺并保存到數(shù)據(jù)庫中。
(六)景點(diǎn)購票模塊的實(shí)現(xiàn)。景點(diǎn)購票功能需要考慮高并發(fā)情況,防止景點(diǎn)重復(fù)購票、景點(diǎn)狀態(tài)顯示出錯等問題。為此,我們增加了鎖機(jī)制。在樂觀鎖、悲觀鎖以及線程鎖中,綜合考慮性能效率和錯誤的可接受性,我們選擇了樂觀鎖機(jī)制。樂觀鎖的實(shí)現(xiàn)方式是使用版本標(biāo)識來確定讀到的數(shù)據(jù)與提交時的數(shù)據(jù)是否一致。提交后修改版本標(biāo)識,不一致時可以采取丟棄和再次嘗試的策略。在數(shù)據(jù)庫設(shè)計中增加了version字段,每次數(shù)據(jù)提交時判斷version是否匹配,若不匹配停止本次提交,若匹配則提交成功并增加version的值。景點(diǎn)購票功能的整體流程是:用戶瀏覽景點(diǎn)信息時,同時會顯示景點(diǎn)的狀態(tài)。系統(tǒng)在顯示詳細(xì)信息的頁面時會判斷景點(diǎn)的狀態(tài)。若景點(diǎn)狀態(tài)為可購票,則會顯示購票鏈接按鈕。用戶點(diǎn)擊購票按鈕時,會先通過攔截器判斷用戶是否登錄。若未登錄,會跳轉(zhuǎn)至登錄頁面;若為登錄用戶就會跳轉(zhuǎn)至填寫購票信息的頁面。填寫好購票信息后點(diǎn)擊提交按鈕,購票成功后會返回提示信息告知用戶購票成功。
(七)景點(diǎn)信息模塊的實(shí)現(xiàn)。此模塊的關(guān)鍵是編寫景點(diǎn)信息,包括景點(diǎn)編號、名稱、詳情等。單擊提交按鈕以完成信息的添加。如果未寫入完整的景點(diǎn)信息(例如未寫入景點(diǎn)編號),系統(tǒng)將給出相應(yīng)的錯誤提示并無法成功輸入數(shù)據(jù)。數(shù)據(jù)的寫入以概念的形式以onsubmit="return checkForm()"的形式寫入進(jìn)行檢查。checkForm()函數(shù)是一種用于寫入數(shù)據(jù)的不同類型的校對方法,如檢查是否為空也是通過form表單中的onsubmit=checkForm()來檢查的。
(八)地區(qū)管理模塊的實(shí)現(xiàn)。地區(qū)管理模塊需要實(shí)現(xiàn)添加、刪除或修改地區(qū)信息的功能。刪除或修改地區(qū)時,系統(tǒng)會根據(jù)地區(qū)的狀態(tài)判定為可刪除狀態(tài)下才會給出刪除或修改鏈接按鈕。點(diǎn)擊刪除鏈接按鈕時,請求到達(dá)后臺還會先查詢地區(qū)狀態(tài)再次做出判定能否刪除。點(diǎn)擊修改鏈接按鈕時,會跳轉(zhuǎn)到修改信息的頁面重新填寫好數(shù)據(jù)后提交到
四、結(jié)語
基于SSM的智慧旅游系統(tǒng)設(shè)計具有諸多優(yōu)點(diǎn),能夠?yàn)橛慰吞峁┲悄芑?、個性化的旅游服務(wù),提高用戶體驗(yàn)和服務(wù)質(zhì)量。在未來的開發(fā)中,需要不斷優(yōu)化和改進(jìn)系統(tǒng),提高系統(tǒng)的穩(wěn)定性和易用性。
參考文獻(xiàn):
[1]周金玉.鄉(xiāng)村振興背景下廣州市鄉(xiāng)村旅游電子商務(wù)創(chuàng)新發(fā)展研究[J].西部旅游,2022(02):20-22.
[2]趙靜.基于SSM+VUE框架的企業(yè)合規(guī)管理系統(tǒng)[J].數(shù)字通信世界,2022(11):17-19.
[3]曹華山.SSM框架在Web應(yīng)用開發(fā)中的設(shè)計與實(shí)現(xiàn)[J].無線互聯(lián)科技,2021,18(11):108-109.