基于Web的旅游信息管理系統(tǒng)設(shè)計與實現(xiàn)_第1頁
基于Web的旅游信息管理系統(tǒng)設(shè)計與實現(xiàn)_第2頁
基于Web的旅游信息管理系統(tǒng)設(shè)計與實現(xiàn)_第3頁
基于Web的旅游信息管理系統(tǒng)設(shè)計與實現(xiàn)_第4頁
基于Web的旅游信息管理系統(tǒng)設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡介

PAGEPAGE7第1章緒論1.1研究背景在最近的幾年內(nèi),由于中國經(jīng)濟(jì)快速增長,人們的生活品質(zhì)已經(jīng)顯著上升。但是,隨著我們生活的品質(zhì)日漸增長,人們的追求也逐漸從單一的物質(zhì)層面轉(zhuǎn)向了更為豐富和高尚的精神層面。大眾旅游已經(jīng)變成了人們生活中不可缺少的一部分了。旅游消費(fèi)需求也呈現(xiàn)出高品質(zhì)、多樣化、觀光和休閑度假的趨勢。線上線下的旅游產(chǎn)品和服務(wù)融合也越來越普及。為了滿足這些需求旅游行業(yè)需要持續(xù)優(yōu)化其產(chǎn)品與服務(wù),推出品質(zhì)更優(yōu)的旅游體驗,同時也要重視各種不同類型的游客需求,中國旅游業(yè)得到了迅速發(fā)展[1]。在目前互聯(lián)網(wǎng)旅游興盛的環(huán)境中,結(jié)合李克強(qiáng)總理于2015年提倡的“互聯(lián)網(wǎng)+”新經(jīng)濟(jì)理念,針對目前旅游產(chǎn)業(yè)所遭遇的多種挑戰(zhàn),構(gòu)建智慧旅游管理系統(tǒng)已是大勢所趨[2]。根據(jù)經(jīng)濟(jì)學(xué)人情報單位的報告,2023年全球旅游人數(shù)將增長30%,但仍低于疫情前的水平。中國的零疫情策略將延緩旅游業(yè)的復(fù)蘇。根據(jù)路透社的報道,2023年,中國的國內(nèi)旅游總收益達(dá)到了4萬億元人民幣的規(guī)模,與前一年相比有了95%的增長,這表明旅游市場正在逐漸回歸到2019年的規(guī)模。根據(jù)Statista的數(shù)據(jù),2019年中國旅游業(yè)總收入超過6萬億元人民幣,同比增長8.47%。同年,國內(nèi)旅游人次達(dá)到60億,同比增長8.4%[3]。1.2研究現(xiàn)狀在國際上,智能旅游相關(guān)的學(xué)術(shù)研究相對較早開展。在21世紀(jì)初,美國知名旅游企業(yè)HarrisTeeter研發(fā)了第一個智慧旅游推薦系統(tǒng),系統(tǒng)采用智能化的推薦算法,自動分析用戶特點,個性化推薦景區(qū)信息,相比傳統(tǒng)旅游系統(tǒng),具有更加精準(zhǔn)的信息和更快速的用戶獲取相關(guān)信息的特點。此外,JeongH和團(tuán)隊建立了基于圖片分享的智慧旅游推薦系統(tǒng),通過對游客在網(wǎng)站分享的圖片信息進(jìn)行分析獲取圖片相關(guān)數(shù)據(jù),并建立推薦模型,根據(jù)用戶的地理信息完成對用戶旅游地推薦[5]。這一類產(chǎn)品大部分選擇了手機(jī)移動應(yīng)用程序、PC軟件、網(wǎng)絡(luò)頁面等多種應(yīng)用手段。雖然這些應(yīng)用程序得到了大量的好評,但它們的安裝和使用成本相對較高,使得用戶的體驗沒有特別便捷。國內(nèi)特色旅游景點的發(fā)展前景備受關(guān)注,因為它們是吸引普通大眾進(jìn)行休閑觀光旅游的重要因素。在線旅游服務(wù)類產(chǎn)品的應(yīng)用,如攜程、去哪兒、飛豬、馬蜂窩旅行、窮游等平臺已經(jīng)成為了國內(nèi)旅游服務(wù)體系中的重要資源和市場。進(jìn)一步滿足了自由行旅游市場的需求。這種以用戶為中心的旅游服務(wù)模式成為了旅游市場的新趨勢,也為旅游行業(yè)的未來發(fā)展帶來了更多的機(jī)遇和挑戰(zhàn)[7]。1.3研究內(nèi)容本研究項目主要聚焦于旅游景點和美食作為應(yīng)用場景,旨在設(shè)計和開發(fā)一套功能全面的旅游項目管理系統(tǒng)。該系統(tǒng)可以有效地解決旅游管理中存在的各種問題,提高管理效率。本研究項目充分考慮了當(dāng)前旅游行業(yè)的市場和用戶需求,進(jìn)行了全面的概述和深入的分析總結(jié),詳盡的分析了每個業(yè)務(wù)功能模塊的結(jié)構(gòu)和工作流程,并且單獨地完成了系統(tǒng)框架、系統(tǒng)各業(yè)務(wù)功能模塊及數(shù)據(jù)庫的設(shè)計與執(zhí)行工作。 基于web的旅游信息管理系統(tǒng)的主要目標(biāo)是為用戶呈現(xiàn)更為詳盡的旅行指南。用戶能夠在網(wǎng)站上查看關(guān)于旅游的最新消息,關(guān)注景區(qū)信息,購買當(dāng)?shù)鼐皡^(qū)門票,查詢已支付的訂單,瀏覽當(dāng)?shù)孛朗承畔?,網(wǎng)上購買當(dāng)?shù)靥禺a(chǎn)美食和規(guī)劃旅行線路?;谡n題需求和系統(tǒng)整體設(shè)計,我們的系統(tǒng)設(shè)計選擇了B/S架構(gòu)。該系統(tǒng)的架構(gòu)是由客戶端、開發(fā)者服務(wù)器以及數(shù)據(jù)庫服務(wù)器共同構(gòu)成的。該系統(tǒng)是在MVC架構(gòu)的基礎(chǔ)上構(gòu)建的,并且是根據(jù)面向?qū)ο蟮脑O(shè)計準(zhǔn)則來進(jìn)行系統(tǒng)的構(gòu)建和執(zhí)行的。VUE作為前端架構(gòu),負(fù)責(zé)處理交互并進(jìn)行數(shù)據(jù)渲染。它提供了一種新的編程模式,即從服務(wù)層直接調(diào)用底層代碼,從而提高開發(fā)效率。SpringBoot被視為一個效率極高的后端系統(tǒng)架構(gòu),采用MyBatis持久化框架來管理數(shù)據(jù)庫連接,并使用java編程語言來完成實現(xiàn)其功能。該系統(tǒng)所采用的數(shù)據(jù)庫是基于MYSQL,使數(shù)據(jù)在傳輸過程中不會泄露信息或被篡改。本系統(tǒng)的集成開發(fā)環(huán)境選用了IntelliJIDEA和VSCode。在開發(fā)旅游網(wǎng)站的過程中,我們需要完成包括需求分析、系統(tǒng)的業(yè)務(wù)流程、數(shù)據(jù)流、總體布局、整體設(shè)計框架、功能組件以及數(shù)據(jù)庫的構(gòu)建等。本篇文章重點闡述了該系統(tǒng)包括以下幾個主要功能模塊:用戶賬戶信息模塊、景區(qū)詳細(xì)信息模塊、新聞發(fā)布模塊、旅行路線相關(guān)模塊、訂單詳情模塊、地區(qū)性的美食特色模塊及系統(tǒng)的管理功能模塊。本篇文章會集中探討上述模塊的具體設(shè)計和實現(xiàn)細(xì)節(jié)。1.4論文組織第一章為緒論,描述了研究背景以及國內(nèi)外的最新研究進(jìn)展,并對本研究的核心內(nèi)容進(jìn)行了總結(jié),同時也為論文的整體框架做了規(guī)劃。第二章為相關(guān)技術(shù)與開發(fā)工具,詳細(xì)闡述了系統(tǒng)的相關(guān)技術(shù),并從SSM框架、RESTfulAPI的構(gòu)建、SpringBoot框架、VUE框架以及MySQL數(shù)據(jù)庫等幾個維度進(jìn)行了深入分析第三章為系統(tǒng)分析,涵蓋了對系統(tǒng)的實用性、業(yè)務(wù)流程、用戶的使用體驗以及功能的深度研究。第四章為系統(tǒng)設(shè)計,詳細(xì)探討了系統(tǒng)設(shè)計的各個方面,包括但不限于系統(tǒng)結(jié)構(gòu)體系的設(shè)計、設(shè)計數(shù)據(jù)庫的結(jié)構(gòu)概念以及其邏輯設(shè)計的討論。第五章為系統(tǒng)實現(xiàn),主要描述了系統(tǒng)實施的詳細(xì)模塊,包括主頁面模塊、用戶模塊和后臺管理模塊的實現(xiàn)。在具體的執(zhí)行階段,高度重視細(xì)節(jié)的管理,充分考慮用戶體驗和系統(tǒng)性能。第六章為系統(tǒng)測試,文中主要探討了了系統(tǒng)測試的目的和其重要性,并詳細(xì)描述了如何使用黑盒和白盒兩種不同的測試方法來評估功能模塊的性能。

第2章相關(guān)技術(shù)與開發(fā)工具2.1SSM框架2.1.1Spring框架 Spring是一種廣受歡迎的開源框架技術(shù),是RodJohnson首次推出,并在2003年進(jìn)行了首次公開發(fā)布。這一設(shè)計觀念是基于Johnson作品《ExpertOne-On-OneJ2EEDevelopmentandDesign》中所述的各種觀點和方法論而來的。Spring結(jié)構(gòu)的主要思想集中于控制反轉(zhuǎn)(IOC)以及面向切面編程(AOP),通過IOC,Spring框架讓對象與組件得到了解耦,降低了應(yīng)用程序的耦合度。通過AOP,Spring實現(xiàn)了諸如日志、事務(wù)等功能的集中化管理,從而增強(qiáng)了應(yīng)用軟件的維護(hù)能力,還有顯著的擴(kuò)展功能。通過集中化管理,Spring框架讓開發(fā)者更加輕松地管理和維護(hù)應(yīng)用程序。在各種開源框架當(dāng)中,Spring框架因其高度的靈活性、效率和用戶友好性,被視為企業(yè)級Java開發(fā)的優(yōu)先選擇。2.1.2SpringMVC框架SpringMVC是一個功能豐富的Web應(yīng)用,它主要用于JavaWeb項目的開發(fā)。該系統(tǒng)采納了處理器的映射和視圖解析器等多種技術(shù)手段,它不僅支持各種視圖處理技術(shù)如JSP等,還能提供靈活的配置功能。在SpringMVC技術(shù)環(huán)境下,不同功能角色被獨立隔開,這樣的獨特設(shè)計使得研發(fā)人員能夠更加靈活地實施個性化的定制。利用SpringMVC框架可以為開發(fā)人員提供更簡便的Web應(yīng)用程序設(shè)計方法,不僅提高了程序開發(fā)的效率,還大大減少了軟件制作的難度。2.1.3Mybatis框架MyBatis基于Java編程語言構(gòu)建了一個持久層模型架構(gòu),該架構(gòu)是將大多數(shù)的JDBC代碼去除、手動設(shè)置的參數(shù)和檢索結(jié)果集來實現(xiàn)其目標(biāo),大大簡化了數(shù)據(jù)訪問層的開發(fā)過程。在XML配置方式中,可以使用原始映射或接口方式進(jìn)行SQL語句映射。當(dāng)你使用MyBatis軟件時,你需要進(jìn)行一系列相關(guān)的設(shè)置,這包括但不限于數(shù)據(jù)源設(shè)置、SQL映射文件或接口類型,以及事務(wù)管理等多個方面。當(dāng)MyBatis執(zhí)行SQL命令時,它會處理JavaPOJO對象與數(shù)據(jù)庫記錄之間的對應(yīng)關(guān)系,從而使數(shù)據(jù)庫操作變得更為簡便。與其他ORM框架相比,MyBatis更適用于那些時常發(fā)生需求變更的開發(fā),它通過SQL語句的靈活性和動態(tài)性,能夠更好地適應(yīng)業(yè)務(wù)需求的變化。MyBatis采用的開發(fā)策略既簡潔又高效,它還擁有出色的擴(kuò)展和定制能力,為開發(fā)人員帶來了更為出色的使用體驗和高度的靈活性。2.2RESTfulAPI近些年來,前后端的分離開發(fā)技術(shù)逐漸成為一種熱門的技術(shù)。這種方式可以有效地降低前端和后端的耦合度,使得前端和后端的開發(fā)人員可以獨立開發(fā)和維護(hù)各自的模塊。為了實現(xiàn)前后端分離,需要通過API設(shè)計來實現(xiàn)數(shù)據(jù)傳輸和業(yè)務(wù)邏輯的交互。在API設(shè)計中,RESTful風(fēng)格,在API設(shè)計中頻繁出現(xiàn),利用HTTP動詞和URL來簡化API接口的構(gòu)造與使用,使其更為直觀和易于理解。RESTful接口是基于RepresentationStateTransfer的原則設(shè)計的,它采用了統(tǒng)一的接口機(jī)制,從而使得API接口在設(shè)計和使用上變得更為靈活,在數(shù)字化的移動互聯(lián)網(wǎng)時代,各種前端設(shè)備種類五花八門,需要支持不同設(shè)備的接口。因此,后端需要提供不同類型的網(wǎng)絡(luò)數(shù)據(jù)接口,以滿足前端設(shè)備的需求。通過合理的前后端分離和API設(shè)計,可以實現(xiàn)更加靈活、高效和易維護(hù)的互聯(lián)網(wǎng)應(yīng)用程序。同時,RESTful接口的使用也成為了互聯(lián)網(wǎng)開發(fā)的一個重要技術(shù)點[8]。為了解決這個問題,REST提出了統(tǒng)一的接口機(jī)制,使得前端設(shè)備和后端可以通過網(wǎng)絡(luò)通信進(jìn)行數(shù)據(jù)傳輸和業(yè)務(wù)邏輯的交互。移動設(shè)備如手機(jī)、平板電腦等都需要支持通信服務(wù),因此后端需要提供不同類型的通信服務(wù)接口。通過精心設(shè)計的RESTful接口和整體架構(gòu),可以實現(xiàn)更加靈活、高效和易維護(hù)的互聯(lián)網(wǎng)應(yīng)用程序。2.3SpringBoot框架SpringBoot是由Pivotal團(tuán)隊研發(fā)的一種創(chuàng)新框架,它能迅速構(gòu)建高效的Spring生產(chǎn)應(yīng)用,避免了復(fù)雜的配置步驟,可以即開即用,讓開發(fā)者專注于業(yè)務(wù)開發(fā)。SpringBoot集成了如Jetty、Tomcat等多個常見的工具,并融合了大量的插拔功能,為開發(fā)人員提供了額外的便利性。與傳統(tǒng)的Java后端架構(gòu)相比,SpringBoot的功能更為廣泛,性能更為穩(wěn)健,同時也更具威力,這為開發(fā)人員創(chuàng)造了一個更專注于與系統(tǒng)相關(guān)的業(yè)務(wù)的平臺。SpringBoot技術(shù)有助于減輕開發(fā)的復(fù)雜性。開發(fā)過程中選擇了前端和后端獨立的模式,,前端用于用戶體驗和網(wǎng)絡(luò)請求,而后端則是用于解決業(yè)務(wù)邏輯模塊以及在服務(wù)器端進(jìn)行實現(xiàn)。通過合理地分隔前后端并運(yùn)用SpringBoot進(jìn)行軟件開發(fā),能夠達(dá)到更為高效和維護(hù)方便的互聯(lián)網(wǎng)應(yīng)用。SpringBoot還可以方便地融合多種第三方技術(shù),例如數(shù)據(jù)庫、緩沖區(qū)、消息隊列等,從而讓開發(fā)過程更為簡單。2.4VUE框架隨著前端技術(shù)的不斷演進(jìn),產(chǎn)生許多新概念,如Node.js、NPM和前端工程化等應(yīng)運(yùn)而生。在這個快速變化的環(huán)境中,Vue.js以其簡潔輕量、可擴(kuò)展的設(shè)計成為一款備受歡迎的漸進(jìn)式JavaScript框架。Vue.js使用了簡化版的MVVM框架,,將視圖狀態(tài)和行為抽象化,實現(xiàn)視圖與數(shù)據(jù)的解耦,并通過雙向綁定機(jī)制實現(xiàn)業(yè)務(wù)邏輯與UI的分離。Vue.js具有高效的模板編譯和虛擬DOM渲染,進(jìn)一步提高了應(yīng)用的性能。Vue.js不只是JavaScript的一款框架,它還代表了一種漸進(jìn)式的技術(shù),它的核心目標(biāo)是幫助開發(fā)者更加高效地構(gòu)建現(xiàn)代化的Web應(yīng)用程序。2.5MySQLMySQL其邏輯架構(gòu)為典型的C/S系統(tǒng),被分為兩個部分,即Client層和Server層。Client層位于系統(tǒng)的最高層,其主要職責(zé)是為客戶端提供連接服務(wù),并處理與多個語言和SQL的交互任務(wù)。MySQLServer的邏輯結(jié)構(gòu)主要被劃分為三個獨立的級別:應(yīng)用層、MySQL服務(wù)層以及存儲引擎層。NavicatforMySQL是一款專為MySQL數(shù)據(jù)庫的管理和開發(fā)設(shè)計的應(yīng)用程序,操作簡單易用,可以單獨使用,且支持連接到MySQL數(shù)據(jù)庫。并且支持與MySQL數(shù)據(jù)庫的連接。本系統(tǒng)是基于Navicat來管理和開發(fā)MySQL。第3章系統(tǒng)分析3.1系統(tǒng)目標(biāo)該系統(tǒng)將為旅游公司提供一種便捷的方式來管理旅游項目。旅游公司可以使用該系統(tǒng)來創(chuàng)建和管理旅游項目。系統(tǒng)將提供一個易于使用的界面,使得旅游公司可以方便地添加、修改和刪除項目信息。在網(wǎng)站首頁展示網(wǎng)站具體實現(xiàn)模塊部分的旅游項目的管理系統(tǒng)功能既全面又豐富,旨在最大限度地提供絕大部分旅游客戶所需要的功能服務(wù)。本系統(tǒng)的主要功能包括用戶注冊、用戶評論、用戶收藏、線路預(yù)訂、訂單支付、訂單查看、賬戶管理、權(quán)限修改、景點信息管理、地方美食管理、旅游線路管理以及訂單信息管理。如前所述,這些功能滿足了普通客戶的各種需求,并構(gòu)成了該系統(tǒng)的核心功能,也是基礎(chǔ)旅游網(wǎng)站所需具備的基礎(chǔ)功能。此外,在系統(tǒng)開發(fā)階段,加入了一些個性化和細(xì)節(jié)化的特性,以確保系統(tǒng)的整體性能和操作便利性都達(dá)到了很高的水平,這也是一個需要持續(xù)改進(jìn)和調(diào)整的方面。3.2系統(tǒng)可行性分析3.2.1經(jīng)濟(jì)可行性分析設(shè)計與實現(xiàn)旅游項目管理系統(tǒng)需要耗費(fèi)大量時間、人力和金錢成本。通過整合和集中旅游信息,這不僅為游客提供了便捷的途徑來實時獲取各個景點、美食以及旅游指南的信息,還有助于企業(yè)盈利。該系統(tǒng)能夠降低人力成本,實現(xiàn)管理的方便、高效和便利。此外,景區(qū)信息化的推廣將有助于弘揚(yáng)家鄉(xiāng)文化,進(jìn)而提高收入,為當(dāng)?shù)亟?jīng)濟(jì)帶來實際收益。綜上所述,從經(jīng)濟(jì)角度來看,投資建設(shè)旅游項目管理系統(tǒng)是非常具有價值的,為游客、企業(yè)和當(dāng)?shù)亟?jīng)濟(jì)創(chuàng)造更好的效益。3.2.2技術(shù)可行性分析技術(shù)成熟度對于網(wǎng)站的順利開展具有至關(guān)重要的作用。因此,在進(jìn)行技術(shù)可行性研究時,不能忽略對現(xiàn)有技術(shù)和軟硬件配置要求的考慮。為確保旅游網(wǎng)站的順利設(shè)計和開發(fā),在硬件方面,需要一臺高性能的個人電腦,并有MySQL數(shù)據(jù)庫服務(wù)器、JDK、IDEA、Tomcat等工具和瀏覽器。其次,在設(shè)計、開發(fā)和運(yùn)營過程中,Java語言起到了至關(guān)重要的作用。從難易方面來看,掌握這些簡單的應(yīng)用系統(tǒng)開發(fā)需要的技術(shù)相對容易。通過綜合利用這些技術(shù),能夠為旅游項目管理系統(tǒng)提供一個穩(wěn)定、可靠的技術(shù)支持,從而確保項目的成功實施。3.2.3操作可行性分析首先,設(shè)計旅游項目管理系統(tǒng)所需的各類軟件都具備高度的普及性和用戶友好性,這使得設(shè)計人員能夠毫不費(fèi)力地利用這些軟件來進(jìn)行系統(tǒng)的設(shè)計和優(yōu)化。接下來,管理人員有能力確認(rèn)客戶的身份,并發(fā)布、編輯和管理信息平臺的內(nèi)容,同時還能執(zhí)行美食的預(yù)定、更改和刪除等多項操作。對于客戶來說,他們可以輕松地完成留言、預(yù)定、瀏覽等多種功能。基于上述的描述,鑒于當(dāng)前的技術(shù)水平,創(chuàng)建一個功能齊全且用戶友好的定制化旅游網(wǎng)站是完全切實可行的,以滿足各種需求并已通過相關(guān)測試。無論從經(jīng)濟(jì)、技術(shù)還是操作層面,該網(wǎng)站都有很大的發(fā)展?jié)摿?,能夠為?dāng)?shù)亟?jīng)濟(jì)和文化事業(yè)帶來巨大的收益和發(fā)展。3.3需求分析本系統(tǒng)是通過SSM框架加上Vue實現(xiàn)的。用戶訪問網(wǎng)頁時,默認(rèn)以游客身份進(jìn)行訪問。當(dāng)需要訪問具體頁面,要求用戶先登錄系統(tǒng)。用戶點擊景點選項卡,能夠瀏覽到景點的詳細(xì)攻略,,景區(qū)簡介,景區(qū)圖片,景區(qū)咨詢,購買門票等操作。用戶點擊美食選項卡,可以查看美食攻略,美食簡介,美食圖片等操作。用戶點擊休閑娛樂選項卡,可以檢索到附近的游玩場所。用戶點擊行程制定選項卡,會根據(jù)用戶輸入的始發(fā)站和終點站進(jìn)行檢索,找出屬于需要的景點攻略,推薦給用戶。用戶提交了景區(qū)訂單或者旅游線路訂單之后,能夠進(jìn)入到個人中心,獲取到訂單詳情,可以點擊打印按鈕將訂單打印出來,或者選擇未支付的訂單進(jìn)行支付。系統(tǒng)業(yè)務(wù)流程如圖3-1所示。圖3-1系統(tǒng)總體業(yè)務(wù)流程3.3.1登錄流程活動分析登錄流程的管理主要涉及到賬戶密碼的錄入以及驗證碼的核實。當(dāng)用戶按下登錄按鈕后,系統(tǒng)會按照用戶輸入的身份信息,去數(shù)據(jù)庫找到對應(yīng)的數(shù)據(jù),與之匹對。如果賬號或密碼不正確,就提示用戶再次輸入。然后系統(tǒng)再根據(jù)用戶所選擇的身份,進(jìn)入相應(yīng)的頁面。具體活動分析見圖3-2。圖3-2“登錄賬號”活動圖3.3.2美食管理流程活動分析在旅游項目管理系統(tǒng)里,美食管理模塊占據(jù)了一個核心的位置,主要是為了方便管理員對旅游目的地中的各種美食進(jìn)行管理,同時也為游客提供了一個便捷的查詢、瀏覽和點評美食的平臺。以“地方美食添加”為例,主要參與對象為管理員、系統(tǒng)和數(shù)據(jù)庫。系統(tǒng)在與管理員交互同時要具有審核、校驗和通知等功能,只有經(jīng)過校驗,美食信息才能存儲到數(shù)據(jù)庫中里。具體活動分析見圖3-3。圖3-3美食管理流程圖3.3.3景點信息管理流程活動分析在旅游項目管理系統(tǒng)里,景點信息管理模塊占據(jù)了一個核心的位置,主要是為了方便管理員對旅游目的地中的各種景點進(jìn)行管理,同時也為游客提供了一個便捷的查詢、瀏覽和評價景點的平臺。以“景點信息查詢”為例,主要參與對象為管理員、系統(tǒng)和數(shù)據(jù)庫。系統(tǒng)在與管理員交互同時要具有檢索、查詢和通知等功能。管理員只需輸入檢索信息,系統(tǒng)即可與數(shù)據(jù)庫中的信息進(jìn)行配對,實現(xiàn)自動化的匹配和篩選過程。匹配成功將數(shù)據(jù)傳送到前端界面。匹配失敗,則將返回空的數(shù)據(jù)給前端,證明沒有此條數(shù)據(jù)或者說檢索關(guān)鍵詞輸入錯誤。具體活動分析見圖3-4。圖3-4景點信息管理圖3.3.4旅游線路管理流程活動分析在旅游項目管理系統(tǒng)里,旅游線路管理模塊占據(jù)了一個核心的位置,包括旅游線路的規(guī)劃和管理。主要是為了方便管理員對旅游目的地中的各種游玩線路進(jìn)行管理,根據(jù)不同的出發(fā)點和終點,可以DIY出不同的游玩線路,供用戶選擇。同時也為游客提供了一個多樣的、快捷的、自由搭配的游玩平臺。以“旅游線路添加”為例,主要參與對象為管理員、系統(tǒng)、數(shù)據(jù)庫和旅游公司。系統(tǒng)在與管理員交互同時要具有審核、校驗和通知等功能,再由旅游公司對旅游線路進(jìn)行審批和評級,只有經(jīng)過校驗,旅游路線信息才可以儲存到數(shù)據(jù)庫中,具體活動分析見圖3-5。圖3-5旅游線路管理活動圖3.3.5訂單信息管理流程活動分析在旅游項目管理系統(tǒng)里,訂單信息管理模塊占據(jù)了一個核心的位置,主要是為了方便管理員對用戶所下預(yù)訂線路訂單進(jìn)行管理,此外,該平臺也為游客創(chuàng)造了一個方便快捷的訂單處理方式。以“預(yù)訂線路訂單查詢”為例,主要參與對象為管理員、系統(tǒng)和數(shù)據(jù)庫。系統(tǒng)在與管理員交互同時要具有檢索、查詢和通知等功能。管理員只需輸入檢索信息,系統(tǒng)即可與數(shù)據(jù)庫中的信息進(jìn)行配對,實現(xiàn)自動化的匹配和篩選過程,匹配成功將數(shù)據(jù)傳送到前端界面。匹配失敗,則將返回暫無數(shù)據(jù)給前端,證明沒有此條數(shù)據(jù)或者說檢索關(guān)鍵詞輸入錯誤。具體活動分析見圖3-6。圖3-6訂單信息管理活動圖3.4系統(tǒng)用戶分析旅游項目管理活動中主要角色分別為游客,普通用戶以及系統(tǒng)管理員。其中系統(tǒng)管理員是直接參與系統(tǒng)人員。主要參與者角色以及權(quán)限范圍如表3-1所示。表3-1用戶角色表角色類別業(yè)務(wù)需求系統(tǒng)管理員角色權(quán)限管理、用戶賬號管理、數(shù)據(jù)庫管理、訂單信息管理、新聞管理、系統(tǒng)設(shè)置管理普通用戶在線留言、訂單信息查閱、旅游線路查閱游客新聞查閱、景區(qū)簡介查閱、美食簡介查閱除了參與系統(tǒng)業(yè)務(wù)主要參與者之外,由于旅游景區(qū)游玩和旅游線路預(yù)訂,所以需要第三方的支付系統(tǒng)和地圖系統(tǒng)支持。系統(tǒng)中角色關(guān)系如圖3-7所示。圖3-7參與者角色關(guān)系圖3.5系統(tǒng)功能分析在旅游項目管理系統(tǒng)中,每個角色所對應(yīng)的功能模塊都是不同的。每一角色所對應(yīng)的詳細(xì)用例如圖3-8所示。圖3-8旅游項目管理系統(tǒng)用例圖3.6系統(tǒng)非功能分析3.6.1性能需求(1)數(shù)據(jù)精度數(shù)據(jù)精確度和規(guī)定的格式標(biāo)準(zhǔn)是重要的,格式錯誤可能影響系統(tǒng)正常運(yùn)行。用戶名、電話號碼填寫時必須嚴(yán)格遵循規(guī)定的格式,特殊符號也必須符合格式標(biāo)準(zhǔn)。字段應(yīng)有規(guī)范要求,確保數(shù)據(jù)的精確度與整體性,提高系統(tǒng)效率和可靠性;在執(zhí)行數(shù)據(jù)增加(例如存儲數(shù)據(jù)的系統(tǒng)中添加最新的業(yè)務(wù))的時候,不會通過因為程序自身的設(shè)定而導(dǎo)致的業(yè)務(wù)運(yùn)行失敗,多次增加相同的數(shù)據(jù)是不被許可的;系統(tǒng)在操作運(yùn)行刪除操作時,是不允許因為程序方面而導(dǎo)致數(shù)據(jù)刪除多于原來的預(yù)設(shè)或者刪除不成功的情況出現(xiàn);數(shù)據(jù)的改變應(yīng)當(dāng)維持與相對應(yīng)的正確性和精準(zhǔn)性。(2)靈活性本系統(tǒng)一般通過鼠標(biāo)或者終端的鍵盤等設(shè)備進(jìn)行輸入操作,對于執(zhí)行按鈕,一般使用鼠標(biāo)的進(jìn)行點擊確認(rèn)使用。在該項目的應(yīng)用平臺設(shè)計中,我們選擇了B/S結(jié)構(gòu),并采納了MVC模式、模型、視圖以及控制器的傳統(tǒng)模式,使得本項目系統(tǒng)具有很好的可維護(hù)特性和敏捷的靈活性。3.6.2環(huán)境需求(1)硬件需求處理器:IntelCorei5或更高內(nèi)存:4GB或更高存儲:至少10GB可用空間。(2)軟件需求操作系統(tǒng):Windows7或更高版本,或者Linux系統(tǒng)Java開發(fā)工具包(JDK):建議使用JDK1.8或更高版本項目構(gòu)建工具:Maven或Gradle數(shù)據(jù)庫:MySQL或其他關(guān)系型數(shù)據(jù)庫Web服務(wù)器:Tomcat或其他Servlet容器(3)組件需求SpringFrameworkSpringMVCMyBatis日志框架,如Log4j或Logback模板引擎,如FreeMarker或Thymeleaf3.6.3安全需求系統(tǒng)的注冊和登錄功能使用JWT實現(xiàn),以確保用戶賬戶的安全性。JWT可以通過對稱或非對稱加密算法對數(shù)據(jù)進(jìn)行簽名和加密,以確保數(shù)據(jù)的精確度與整體性。在用戶提交注冊請求之后,該系統(tǒng)會把用戶的各種身份數(shù)據(jù)以及其他附加元數(shù)據(jù)信息整合成一個JWTtoken模型,該模型中將包含用戶唯一的身份標(biāo)識信息和截止日期等詳細(xì)信息。該JWTtoken將存儲在客戶端的數(shù)據(jù)庫,在下一次的請求會被發(fā)送到服務(wù)器進(jìn)行身份驗證和授權(quán)。當(dāng)用戶提出登錄時,系統(tǒng)會核實他們的身份并創(chuàng)建一個JWTtoken。在生成token的過程中,系統(tǒng)會對用戶的身份資料和元數(shù)據(jù)信息進(jìn)行簽名確認(rèn),為了token的有效性和整體性。該token將被存儲在客戶端的本地存儲中,并在以后的每個請求中都被發(fā)送到服務(wù)器進(jìn)行身份驗證和授權(quán)。JWT具有更高的安全性和可靠性,能夠有力地確保用戶賬戶的安全性。

第4章系統(tǒng)設(shè)計4.1系統(tǒng)結(jié)構(gòu)體系設(shè)計該系統(tǒng)的結(jié)構(gòu)主要被劃分為五個不同的層級:視覺圖層、操作控制層、業(yè)務(wù)處理層、數(shù)據(jù)持久層以及數(shù)據(jù)源層。其中視圖層是整個系統(tǒng)最基礎(chǔ)也是最為重要的部分,它將各個功能模塊封裝成一個統(tǒng)一的視圖。當(dāng)一個完整的模塊被構(gòu)建完成后,用戶可以通過視圖層界面與系統(tǒng)進(jìn)行互動,這大大簡化了操作過程。當(dāng)用戶向視圖層發(fā)送請求時,控制層會立即調(diào)用與之匹配的服務(wù)層接口以管理業(yè)務(wù)流程。在服務(wù)層內(nèi),存在專門處理業(yè)務(wù)的接口以及它們的具體實施類別。數(shù)據(jù)持久層則會調(diào)用其已經(jīng)設(shè)定好的接口,實現(xiàn)服務(wù)層的特定實施類。同時,數(shù)據(jù)持久層定義了多個與數(shù)據(jù)源層交互的接口,這些接口在SSM框架中通過Mybatis配置文件來實現(xiàn)。旅游項目管理系統(tǒng)的系統(tǒng)架構(gòu)如圖4-1所示。圖4-1旅游項目管理系統(tǒng)架構(gòu)設(shè)計圖4.2系統(tǒng)順序圖設(shè)計4.2.1登錄注冊模塊設(shè)計(1)注冊游客進(jìn)入系統(tǒng)后,只需點擊注冊按鈕,即可進(jìn)入注冊界面,并按照要求輸入各種信息。當(dāng)用戶點擊提交按鈕后,controller層處理用戶的請求,分析和驗證請求的參數(shù)值,之后將這些請求傳遞給servical層以進(jìn)一步處理。在service層,首先利用dao層來查找用戶表,查詢當(dāng)前用戶名注冊情況,如果不存在,則將當(dāng)前用戶的詳細(xì)信息通過dao層保存到數(shù)據(jù)庫。添加成功,會向controller層返回添加成功的提示消息,經(jīng)過controller層告知用戶添加成功。其時序圖如圖4-2所示。圖4-2用戶注冊時序圖(2)登錄前臺只允許用戶進(jìn)行登錄,后臺可以允許管理員和用戶登錄,再填入選擇相應(yīng)的角色的用戶名和密碼,根據(jù)所選的角色不同,跳轉(zhuǎn)到對應(yīng)的網(wǎng)頁頁面,再做出相應(yīng)反饋。其時序圖如圖4-3所示。圖4-3用戶登錄時序圖4.2.2管理員功能模塊設(shè)計后臺管理員在管理系統(tǒng)信息時,管理員功能模塊扮演著關(guān)鍵的角色。該系統(tǒng)主要涵蓋了角色權(quán)限的管理、用戶賬戶的維護(hù)、訂單信息的管理、新聞內(nèi)容的管理以及留言信息的管理等多項功能。(1)角色權(quán)限管理角色權(quán)限管理是旅游項目管理系統(tǒng)的基本功能,當(dāng)管理員進(jìn)入管理系統(tǒng)的后端并選擇管理用戶時,系統(tǒng)會自動跳轉(zhuǎn)到用戶列表中,允許管理員更改用戶的權(quán)限。其時序圖如圖4-4所示。圖4-4角色權(quán)限管理時序圖(2)用戶賬號管理用戶賬號管理是旅游項目管理系統(tǒng)的基本功能,當(dāng)管理員在系統(tǒng)的管理后臺選中進(jìn)行賬戶管理,系統(tǒng)便會自動切換至賬號列表中,管理員有權(quán)對用戶賬號進(jìn)行各種功能調(diào)整,如添加、更改、瀏覽、刪除或批量刪除。其賬號修改時序圖如圖4-5所示。圖4-5用戶賬號管理時序圖(3)訂單信息管理在旅游項目管理系統(tǒng)中,訂單信息管理被認(rèn)為是核心功能,當(dāng)管理員進(jìn)入管理系統(tǒng)的后端后,他們會點擊進(jìn)行訂單信息的管理,系統(tǒng)即會跳轉(zhuǎn)到訂單列表,管理員有權(quán)對訂單信息進(jìn)行各種功能調(diào)整,如添加、更改、瀏覽、刪除或批量刪除。其訂單修改時序圖如圖4-6所示。圖4-6訂單信息管理時序圖(4)新聞管理新聞管理是旅游項目管理系統(tǒng)的基本功能,當(dāng)管理員在系統(tǒng)的管理后臺選中進(jìn)行新聞管理,系統(tǒng)便會自動切換至新聞消息列表中,管理員有權(quán)對新聞進(jìn)行各種功能調(diào)整,如添加、更改、瀏覽、刪除或批量刪除。其新聞刪除時序圖如圖4-7所示。圖4-7新聞管理時序圖(5)留言信息管理留言信息管理是旅游項目管理系統(tǒng)的基本功能,當(dāng)管理員在系統(tǒng)的管理后臺選中進(jìn)行留言信息管理,系統(tǒng)即會切換到留言列表,管理員能夠?qū)τ脩籼峤坏牧粞宰龀龈?、瀏覽、刪除或批量移除操作。其留言回復(fù)時序圖如圖4-8所示。圖4-8留言信息管理時序圖4.2.3普通用戶功能模塊設(shè)計普通用戶功能模塊構(gòu)成了用戶在查找與個人相關(guān)的后臺信息時的一個關(guān)鍵部分。主要功能包括在線留言、查詢訂單信息、支付訂單等(1)在線留言在線留言是用戶對旅游項目管理系統(tǒng)提出改進(jìn)的留言措施,普通用戶在進(jìn)入系統(tǒng)之后點擊在線留言,系統(tǒng)立即切換到網(wǎng)上留言頁面,用戶可以對系統(tǒng)進(jìn)行在線留言,等待管理員的回復(fù)。其在線留言時序圖如圖4-9所示。圖4-9在線留言時序圖(2)訂單信息查詢訂單信息查詢模塊對于用戶在管理其個人后臺信息方面起著至關(guān)重要的作用。普通用戶進(jìn)入系統(tǒng)之后點擊訂單信息,系統(tǒng)立即切換到訂單信息頁面,用戶能夠查看自己的訂單,查看訂單詳情。其訂單查詢時序圖如圖4-10所示。圖4-10訂單信息查詢時序圖(3)訂單支付訂單支付模塊是用戶對用戶個人提交的旅游線路訂單進(jìn)行支付的一個功能。普通用戶在進(jìn)入系統(tǒng)之后點擊訂單信息,系統(tǒng)立即切換到訂單信息頁面,用戶能夠支付自己的訂單。其訂單支付時序圖如圖4-11所示。圖4-11訂單支付時序圖4.3數(shù)據(jù)庫設(shè)計4.3.1數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計在構(gòu)建數(shù)據(jù)庫的概念框架時,我們需要把需求轉(zhuǎn)變?yōu)樾畔⒌男问?,而所有?shù)據(jù)模型都是基于這樣的概念框架來設(shè)計的。在本節(jié)中,我們打算采用E-R圖來闡述概念模型。關(guān)于旅游項目的管理系統(tǒng),以下是其核心實體的詳細(xì)信息:(1)由于此系統(tǒng)客戶端是基于網(wǎng)頁前端的形式,使用戶狀態(tài)token的創(chuàng)建和校驗更為便捷,,用戶信息需要包含名字,性別,年齡,電話號碼,頭像等信息。用戶信息實體圖如圖4-12所示:圖4-12用戶信息實體屬性圖(2)景區(qū)信息包含序號,價格,開放時間,景區(qū)名稱,地址,簡介等信息。景點信息實體圖如圖4-13所示:圖4-13景點信息實體屬性圖(3)美食信息包含序號,美食名稱,地圖和添加時間等信息。美食信息實體圖如圖4-14所示:圖4-14美食信息實體屬性圖(4)新聞信息包含序號,點擊率,分類和添加時間等信息。新聞信息實體圖如圖4-15所示:圖4-15新聞信息實體屬性圖(5)旅游線路信息包含序號,出發(fā)地,終點,價格,瀏覽量,線路簡介等信息。旅游線路信息實體圖如圖4-16所示:圖4-16旅游線路信息實體屬性圖(6)預(yù)訂訂單信息需要包含序號,線路編號,預(yù)訂用戶,預(yù)訂狀態(tài),支付狀態(tài),線路名稱,起點,終點,訂單號,等信息。預(yù)訂訂單信息實體圖如圖4-17所示:圖4-17預(yù)訂訂單信息實體屬性圖(7)留言信息需要包含留言標(biāo)題,留言電話,留言內(nèi)容,回復(fù)內(nèi)容等信息。所以留言信息實體圖如圖4-18所示:圖4-18留言信息實體屬性圖旅游項目管理系統(tǒng)的實體聯(lián)系模型E-R圖由上述的關(guān)鍵實體、實體之間的關(guān)聯(lián)所決定,旅游項目管理系統(tǒng)的總體E-R圖如下圖4-19所示:圖4-19系統(tǒng)總體E-R圖4.3.2數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(1)數(shù)據(jù)庫方面針對系統(tǒng)的注冊與登錄功能建立了用戶信息表,表字段設(shè)計如表4-1所示:表4-1用戶信息表字段名字段中文名字段類型是否必填備注id(主鍵)int是主鍵yonghuming用戶名varchar(50)是mima密碼varchar(50)是xingming姓名varchar(50)否xingbie性別varchar(255)否shouji手機(jī)varchar(50)否youxiang郵箱varchar(50)是shenfenzheng身份證varchar(50)是touxiang頭像varchar(255)否addtime添加時間timestamp是(2)在這個系統(tǒng)里,景點的詳細(xì)信息主要涵蓋了景點的名稱、所在地區(qū)、相關(guān)圖片、開放的時間以及具體地址等。為了讓游客更方便地查閱這些信息,管理員使用管理功能操作頁面相關(guān)信息,因此設(shè)計了了景點信息表,表字段設(shè)計如表4-2所示:表4-2景點信息表字段名字段中文名字段類型是否必填備注id景點編號int是主鍵jingdianbianhao景點名稱varchar(255)是jingdianmingcheng地區(qū)int是外鍵suoshudiqu圖片text否tupian開放時間varchar(255)否kaifangshijian附近美食text否fujinmeishi地址varchar(255)否dizhi價格decimal(18,2)是piaojia瀏覽量int否liulanliang創(chuàng)建時間timestamp否miaoshu簡介varchar(255)否addtime添加時間varchar(255)是(3)在此系統(tǒng)中,地區(qū)美食信息主要包括美食名稱、附近景點、分類、價格以及美食簡介等信息,地區(qū)美食信息是針對景區(qū)以及美食查看功能而設(shè)計了,其目的是能夠記錄并且快速查看該地區(qū)的美食信息,因此設(shè)計了了景點信息表,表字段設(shè)計如表4-3所示:表4-3地區(qū)美食信息表字段名字段中文名字段類型是否必填備注id(主鍵)int是主鍵diqumingcheng地區(qū)名稱varchar(255)是addtime添加時間timestamp否(4)用戶或者游客進(jìn)入系統(tǒng)后即可瀏覽查看相關(guān)旅游新聞,該功能主要涉及到的數(shù)據(jù)表單是新聞信息表,該表字段設(shè)計如表4-4所示:表4-4新聞信息表字段名字段中文名字段類型是否必填備注id(主鍵)字段類型是主鍵biaoti標(biāo)題int是fenlei分類varchar(255)是外鍵tupian圖片int否tianjiaren添加人varchar(255)是dianjilv點擊率varchar(50)否neirong內(nèi)容int否addtime添加時間longtext否(5)用戶通過旅游信息管理系統(tǒng)查看并獲取到相關(guān)的旅游線路信息,該信息數(shù)據(jù)主要包括線路名稱、價格、出發(fā)地、終點以及創(chuàng)建時間等信息,為了將旅游線路信息進(jìn)行存儲,因此針對旅游線路功能設(shè)計旅游線路信息表,表字段設(shè)計如表4-5所示:表4-5旅游線路信息表字段名字段中文名字段類型是否必填備注id(主鍵)int是主鍵xianlubianhao線路編號varchar(50)是xianlumingcheng線路名稱varchar(255)否tupian圖片text是chufadi出發(fā)地varchar(255)否tujingdi途經(jīng)地varchar(255)是zhongdian終點varchar(255)是jiage價格decimal(18,2)否liulanliang瀏覽量int否xianlutese線路特色longtext否xianlujianjie線路簡介longtext否addtime添加時間timestamp是續(xù)表4-5旅游線路信息表(6)用戶通過旅游信息管理系統(tǒng)查看并獲取到相關(guān)的旅游信息后,系統(tǒng)會給出對應(yīng)的旅游路線,用戶只需下單即可,該信息數(shù)據(jù)主要包括線路編號、線路名稱、價格、訂單號、預(yù)訂人姓名以及聯(lián)系方式等信息,為了將用戶下單的線路信息進(jìn)行記錄存儲,因此針對線路訂單功能建立線路訂單信息表,表字段設(shè)計如表4-6所示:表4-6線路訂單信息表字段名字段中文名字段類型是否必填備注id(主鍵)int是主鍵lvyouxianluid旅游線路idint是外鍵xianlubianhao線路編號varchar(50)是xianlumingcheng線路名稱varchar(255)是chufadi出發(fā)地varchar(255)是外鍵tujingdi途經(jīng)地varchar(255)否zhongdian終點varchar(255)是jiage價格decimal(18,2)是dingdanhao訂單號varchar(50)是yudingshijian預(yù)訂時間varchar(25)是yudingrenxingming預(yù)訂人姓名varchar(50)否lianxifangshi聯(lián)系方式varchar(50)是zhuangtai狀態(tài)varchar(50)是beizhu備注text是yudingren預(yù)訂人varchar(50)是addtime添加時間timestamp是iszf是否支付varchar(10)是(7)在該系統(tǒng)中,用戶除了可以查看景點、美食以及旅游新聞等信息外,還可以在頁面下方進(jìn)行留言,該信息數(shù)據(jù)涵蓋了姓名、電話號碼、留言的具體內(nèi)容、留言人以及管理員或普通用戶回復(fù)的具體內(nèi)容等信息。針對留言功能,因此設(shè)計了留言信息表,表字段設(shè)計如表4-7所示:表4-7留言信息表字段名字段中文名字段類型是否必填備注id(主鍵)int是主鍵xingming姓名varchar(50)是lianxidianhua聯(lián)系電話varchar(50)是liuyanneirong留言內(nèi)容text否liuyanren留言人varchar(50)否huifuneirong回復(fù)內(nèi)容text否addtime添加時間timestamp否

第5章系統(tǒng)實現(xiàn)5.1主頁面模塊實現(xiàn)5.1.1首頁網(wǎng)頁實現(xiàn)啟動項目之后,默認(rèn)訪問首頁網(wǎng)站。通過IndexController類訪問IndexService類里面的getIndexInfo()方法來獲取人氣景點、地方美食、旅游線路、旅游咨詢的數(shù)據(jù)信息,將獲取到的數(shù)據(jù)封裝成JSON返回給前端頁面。前端通過ajax請求來收集數(shù)據(jù),并將其渲染到前端的頁面上。詳細(xì)實現(xiàn)流程如圖5-1所示。圖5-1首頁實現(xiàn)狀態(tài)圖圖5-2首頁導(dǎo)航欄界面圖5-3首頁人氣景點界面圖5-4首頁地方美食界面圖5-5首頁旅游線路界面5.1.2旅游新聞頁面實現(xiàn)點擊首頁導(dǎo)航欄的旅游新聞一欄,系統(tǒng)通過navigateTo()方法跳轉(zhuǎn)到新聞頁面部分,通過getNewsList()方法向服務(wù)器發(fā)起網(wǎng)頁請求,服務(wù)器調(diào)用NewsService類查詢?nèi)啃侣剶?shù)據(jù),最后通過NewsController將新聞數(shù)據(jù)返回給前端,把收集到的信息展示到前端的網(wǎng)頁上,跳轉(zhuǎn)進(jìn)入旅游新聞頁,詳細(xì)實現(xiàn)流程如圖5-6所示。用戶使用關(guān)鍵字來查找新聞標(biāo)題,并可以通過調(diào)用getNewsList()方法,然后將關(guān)鍵字傳輸?shù)絥ame,作為數(shù)據(jù)接口的查詢參數(shù);用戶或許可以通過點擊新聞列表中的條目,并利用navigateTo()方法帶著新聞id來訪問getNewsInfo()方法,從而得到這篇新聞的所有信息。當(dāng)用戶點擊進(jìn)入新聞詳細(xì)頁面后,后端會調(diào)用getNewsCount()方法獲取該篇新聞的點擊量,在前端成功得到數(shù)據(jù)之后,它會對訪問量字段的值進(jìn)行加一處理,并隨后把這個訪問量字段發(fā)送至后端,保存在數(shù)據(jù)庫中。也可以選擇分類標(biāo)簽比如全部、站內(nèi)新聞和行業(yè)咨詢,依照所選定分類的區(qū)別,數(shù)據(jù)接口的查詢參數(shù)是調(diào)用getNewList()方法引入type,達(dá)到顯示不同新聞的效果。并且可以根據(jù)新聞的標(biāo)題,來具體搜索出對應(yīng)的新聞。圖5-6新聞頁面實現(xiàn)狀態(tài)圖圖5-7新聞信息界面圖5-8新聞詳情界面5.1.3景區(qū)信息頁面實現(xiàn)點擊首頁導(dǎo)航欄的景區(qū)信息一欄,系統(tǒng)通過navigateTo()方法跳轉(zhuǎn)到景區(qū)信息頁面部分。通過getSceneList()方法向服務(wù)器發(fā)起網(wǎng)頁請求,服務(wù)器利用SceneService類來檢索所有的景區(qū)信息。最后通過SceneController類將景區(qū)數(shù)據(jù)返回給前端,VUE把收集到的信息展示到前端的網(wǎng)頁上,跳轉(zhuǎn)進(jìn)入景區(qū)信息頁。詳細(xì)實現(xiàn)流程如圖5-9所示。進(jìn)入到頁面中,用戶可以選擇分類標(biāo)簽比如全部、本地、境內(nèi)和境外,根據(jù)所選擇分類的不同,數(shù)據(jù)接口的查詢參數(shù)是調(diào)用getSceneList()方法引入type,達(dá)到不同的新聞顯示效果。圖5-9景區(qū)信息頁面實現(xiàn)狀態(tài)圖圖5-10景點列表頁面用戶點擊某個景點列表項,將景點id調(diào)用向服務(wù)器發(fā)起網(wǎng)絡(luò)請求,服務(wù)器會通過SpotCountController類通過SpotCountService類當(dāng)中的getSpotCount()方法,實現(xiàn)景點id的具體數(shù)據(jù)的傳輸,該方法會返回景點點擊量數(shù)據(jù)。詳細(xì)實現(xiàn)流程如圖5-11所示。當(dāng)用戶點擊進(jìn)入新聞詳細(xì)頁面后,前端會調(diào)用一次頁面數(shù)據(jù)接口,系統(tǒng)判定為景點信息游覽一次,在前端成功獲取數(shù)據(jù)之后,它會對訪問量字段的值進(jìn)行加一處理,并隨后把這個訪問量字段傳遞給后端,儲存在數(shù)據(jù)庫中。通過navigateTo()方法攜帶景點id調(diào)用getSpotInfo()方法,獲取該景點的詳細(xì)數(shù)據(jù);用戶收藏該景點詳情時,系統(tǒng)通過addCollect()方法將參數(shù)景區(qū)id發(fā)送給服務(wù)器,服務(wù)器通過CollectController類接收并解決數(shù)據(jù),數(shù)據(jù)表中收藏表會增加相應(yīng)的記錄;圖5-11獲取景區(qū)點擊量活動圖圖5-12景點詳情界面5.1.4美食信息頁面實現(xiàn)點擊美食信息一欄,系統(tǒng)調(diào)用navigateTo()方法將界面切換至顯示美食信息界面。通過getFoodList()方法向服務(wù)器發(fā)起網(wǎng)頁請求,服務(wù)器調(diào)用FoodController類查詢?nèi)棵朗硵?shù)據(jù),最后通過FoodService類將地方美食數(shù)據(jù)返回給FoodController類,它將JSON格式數(shù)據(jù)返回給前端。詳細(xì)實現(xiàn)流程如圖5-13所示。把收集到的信息展示到前端的網(wǎng)頁上,跳轉(zhuǎn)進(jìn)入景區(qū)信息頁。進(jìn)入到頁面中,用戶可以選擇分類標(biāo)簽比如全部、川菜、粵菜、西餐、中餐和滬菜等進(jìn)行篩選,根據(jù)所選擇分類的不同,數(shù)據(jù)接口的查詢參數(shù)是調(diào)用getFoodList()方法引入type,達(dá)到不同的美食顯示效果。圖5-13美食信息頁面實現(xiàn)活動圖圖5-14美食列表頁面用戶點擊某個美食列表項,系統(tǒng)通過getFoodCount()方法將美食id發(fā)送至服務(wù)器,并通過FoodCountController類將游覽量傳遞,當(dāng)用戶點擊進(jìn)入美食詳細(xì)頁面后,前端會調(diào)用一次頁面數(shù)據(jù)接口,在前端成功得到數(shù)據(jù)之后,它會對訪問量字段的值進(jìn)行加一處理,并隨后把這個訪問量字段發(fā)送至后端,保存在數(shù)據(jù)庫中。數(shù)據(jù)接口的查詢參數(shù)是調(diào)用getFoodInfo()方法引入type,獲取該美食的詳細(xì)數(shù)據(jù);詳細(xì)界面效果如圖5-15所示。圖5-15美食詳情頁面5.2用戶模塊實現(xiàn)5.2.1用戶注冊模塊實現(xiàn)用戶可以通過訪問首頁的菜單欄來訪問注冊界面。在用戶的注冊界面里,用戶按照要求填入系統(tǒng)所需要的賬號、密碼、手機(jī)號碼、電子郵箱、身份證明和頭像等詳細(xì)信息,從而完成用戶的注冊過程。用戶名、密碼和姓名是必須填寫的信息,而其他的詳細(xì)資料則是可以選擇填寫的。最后點擊提交按鈕。服務(wù)器通過使用UserController類將用戶輸入的username與數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行對比。當(dāng)數(shù)據(jù)庫中對比不到相同結(jié)果時,通過addUserCount()方法將用戶輸入的username存儲至數(shù)據(jù)庫中,反之則注冊失敗。圖5-16用戶注冊實現(xiàn)活動圖圖5-17用戶注冊界面5.2.2用戶登錄模塊實現(xiàn)點擊登錄按鈕進(jìn)入登錄頁面。頁面切換至登錄界面時,用戶依次填入用戶名、密碼、驗證碼,并選擇身份種類,管理員身份是默認(rèn)類別。用戶完成填入之后,點擊頁面中登錄系統(tǒng)的按鈕,系統(tǒng)根據(jù)傳入的id號,調(diào)用checkUserStatus()方法判斷當(dāng)前用戶是管理員還是用戶,然后根據(jù)身份的不同,調(diào)用checkUser()方法去不同的表中判斷賬號密碼是否正確。詳細(xì)實現(xiàn)流程如圖5-18所示。當(dāng)用戶的賬戶密碼被正確輸入時,系統(tǒng)將成功信息發(fā)送至前端,并且將用戶信息加密為token返回給前端。圖5-18用戶登錄實現(xiàn)活動圖圖5-19用戶登錄界面5.2.3用戶留言模塊實現(xiàn)用戶成功登錄之后,點擊在線留言模塊按鈕將界面切換至用戶留言界面。系統(tǒng)會調(diào)用getUserName()方法將當(dāng)前用戶名返回給前端頁面(例如當(dāng)前用戶名就叫abc),默認(rèn)顯示到留言人輸入框。用戶輸入完成姓名、聯(lián)系電話、留言內(nèi)容之后,點擊提交,系統(tǒng)通過MessageController類去調(diào)用saveMessageInfo()方法,將留言內(nèi)容保存到數(shù)據(jù)庫中。圖5-20用戶在線留言界面5.2.4用戶線路預(yù)訂模塊實現(xiàn)用戶成功登錄之后,點擊在線留言模塊按鈕將界面切換至線路預(yù)定訂單界面。用戶點擊旅游線路列表項,通過navigateTo()方法,獲取旅游路線的具體信息;攜帶線路id調(diào)用geRouteDetail()方法,獲取該旅行線路的詳細(xì)數(shù)據(jù)。用戶在線路詳情界面點擊預(yù)訂按鈕,切換到添加預(yù)訂訂單界面,輸入完整的預(yù)訂時間、預(yù)訂人姓名、聯(lián)系方式和備注等信息,點擊提交按鈕,后臺會調(diào)用createRouteOrder()方法,把線路編號id、訂單號以及聯(lián)系方式等相關(guān)信息發(fā)送至后臺服務(wù)器,服務(wù)器會在后臺生成一個待支付的訂單信息。圖5-21旅行線路預(yù)訂訂單界面5.2.5用戶支付管理模塊實現(xiàn)用戶在首頁點擊個人中心,路由跳轉(zhuǎn)進(jìn)入到后臺管理模塊。點擊線路預(yù)訂管理下面的路線預(yù)訂查詢選項卡,系統(tǒng)通過navigateTo()方法跳轉(zhuǎn)到訂單信息頁面部分。系統(tǒng)就會將當(dāng)前用戶名username作為參數(shù),傳入到getListOrder()方法中。系統(tǒng)來篩選出對應(yīng)用戶的訂單信息,然后后端返回用戶訂單信息集合給前端,經(jīng)過VUE數(shù)據(jù)處理之后渲染到前端頁面。圖5-22路線預(yù)訂訂單查詢頁面如果有未支付的訂單,則點擊該訂單的支付按鈕,服務(wù)器就會在RouteOrderController類處理下單支付業(yè)務(wù)邏輯。在具體的操作過程中,服務(wù)器將在RouteOrderController中調(diào)用PayController基類,這個基類的主要功能是處理常規(guī)的支付邏輯。圖5-23模擬支付界面5.3后臺管理模塊實現(xiàn)5.3.1賬號管理模塊實現(xiàn)當(dāng)管理員登錄賬戶時,進(jìn)入系統(tǒng)的后端界面。賬戶管理模塊是由四個主要部分構(gòu)成的,其中包括添加新的賬戶:管理員可以添加新的賬號,并設(shè)置其初始密碼、所屬角色等信息。在賬戶添加過程中,系統(tǒng)會把用戶輸入的各種信息作為輸入?yún)?shù),并通過addUserCount方法將請求傳遞至服務(wù)器。然后,系統(tǒng)會將用戶名如username、密碼password、姓名name、性別gender、手機(jī)phone以及身份證IDCard發(fā)送到服務(wù)器,服務(wù)器將會通過調(diào)用UserController類返回處理功能以增強(qiáng)賬號邏輯,并在數(shù)據(jù)庫表里添加相應(yīng)的新用戶;編輯賬號信息:管理員能夠編輯現(xiàn)存賬號的信息,包括修改密碼、更新所屬角色等操作。其中修改密碼操作,系統(tǒng)先獲取到前端確認(rèn)修改的密碼,然后使用updatePassword()方法將網(wǎng)絡(luò)請求發(fā)送至服務(wù)器,服務(wù)器將通過使用UserController類處理修改密碼的功能,數(shù)據(jù)庫中會有對應(yīng)的修改;刪除賬號:管理員可以刪除不再需要的賬號,以保持系統(tǒng)賬號信息的整潔和安全。其中刪除賬號操作,系統(tǒng)會攜帶參數(shù)用戶名username調(diào)用deleteUserCount()方法發(fā)起請求,服務(wù)器將通過調(diào)用UserController類處理刪除賬號邏輯,并在數(shù)據(jù)庫表里刪除相應(yīng)的用戶;角色權(quán)限設(shè)置:管理員可以設(shè)置各種角色的權(quán)限信息,例如添加、修改、刪除賬號的權(quán)限,以確保賬號信息和系統(tǒng)數(shù)據(jù)的安全和保密性。管理員能夠根據(jù)用戶名、姓名等信息來搜尋出對應(yīng)用戶。圖5-24賬號管理界面5.3.2景點信息管理模塊實現(xiàn)當(dāng)管理員登錄賬戶時,進(jìn)入系統(tǒng)的后端界面。景點信息管理分為兩大類,一是實現(xiàn)對景點信息的添加,添加要輸入景點名稱、所屬地區(qū)、圖片、開發(fā)時間、景區(qū)地址和票價等信息,完成輸入并點擊提交按鈕。系統(tǒng)調(diào)用addSceneInfo()方法向服務(wù)器發(fā)起網(wǎng)絡(luò)請求,將參數(shù)scenicID景區(qū)編號、ScenicName景區(qū)名稱、所屬地區(qū)region、圖片picture以及地址address發(fā)送到服務(wù)器。服務(wù)器會調(diào)用SceneController類返回增加景區(qū)信息邏輯,并在數(shù)據(jù)庫表里添加相應(yīng)的新景區(qū)信息;其次,它具備了對景點信息進(jìn)行更改、查找或刪除的功能。其中景點信息查詢功能,將用戶輸入的查詢name作為參數(shù)傳入到getListScene()方法中,再由SceneController類返回對應(yīng)的景點信息集合給前端頁面,由VUE將數(shù)據(jù)渲染到前端頁面,顯示給用戶看。圖5-25景點信息添加界面5.3.3地方美食管理模塊實現(xiàn)當(dāng)管理員登錄賬戶時,進(jìn)入系統(tǒng)的后端界面。。管理員需要查看地方的美食管理時,點擊相應(yīng)的模塊。地方美食管理模塊進(jìn)一步細(xì)分為美食分類的查詢和添加、地方美食添加和查詢這四個不同的功能模塊。在第一個模塊中,管理員添加的分類名稱后,點擊提交按鈕,后臺通過使用addFoodType()方法將網(wǎng)絡(luò)請求發(fā)送至服務(wù)器,將參數(shù)type分類發(fā)送到服務(wù)器。服務(wù)器通過使用FoodController類返回增加美食信息邏輯,并在數(shù)據(jù)庫表里添加相應(yīng)的新美食信息;美食分類查詢中,管理員輸入待查詢的分類名稱,點擊查詢。后臺就會調(diào)用getFoodList()方法并且將關(guān)鍵字賦值給name作為數(shù)據(jù)接口的查詢參數(shù),返回數(shù)據(jù)集合List給前端頁面;地方美食添加中,管理員輸入美食名稱、附近景點、分類、圖片、價格和簡介等信息,完成輸入后點擊提交。系統(tǒng)將通過addFoodInfo方法,把從前端傳輸過來的信息錄入到后端的服務(wù)器中。地方美食查詢中,根據(jù)前端傳來的參數(shù)id,攜帶美食編號調(diào)用getFoodList()方法,服務(wù)器調(diào)用FoodController類返回對應(yīng)數(shù)據(jù),通過Vue加載數(shù)據(jù)返回給前端頁面,顯示美食信息。圖5-26景點信息查詢界面5.3.4旅游線路管理模塊實現(xiàn)當(dāng)管理員登錄賬戶時,進(jìn)入系統(tǒng)的后端界面。管理員能夠點擊旅游路線管理功能。旅游線路管理功能里,細(xì)分為新增旅游路線和查看旅游路線的功能。當(dāng)進(jìn)行旅游線路的增加時,管理員必須按照要求填入所需增加的線路名字、圖片、出發(fā)地、途徑地、終點、價格和線路特色,點擊提交按鈕。后臺就會調(diào)用addRouteInfo()方法向服務(wù)器發(fā)起網(wǎng)絡(luò)請求,將name線路名稱、picture圖片、departure出發(fā)地、wayPoint途徑地、destination終點、price價格等參數(shù)發(fā)送到服務(wù)器,服務(wù)器就會調(diào)用RouterController類返回處理增加線路邏輯,數(shù)據(jù)庫也會增加相應(yīng)旅游線路信息。旅游線路查詢中,管理員需要輸入目標(biāo)分類的名字后,進(jìn)行相應(yīng)的搜索。系統(tǒng)的后端會自動調(diào)用getRouteList()函數(shù),并將這些關(guān)鍵字賦值給name作為數(shù)據(jù)接口查詢的關(guān)鍵參數(shù);RouterController類被服務(wù)器調(diào)用以提供相應(yīng)的數(shù)據(jù),通過Vue加載數(shù)據(jù)返回給前端頁面,顯示旅游線路的信息。管理員可以通過右邊的操作按鈕實現(xiàn)詳情、修改和刪除功能。圖5-27美食分類添加界面圖5-28美食分類查詢界面圖5-29地方美食添加界面圖5-30地方美食查詢界面5.3.5訂單信息管理模塊實現(xiàn)管理員在登錄賬戶時會進(jìn)入系統(tǒng)的后臺頁面。管理員選擇訂單信息管理工功能。其中旅游線路管理模塊有用戶預(yù)訂線路查詢。預(yù)訂線路查詢中,管理員可以閱覽全部預(yù)訂訂單以及訂單支付情況。對無效訂單進(jìn)行管理或刪除。圖5-31旅游線路添加界面第6章系統(tǒng)測試6.1系統(tǒng)測試目的與意義在系統(tǒng)開發(fā)周期內(nèi),進(jìn)行全面的系統(tǒng)測試絕對是至關(guān)重要且不可缺少的一個關(guān)鍵步驟。因此,這一步驟是確保系統(tǒng)穩(wěn)定運(yùn)行以及用戶能夠正常操作的最終環(huán)節(jié),整個系統(tǒng)的最終審核。在這個階段,需要保證其具有良好的可靠性和穩(wěn)定性。系統(tǒng)測試涵蓋了對系統(tǒng)設(shè)計、實施、結(jié)論進(jìn)行詳細(xì)地測試與驗證。測試這一步驟的主要目的是找出存在的漏洞,當(dāng)我們開發(fā)人員在完成功能的時候沒有考慮地很全面,但是一個小問題到了線上都會給用戶帶來損失,所以在測試與需求文檔對比后找出問題及時地進(jìn)行修復(fù),在上線給用戶使用之前將問題解決,給到用戶最好的使用體驗,給到用戶最滿意的體驗。6.2測試方法結(jié)合黑盒與白盒兩種系統(tǒng)測試方法,目的是通過各種測試手段來評估系統(tǒng)的所有功能模塊能否按照設(shè)想的方式運(yùn)行,以及其內(nèi)部構(gòu)造是否達(dá)到預(yù)定標(biāo)準(zhǔn)。其中黑盒測試主要用于對軟件系統(tǒng)進(jìn)行靜態(tài)分析,而白盒測試主要用于對系統(tǒng)進(jìn)行動態(tài)檢查。在進(jìn)行黑盒測試時,它主要關(guān)注程序的外部行為、測試接口以及驗證功能能否根據(jù)需求規(guī)格說明書的要求正常工作。與此同時,白盒測試進(jìn)入到系統(tǒng)的深處,對其邏輯架構(gòu)和代碼執(zhí)行進(jìn)行了詳細(xì)的審查,以確保程序內(nèi)部邏輯的準(zhǔn)確性和高質(zhì)量。通過這兩種測試方法的結(jié)合,能夠全面評估系統(tǒng)的功能性和可靠性,出于用戶的需求,來驗證輸入數(shù)據(jù)與輸出數(shù)據(jù)的相關(guān)性,并確保系統(tǒng)在內(nèi)部邏輯上的完備性。然而,需要注意的是,黑盒測試雖然直觀地體現(xiàn)了系統(tǒng)功能的實現(xiàn)情況,但有時可能無法發(fā)現(xiàn)外部特性設(shè)計缺陷或規(guī)格說明中的錯誤,而這正是白盒測試所擅長的。因此,在本次旅游信息管理系統(tǒng)項目中,一起使用了黑盒測試和白箱測試的測試方法。6.3黑盒測試6.3.1管理員登錄模塊測試測試流程:(1)當(dāng)程序啟動并進(jìn)入系統(tǒng)的首頁時,請輸入不正確的登錄賬戶和密碼;(2)點擊登錄按鈕;(3)修改為正確的登錄賬號和密碼;(4)點擊登按鈕錄。管理員登錄模塊測試用例表如表6-1所示:表6-1管理員登錄模塊測試用例表序號測試用例預(yù)期結(jié)果實際結(jié)果是否通過1用戶名:空密碼:空系統(tǒng)提示“請輸入用戶名和密碼”登錄失敗通過2用戶名:admin密碼:空系統(tǒng)提示“請輸入密碼”登錄失敗,請輸入密碼通過3用戶名:空密碼:123123系統(tǒng)提示“請輸入用戶名”登錄失敗,提示請輸入用戶名通過4用戶名:admin密碼:123456系統(tǒng)提示“未找到該用戶”登錄失敗通過5用戶名:admin密碼:123123登錄成功登錄成功通過6.3.2用戶線路預(yù)定模塊測試測試流程:(1)用戶或游客運(yùn)行程序進(jìn)入線路預(yù)定功能頁,進(jìn)行旅游線路的預(yù)定;(2)點擊提交按鈕;(3)輸入必要的參數(shù)信息;(4)點擊提交。用戶線路預(yù)定模塊測試用例表如表6-2所示:表6-2用戶線路預(yù)定模塊測試用例表序號測試用例預(yù)期結(jié)果實際結(jié)果是否通過1名稱:空其他:空系統(tǒng)提示“線路名稱不能為空”提交失敗,提示“線路名稱不能為空”通過2名稱:空其他:不為空系統(tǒng)提示“線路名稱不能為空”提交失敗,提示“線路名稱不能為空”通過3名稱:北京-新疆其他:空系統(tǒng)提示“請輸入用戶名”提交成功通過4名稱:北京-新疆其他:不為空系統(tǒng)提示“未找到該用戶”提交成功通過6.3.3景點信息管理模塊測試測試流程:(1)管理員角色運(yùn)行程序進(jìn)入景點信息管理頁,缺少必要的新增參數(shù)信息;(2)點擊確定按鈕;(3)按照要求填入信息;(4)點擊確定按鈕。景點信息管理模塊測試用例表如表6-3所示:表6-3景點信息管理模塊測試用例表序號測試用例預(yù)期結(jié)果實際結(jié)果是否通過1名稱:空地址:空簡介:空系統(tǒng)提示“景點名稱不能為空,景點地址不能為空,景點簡介不能為空提交失敗,提示“景點名稱不能為空,景點地址不能為空,景點簡介不能為空”通過2名稱:空地址:空簡介:這是一個地址系統(tǒng)提示“景點名稱不能為空,景點地址不能為空”提交失敗,提示“景點名稱不能為空,景點地址不能為空”通過3名稱:空地址:這是一個地址簡介:這是一個景點系統(tǒng)提示“景點名稱不能為空”提交失敗,提示“景點名稱不能為空”通過4名稱:景點地址:這是一個地址簡介:這是一個景點添加成功分配成功通過6.3.4用戶支付管理模塊測試測試流程:(1)當(dāng)用戶角色打開旅游管理系統(tǒng),未登錄;(2)選擇訂單及參數(shù);(3)注冊登錄上自己的賬號;(4)選擇預(yù)定線路及參數(shù)。(5)下單并支付用戶選購并下單模塊測試用例表如表6-4所示:表6-4用戶選購并下單測試用例表序號測試用例預(yù)期結(jié)果實際結(jié)果是否通過1登錄狀態(tài):未登錄線路:北京-新疆跳轉(zhuǎn)到登錄頁面,提示進(jìn)行登錄跳轉(zhuǎn)到登錄頁面,提示進(jìn)行登錄通過2登錄狀態(tài):登錄線路:北京-新疆跳轉(zhuǎn)到支付頁面,點擊訂單跳轉(zhuǎn)到支付頁跳轉(zhuǎn)到支付頁面,點擊訂單跳轉(zhuǎn)到訂支付頁通過6.4白盒測試6.4.1訂單狀態(tài)更新功能測試測試代碼:@ResponseBody@RequestMapping("/ticket")publicMap<String,Object>updateTicketStatus(@RequestPa

溫馨提示

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

評論

0/150

提交評論