基于web的在線速達(dá)外賣點(diǎn)餐系統(tǒng)設(shè)計(jì)_第1頁
基于web的在線速達(dá)外賣點(diǎn)餐系統(tǒng)設(shè)計(jì)_第2頁
基于web的在線速達(dá)外賣點(diǎn)餐系統(tǒng)設(shè)計(jì)_第3頁
基于web的在線速達(dá)外賣點(diǎn)餐系統(tǒng)設(shè)計(jì)_第4頁
基于web的在線速達(dá)外賣點(diǎn)餐系統(tǒng)設(shè)計(jì)_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

緒論國內(nèi)外發(fā)展現(xiàn)狀時(shí)代的車輪滾滾前進(jìn),發(fā)展從未停歇,伴隨著我們?nèi)粘I钣鷣碛?,人們的生活質(zhì)量蒸蒸日上,在不斷提高的同時(shí),和朋友的交流活動(dòng)也變得日益繁多。休閑時(shí)刻的聚會(huì)或者正式場合的聚餐,選在飯店、餐館或是任何地方都變得屢見不鮮。那些提供餐飲服務(wù)的場所在確保食品質(zhì)量和自身利潤能夠維持的前提下,同時(shí)也應(yīng)確保自身所提供的優(yōu)惠和服務(wù)也是優(yōu)質(zhì)的,并制定一套完整的標(biāo)準(zhǔn)與要求,不斷完善。因?yàn)槲覀兊目腿瞬粌H是為了一頓可以果腹或者精美絕倫的食物,在這種普通的交流休閑活動(dòng)中,他們更是會(huì)在潛移默化中考量一家飯店所提供的優(yōu)惠和服務(wù),并以此形成各家店之間的直接對比和自我標(biāo)準(zhǔn)。平臺(tái)的誕生得益于以上問題的產(chǎn)生,平臺(tái)的好處就是可以減少人工所帶來的成本以及服務(wù)員付出的運(yùn)動(dòng)量,利用網(wǎng)站實(shí)現(xiàn)點(diǎn)菜功能從而可以使顧客拿到手的商品價(jià)格比實(shí)體店消費(fèi)的價(jià)格更為低廉,實(shí)現(xiàn)物超所值、物美價(jià)廉的效果。并且線下實(shí)體店中使用的最多的就是紙質(zhì)菜單,習(xí)總書記曾說“綠水青山就是金山銀山”,從環(huán)保角度考量通過網(wǎng)站在線訂購食物,不必要的木質(zhì)資源浪費(fèi)就可以被減少或者避免,倡導(dǎo)環(huán)保的同時(shí)訂購食物的時(shí)間也被節(jié)省下來可以做其他事情。線上的訂購方便讓我們的顧客和用戶更為直觀的挑選自己想要的菜品,如果不知道想要吃什么還可以利用我們的大數(shù)據(jù)推送功能輔助我們的選擇,不僅增加了訂購的樂趣也能讓我們的訂購更加充滿針對性。各位還可以通過查看以前的評價(jià)篩選更好的店鋪。利用互聯(lián)網(wǎng)我們餐廳也可以對各自的菜單更換、更新進(jìn)行快速又便捷的操作,只需動(dòng)動(dòng)手就可以完成對內(nèi)容和商品介紹的豐富。目前,信息技術(shù)發(fā)展瞬息萬變,新技術(shù)層出不窮、日新月異,很多的餐飲業(yè)餐廳還是依賴和依靠著傳統(tǒng)的以線下的方式來進(jìn)行宣傳推廣和交流溝通的方式,這樣不可避免地會(huì)使其自身陷入與時(shí)代脫節(jié)的困境中。在網(wǎng)絡(luò)餐飲業(yè)還在初期形成階段的當(dāng)下,跟上時(shí)代的步伐是時(shí)代的潮流亦是大勢所趨,網(wǎng)上點(diǎn)餐業(yè)務(wù)這種全新時(shí)尚的方式會(huì)將與時(shí)俱進(jìn)逐漸融入我們的日常生活并且成為我們生活中不可缺少的一環(huán)。課題的研究背景各種風(fēng)險(xiǎn)投資商對互聯(lián)網(wǎng)這個(gè)新興產(chǎn)業(yè)技術(shù)的熱情讓網(wǎng)上訂購的迅速崛起,信息化的蓬勃發(fā)展也讓大型餐飲服務(wù)業(yè)對于不斷崛起和興起的互聯(lián)網(wǎng)信息行業(yè)更為的重視。同時(shí),傳統(tǒng)行業(yè)的轉(zhuǎn)變也使得不少新興互聯(lián)網(wǎng)公司發(fā)生了翻天覆地的變化,他們開始將大量資金進(jìn)駐網(wǎng)上的在線訂餐點(diǎn)購服務(wù),讓餐飲行業(yè)的巨頭們都燃起了激情,隨著他們將新技術(shù)涉足融合進(jìn)餐飲行業(yè),面向餐飲為主的第三方平臺(tái)和APP應(yīng)用開始涉獵主要市場,讓線上平臺(tái)點(diǎn)餐這種生活方式迅速崛起。餐飲業(yè)如果還在單純的使用傳統(tǒng)的手工管理,那么將會(huì)在現(xiàn)代大數(shù)據(jù)信息與網(wǎng)絡(luò)技術(shù)結(jié)合的當(dāng)下,變得已經(jīng)日益激烈的競爭中難以立足。隨著互聯(lián)網(wǎng)的興起,信息技術(shù)市場的商業(yè)化競爭也促使各種運(yùn)營管理方式要更向電子化管理的方式看齊,電子商務(wù)已經(jīng)亦步亦趨地融入并且深入到了人們的日常生活中。手工管理的方式不僅會(huì)導(dǎo)致我們的餐廳在人工方面的成本高居不下,如果依舊冥頑不靈在日常的管理中采取常規(guī)普遍的管理方式還會(huì)導(dǎo)致逐漸脫離激烈的市場環(huán)境直至被市場所淘汰。我們一直講究高效的管理方式和低廉的管理成本,在一些居民住宅區(qū)、學(xué)校、大型商場附近的所處于“競爭風(fēng)暴”地帶的餐飲行業(yè)尤其是要重視發(fā)展和運(yùn)用先進(jìn)的運(yùn)營管理方式,如果拋棄現(xiàn)代化的管理手段,或者對于此不屑一顧將難以在激烈的競爭中保全自身,更不要提在行業(yè)中立足。課題的研究意義全面脫貧攻堅(jiān)已經(jīng)初步告一段落,但是面對人民日益增長的對于生活質(zhì)量的要求和需求不斷提高,一日三餐中如何均衡營養(yǎng),如何在保證果腹的情況下還能更有質(zhì)量和更為精致,營養(yǎng)搭配的要求不容小覷。根據(jù)當(dāng)前人民們紛繁復(fù)雜的點(diǎn)菜需求,互聯(lián)網(wǎng)餐飲在餐飲行業(yè)中的地位節(jié)節(jié)攀升變得越來越重要,對于當(dāng)前信息技術(shù)化的時(shí)代,面對緊湊的上班時(shí)間和快節(jié)奏的現(xiàn)代生活,用戶要在短時(shí)間內(nèi)既滿足進(jìn)食需求又滿足身體所需的各項(xiàng)營養(yǎng)元素,互聯(lián)網(wǎng)餐飲的優(yōu)勢盡數(shù)體現(xiàn)也必將得到更好的發(fā)展。不僅是我們用戶有更多的需求,我們的商家在高額的房地產(chǎn)附加值的當(dāng)今,利用互聯(lián)網(wǎng)在網(wǎng)絡(luò)上進(jìn)行銷售也可以更大程度減少房地產(chǎn)的需求,以及快速消耗庫存。對于吃飯時(shí)間非常緊促的各類用戶,我們平臺(tái)利用大數(shù)據(jù)來分析他們的各項(xiàng)需求以此來為他們進(jìn)行服務(wù)與推薦,讓他們可以在短時(shí)間內(nèi)就找到適合自己的食品,滿足個(gè)人需求,并且我們平臺(tái)能在用戶訂購餐后就立即對符合區(qū)域要求的客服進(jìn)行送餐到家的服務(wù)。相關(guān)技術(shù)簡介SSMSSM就是Spring+SpringMVC+MyBatis,框架集由Spring、MyBatis兩個(gè)開源框架整合而成,是一些經(jīng)典的java開源框架的簡稱,常作為數(shù)據(jù)源較簡單的web項(xiàng)目的框架。常規(guī)基礎(chǔ)的業(yè)務(wù)流程是:在前臺(tái)展示層,通過JSP頁面實(shí)現(xiàn)頁面的交互,通過HTTP協(xié)議HttpRequest和HttpResponse請求發(fā)送并返回結(jié)果,然后在Struts配置中匹配相應(yīng)對照的映射文件來執(zhí)行控制層的角色。Spring容器在業(yè)務(wù)層的邏輯處理層使用IoC容器來管理組成應(yīng)用程序的組件,這可以大大漸變我們?nèi)斯とゲ僮鲃?chuàng)建對象這一手動(dòng)的過程,同時(shí)并在業(yè)務(wù)實(shí)體控制層注入動(dòng)作操作。確保業(yè)務(wù)流程運(yùn)作的過程中有故障發(fā)生的情況時(shí),還有保證只專注于不簡便的大流量業(yè)務(wù)數(shù)據(jù)處理基礎(chǔ)上,還能運(yùn)行配套的支持?jǐn)?shù)據(jù)庫和相應(yīng)的業(yè)務(wù),我們可以對數(shù)據(jù)進(jìn)行合理的回滾操作,數(shù)據(jù)的完整性因此得以確保與保障。持久層依賴于MyBatis數(shù)據(jù)庫結(jié)構(gòu)結(jié)構(gòu)映射。它進(jìn)行處理操作的過程中會(huì)自動(dòng)生成JavaBeans,數(shù)據(jù)庫的操作離不開面向?qū)ο蟮乃季S,想讓數(shù)據(jù)庫響應(yīng)我們可以用JavaBeans組件來進(jìn)行操作。SSM集成理念我們用有條理和結(jié)構(gòu)化來形容當(dāng)Spring被管理時(shí),每一層都以特殊的方式被連接,總管于Spring同時(shí)各層之間都互相聯(lián)系,例如handler掉配service等可以相互調(diào)用,相互配合。1整合dao層:我們使用Mybatis+SpringBoot集成構(gòu)建Web應(yīng)用時(shí),在Application啟動(dòng)類上標(biāo)注一個(gè)@MapperScan注解通過spring管理mapper接口。Spring就會(huì)自動(dòng)在@MapperScan定義的basePackage中掃描Mapper接口并將對應(yīng)的bean注冊到ApplicationContext中,在spring中使用mapper的掃描器自動(dòng)掃描mapper接口進(jìn)行注冊。2集成服務(wù)層:前端控制器請求HandlerMapping查找Handler可以根據(jù)spring管理服務(wù)接口。使用xml配置、注解在spring配置文件中進(jìn)行查找配置服務(wù)接口:實(shí)施事務(wù)控制。3集成springmvc:這里不需要集成的理由是這個(gè)東西是一個(gè)spring模塊。數(shù)據(jù)庫選擇在諸如用戶注釋、評論之類的使用場景中,必須確保事務(wù)的一致性,因此使用關(guān)系數(shù)據(jù)庫比使用非關(guān)系數(shù)據(jù)庫更為合適。常見的關(guān)系數(shù)據(jù)庫系統(tǒng)是:MySql,Oracle,PostgreSQL,SQLite。數(shù)據(jù)庫的比較見圖1.1。圖1.SEQ圖表\*ARABIC\s11常見關(guān)系型數(shù)據(jù)庫系統(tǒng)比較縱觀上圖,由開源團(tuán)隊(duì)維護(hù)的MySql作為本外賣點(diǎn)餐系統(tǒng)的數(shù)據(jù)庫管理系統(tǒng)被當(dāng)作最后決定,此外我還會(huì)額外還將會(huì)新增加一些別的其他的功能,用來支持電腦本地的非阻塞操作和進(jìn)度報(bào)告,其他功能是除了API和命令行的其他功能。需求分析系統(tǒng)需求分析(1)商品管理:名稱,及想要輸入的商品的名稱;分類,為了方便顧客選擇挑選,使商品的擺放更加有組織、有條理,我們可以在這里將商品進(jìn)行歸類,將不同種類的商品歸入不同的類別中,讓客戶在訂購時(shí)更有針對性,更為的方便和便利。(2)商品類別管理:中國菜系種類繁多,集合五湖四海菜系的綜合性大飯店里面的菜品亂花漸欲迷人眼,其中不同派系的菜品如果不進(jìn)行很好的歸類會(huì)讓人一時(shí)間無從下手,為方便我們來自天南海北、來自全球各地的顧客可以更好地根據(jù)各自生活習(xí)慣挑選適合自己口味的菜肴,我們一定要將這些菜更有邏輯、更有條理的進(jìn)行分門別類。(3)訂單管理:我們此處的訂單管理不僅是要方便顧客一眼核對自己所點(diǎn)的菜品,方便顧客確認(rèn)多支付金額的正確與否,更為要緊的是方便我們的餐廳人員可以根據(jù)訂單內(nèi)容準(zhǔn)備菜品,更快的將菜品交付給我們的顧客。我們對于此會(huì)先將顧客挑選的商品集合在一起讓顧客確認(rèn),如果無誤后就會(huì)有最終的呈現(xiàn)。(4)用戶管理:用戶管理又分為用戶自我管理和平臺(tái)管理員管理,管理我們在系統(tǒng)中注冊過在數(shù)據(jù)庫中收集的用戶。在用戶自我管理中,這里是指我們平常使用網(wǎng)頁正常登錄的注冊操作,這部分是可以由我們的用戶隨意操作的,只是為了在用戶注冊過程中收集用戶的信息方便以后的各種核驗(yàn)或者作為憑證,可以看做是另類的“身份證”。在平臺(tái)管理員管理中,其實(shí)是有專門的管理員賬號密碼,只有用此賬號密碼登錄才能在后臺(tái)進(jìn)行一個(gè)用戶的登錄管理,管理員不能被普通的注冊,只有一個(gè)總管理的賬號進(jìn)行添加才可以,這也很大程度上保護(hù)了我們用戶的信息安全。(5)用戶登錄注冊:只有本平臺(tái)的會(huì)員才能正常使用本平臺(tái),我們將用戶填寫的基本信息收集起來,作為以后使用本平臺(tái)進(jìn)行一些點(diǎn)餐操作的通行證。(6)選擇商品:每道菜品配備精彩絕倫、精致美麗的圖片讓用戶根據(jù)圖片可以清晰直觀、主觀的選擇食客們自己心儀的餐品和食物。(7)智能推薦商品:根據(jù)用戶平時(shí)點(diǎn)餐時(shí)的喜好、收藏和點(diǎn)菜時(shí)的點(diǎn)擊進(jìn)行大數(shù)據(jù)收集分析,以輪播圖片的模式為我們的顧客智能推薦商品。(8)訂單派工:管理員可以對顧客已支付訂單進(jìn)行下單派工,選中騎手后,騎手界面就會(huì)顯示該訂單。業(yè)務(wù)流程分析業(yè)務(wù)流程圖主要是描述一個(gè)業(yè)務(wù)的大致過程,比如學(xué)生要去上學(xué),首先要整理好書包,然后再穿好校服,然后再從家里以各種方式前往學(xué)校,然后達(dá)到學(xué)校后開始上學(xué)。對我們平臺(tái)來說,就是描述使用此平臺(tái)的用戶首先需要登錄或是注冊,當(dāng)然登錄的前提是此前已經(jīng)注冊過相應(yīng)的賬戶,在登錄或是注冊完成后通過平臺(tái)來訂購食品,然后我們的餐廳通過平臺(tái)給出的信息為我們的用戶準(zhǔn)備食物,完成后安排騎手送出,送出到達(dá)后我們用戶可以對此次食品和服務(wù)進(jìn)行評論。在這里業(yè)務(wù)流程圖描述的也是完整的業(yè)務(wù)流程,以業(yè)務(wù)處理過程為中心,一般沒有數(shù)據(jù)的概念。業(yè)務(wù)流程圖這可以理解為是我們系統(tǒng)當(dāng)下作業(yè)順序和系統(tǒng)管理信息流向的圖表。這里被用來說是一種幫助我們網(wǎng)站分析人員來描述在網(wǎng)站管理運(yùn)行處理系統(tǒng)業(yè)務(wù)過程中通過業(yè)務(wù)流程圖的方式,來清晰的理清各個(gè)部分之間的關(guān)系,以便于我們發(fā)現(xiàn)被我們遺漏的部分,還有疏漏和缺陷也可以快速定位,及時(shí)修復(fù)漏洞。由于用一些簡潔明了的特定符號及連線表示某個(gè)具體某個(gè)系統(tǒng)運(yùn)行部分的處理過程,不但能夠幫助分析人員通過修改現(xiàn)下當(dāng)前系統(tǒng)中的不合理組件和找出業(yè)務(wù)流程中的不合理流向來優(yōu)化業(yè)務(wù)處理過程還能易用于一些非專業(yè)的人士來了解我們整個(gè)系統(tǒng)如何運(yùn)行。TFD基本上在優(yōu)化以及改進(jìn)業(yè)務(wù)流程的過程方面一般是先鏈接業(yè)務(wù)處理過程中的所有處理步驟,然后對此業(yè)務(wù)的實(shí)際處理步驟和過程繪制,將它們用圖片的形式聯(lián)系起來,是一種用圖形方式反映實(shí)際業(yè)務(wù)處理過程的“流水賬”。雖然這個(gè)“流水賬”的缺點(diǎn)是在面對一些專業(yè)性較強(qiáng)的方面時(shí)會(huì)稍顯遜色,但從體來說對于開發(fā)者和分析者理順和優(yōu)化業(yè)務(wù)過程是很有幫助的為系統(tǒng)的目標(biāo)開發(fā)打下夯實(shí)基礎(chǔ)。業(yè)務(wù)流程圖如圖2.1、2.2所示。圖2.1標(biāo)識符圖2.2業(yè)務(wù)流程圖數(shù)據(jù)流程分析數(shù)據(jù)流程圖(DataFlowDiagram,DFD/DataFlowChart):是一種從數(shù)據(jù)的角度來描述一個(gè)系統(tǒng)數(shù)據(jù)流程的主要工具,它用一組符號或者可以更具體地把流程畫出來以此來描述整個(gè)系統(tǒng)中信息的全貌。對數(shù)據(jù)流程圖的定義可采用分層的DFD來描述,可以分為頂層,中間層、底層,以此綜合地反應(yīng)復(fù)雜的軟件系統(tǒng)的信息在系統(tǒng)中流向和加工以及存儲(chǔ)。數(shù)據(jù)流程圖有兩個(gè)特征:抽象性和概括性。抽象是以數(shù)據(jù)流圖中的箭頭表示信息和數(shù)據(jù)存儲(chǔ)、流動(dòng)、使用以及加工情況等數(shù)據(jù)流情況,概括性是指把系統(tǒng)對各數(shù)據(jù)處理過程整體串聯(lián)起來表示一個(gè)程序以何種順序來進(jìn)行執(zhí)行處理。該網(wǎng)站系統(tǒng)的流程圖表述來了我們的平臺(tái)管理員是如何在登錄后端后進(jìn)行管理數(shù)據(jù)的操作的,在特殊的通道以特別的賬號登錄管理員賬號后,管理員可以進(jìn)行對商品類型、商品詳細(xì)信息、商品訂單、評論信息和用戶信息進(jìn)行管理。從流程圖可以看出,這樣使我們的管理更為的科學(xué)和簡便,不僅有益于我們平臺(tái)管理員的管理,以便于我們平臺(tái)對于管理員的監(jiān)管。此圖也展示出我們的用戶在使用該平臺(tái)時(shí),用戶可以注冊個(gè)人的用戶信息并對其進(jìn)行修改,進(jìn)入網(wǎng)頁進(jìn)行餐品瀏覽并且在挑選完畢后提交訂單進(jìn)行在線支付操作,事后對其進(jìn)行評論以及查看自己或別人的評論等操作。如圖2.3所示。圖2.3數(shù)據(jù)流程圖數(shù)據(jù)需求數(shù)據(jù)需求是指在完成需求分析時(shí)所需要的數(shù)據(jù)。在線速達(dá)外賣點(diǎn)餐系統(tǒng)的數(shù)據(jù)對象主要是:會(huì)員、產(chǎn)品、訂單、購物車和評論。如下面所示。(1)會(huì)員基本屬性:包含一些使用網(wǎng)站的用戶的基本信息,可以確保他們在使用過程中展現(xiàn)他們身份的唯一性,作用類似于“身份證”,其中的信息如圖2.4所示。圖2.4“會(huì)員”的實(shí)體屬性圖(2)商品屬性:包括網(wǎng)站所售賣商品的基本信息,讓我們的用戶在使用平臺(tái)進(jìn)行訂餐服務(wù)時(shí)可以清晰的了解每個(gè)產(chǎn)品的具體情況,方便他們根據(jù)具體情況進(jìn)行下單訂購,其中具體信息如圖2.5所示。圖2.5“商品”實(shí)體屬性圖(3)訂單屬性:包括訂單id、訂單號、價(jià)格、收貨人姓名、收貨地址、收貨電話、詳細(xì)地址、狀態(tài)、商品id、下單時(shí)間、商品數(shù)量、用戶名等,如圖2.6所示。圖2.6“訂單”實(shí)體屬性圖(4)購物車屬性:在用戶下單前的挑選階段,對于自己已經(jīng)挑選的餐品有更直觀的了解,同時(shí)是“一戶一車”,做到專人專車,還要保證好統(tǒng)計(jì),為直接下單付款打下基礎(chǔ),其中購物車具體屬性如圖2.7所示。圖2.7“購物車”實(shí)體屬性圖(5)評論屬性:在用戶訂餐完畢后,可以就此次訂購體驗(yàn)發(fā)表自己的直觀感受以便于其他用戶進(jìn)行參考,同時(shí)評論也要符合社會(huì)主義核心價(jià)值觀和區(qū)別正常評價(jià)或是刷好評、惡評之分。具體屬性內(nèi)容如圖2.8所示。圖2.8“評論”實(shí)體屬性圖每個(gè)事物之間都會(huì)存在一定的聯(lián)系,對于一個(gè)系統(tǒng)軟件或者平臺(tái)來說亦是如此,那么在本在線外賣速達(dá)軟件中也不例外。我們網(wǎng)站設(shè)置一名總管理來維護(hù)和管理我們的外賣平臺(tái),保證我們的會(huì)員的正常使用,同時(shí)保證每名會(huì)員擁有一個(gè)購物車來進(jìn)行訂購操作,訂購餐品可以是多樣的,可以重復(fù)無限次的進(jìn)行下單,每次訂購餐品的數(shù)量都是不限制的。所有以上所說的聯(lián)系如圖2.9所示。圖2.9各實(shí)體間聯(lián)系圖系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)系統(tǒng)的功能模塊一個(gè)好的系統(tǒng)由好幾個(gè)模塊組成,那么本在線速達(dá)外賣點(diǎn)餐系統(tǒng)主要分成三個(gè)模塊:騎手模塊、網(wǎng)站前臺(tái)模塊、管理員模塊。騎手模塊主要功能為騎手的工單處理;網(wǎng)站前臺(tái)模塊里又分為售后申請、加入購物車和收藏、訂單支付、評論留言等;管理員模塊的主要功能是權(quán)限管理、系統(tǒng)設(shè)置、用戶管理、咨詢管理、商品分類管理、留言管理、商品管理、商品庫存管理、訂單管理、售后管理、我的工單以及統(tǒng)計(jì)分析。所有包括的內(nèi)容如圖3.1所示。圖3.1系統(tǒng)功能模塊圖數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì)是基于系統(tǒng)的功能分析基礎(chǔ)上,在一個(gè)應(yīng)用環(huán)境中構(gòu)造最優(yōu)的數(shù)據(jù)庫模式,通過創(chuàng)建數(shù)據(jù)庫表來滿足我們平臺(tái)對于用戶的信息存儲(chǔ)和數(shù)據(jù)應(yīng)用處理的需求。在此數(shù)據(jù)庫中設(shè)計(jì)的設(shè)計(jì)內(nèi)容我們又分為用戶信息表、購物車信息表、訂單表、收貨地址表和評論表。我們在此數(shù)據(jù)表的設(shè)計(jì)上本著充分考慮數(shù)據(jù)庫優(yōu)化和效率的問題,同時(shí)考慮到用戶需求和后期數(shù)據(jù)維護(hù)的問題,所以每個(gè)數(shù)據(jù)庫表具體包含以下等信息。用戶信息表顧名思義為了便于我們的用戶在進(jìn)行注冊和登錄操作時(shí)的管理,在此表中放入用戶id、使用者name、登錄通行證、真實(shí)姓名、虛擬用戶名、電話號碼、密碼、備注、家庭地址、城市等個(gè)人信息。如表3.1所示。表3.1用戶信息表字段名數(shù)據(jù)類型長度是否為空idint(11)NOusernamevarchar(255)YESuserpasswordvarchar(255)YESrealnamevarchar(255)YESfilenamevarchar(255)YESidcardvarchar(255)YEStelvarchar(255)YESdelstatusvarchar(255)YESusertypevarchar(255)YESshstatusvarchar(255)YESnotetextYESroleidint(11)YESaddrvarchar(255)YESprovincevarchar(255)YEScityvarchar(255)YESdistrictvarchar(255)YES商品信息表每個(gè)菜品都是獨(dú)立的,為了區(qū)分同名的菜品所以特地設(shè)置了單獨(dú)的id,在此基礎(chǔ)上此表還包含了每個(gè)菜品不同的類型、菜品name、price、展示出來的照片、用戶對此的評價(jià)情況、庫存等信息。如表3.2所示。表3.2商品信息表字段名數(shù)據(jù)類型長度是否為空idint(11)NOproductnovarchar(255)YESproductnamevarchar(255)YESfilenamevarchar(255)YESpricedecimal(10,2)YEStpricedecimal(10,2)YESfidvarchar(255)YESsidvarchar(255)YEScontenttextYESdelstatusvarchar(255)YESissjvarchar(255)YESistjvarchar(255)YESsavervarchar(255)YESproductidvarchar(255)YESleibievarchar(255)YESptpricevarchar(255)YESagevarchar(255)YESisjkvarchar(255)YESxgvarchar(255)YESother1varchar(255)YESother2varchar(255)YESother3varchar(255)YES留言信息表菜品的id、用戶id、商家id以及最重要的建議和留言或者是投訴等用戶填寫的信息都被存儲(chǔ)于此。如圖表3.3所示。表3.3留言信息表字段名數(shù)據(jù)類型長度是否為空idint(11)NOmemberidvarchar(11)YESproductidvarchar(11)YEShfcontenttextYEScontenttextYESsavetimevarchar(255)YESscoreint(11)YES訂單信息表每次用戶下單訂購都會(huì)產(chǎn)生一個(gè)訂單,那么此數(shù)據(jù)庫表中就包含該下單用戶的id、虛擬name、訂單id、productphoto、price、訂單num、總量、名稱、用戶所選收貨name、address、telenum等信息。如表3.4所示。表3.4訂單信息表字段名數(shù)據(jù)類型長度是否為空idint(11)NOddnovarchar(255)YESmemberidvarchar(255)YESproductidvarchar(255)YESnumint(11)YEStotaldouble(255,2)YESfkstatusvarchar(255)YESshstatusvarchar(11)YESaddrvarchar(255)YESsavetimevarchar(255)YESdelstatusvarchar(255)YESshfsvarchar(255)YESzffsvarchar(255)YESsavervarchar(255)YESisddvarchar(255)YESfidvarchar(255)YESgoodsidvarchar(255)YESgoodstypevarchar(255)YESempidvarchar(11)YES購物車信息表所有用戶購買的物品都存放在購物車中,此表就包括類似于productid、用戶id、商品name、數(shù)量、商戶id等購物車相關(guān)的信息。如表3.5所示。表3.5購物車信息表字段名數(shù)據(jù)類型長度是否為空idint(11)NOproductidint(11)YESmemberidint(11)YESnumint(11)YESshopidint(11)YES系統(tǒng)詳細(xì)設(shè)計(jì)用戶注冊模塊設(shè)計(jì)如果一個(gè)尚未注冊的用戶是沒有辦法使用本平臺(tái)的,所以本模塊的作用就是輔助用戶在本系統(tǒng)上進(jìn)行注冊和登錄的操作,如果他們想要使用本系統(tǒng)就必須填寫相應(yīng)的信息注冊個(gè)人的賬號并且同時(shí)設(shè)置符合規(guī)定的密碼。這也更便于我們系統(tǒng)進(jìn)行用戶的相應(yīng)管理。為了確保注冊信息的合法性以及有效性,我們會(huì)在過程中利用相關(guān)手段判斷兩次的輸入是否相同一致,并在此基礎(chǔ)上再判斷密碼的字長和相關(guān)要求是否也符合網(wǎng)站平臺(tái)的規(guī)定。整個(gè)流程走完后,在系統(tǒng)驗(yàn)證我們用戶所填寫的所有信息后將提示信息反饋給我們的用戶,用戶再根據(jù)相關(guān)流程看是直接登錄并將以上信息插入數(shù)據(jù)庫還是根據(jù)報(bào)錯(cuò)信息進(jìn)行重新的填寫或是重走整個(gè)注冊流程。具體如圖4.1所示。圖4.1用戶注冊模塊流程圖實(shí)現(xiàn)過程:表單的相關(guān)信息被網(wǎng)頁用戶填寫在注冊頁面后,利用正則表達(dá)式的作用判斷正確與否,具體體現(xiàn)在被系統(tǒng)用來判斷網(wǎng)頁用戶所輸入的個(gè)人信息。其中具體的要求是用戶名必須合法和規(guī)范比如不能有特殊圖案,密碼的強(qiáng)弱程度也要符合規(guī)定,輸入兩次的兩個(gè)密碼必須完全相同一致。輸入框不會(huì)出現(xiàn)提示信息的必要條件是所有的信息都滿足上述條件后。在以上信息都符合規(guī)定后我們的用戶才可以繼續(xù)進(jìn)行注冊操作,前臺(tái)傳輸發(fā)送的網(wǎng)頁用戶填寫的用戶名以ajax的手段被網(wǎng)頁的后臺(tái)接收后,會(huì)查詢前臺(tái)發(fā)來的用戶名是否存在于數(shù)據(jù)庫中是會(huì)通過使用sql查詢語句的方法來進(jìn)行判斷。系統(tǒng)不會(huì)提示注冊失敗信息和向前臺(tái)發(fā)送錯(cuò)誤信息除非后臺(tái)的數(shù)據(jù)中沒有找到被用戶輸入的注冊名字。一旦注冊成功那么數(shù)據(jù)庫的用戶信息表中將會(huì)以sql插入語句插入該次用戶所提交的信息并同時(shí)轉(zhuǎn)到進(jìn)入頁面表示該次注冊或是登錄操作成功。<resultMaptype="com.entity.Message"id="BaseResultMap"><idcolumn="id"property="id"jdbcType="INTEGER"/><resultcolumn="memberid"property="memberid"jdbcType="INTEGER"/><resultcolumn="content"property="content"jdbcType="VARCHAR"/><resultcolumn="savetime"property="savetime"jdbcType="VARCHAR"/><resultcolumn="replycontent"property="replycontent"jdbcType="VARCHAR"/><resultcolumn="replysavetime"property="replysavetime"jdbcType="VARCHAR"/></resultMap><insertid="add"parameterType="Message">insertintomessagevalues(null,#{memberid},#{content},#{savetime},'','')</insert><selectid="selectAll"resultMap="BaseResultMap">select*frommessagewhere1=1<iftest="key!=nullandkey!=''">andmemberidin(selectidfrommemberwhereunamelike"%"#{key}"%")</if>orderbyiddesc</select><selectid="searchMessage"parameterType="String"resultMap="BaseResultMap">select*frommessagewhere1=1andmemberidin(selectidfrommemberwhereunamelike"%"#{0}"%")</select><updateid="update"parameterType="Message">updatemessagesetreplycontent=#{replycontent},replysavetime=now()whereid=#{id}</update><deleteid="delete"parameterType="Int">deletefrommessagewhereid=#{id}</delete></mapper>用戶登錄模塊設(shè)計(jì)本模塊主要用于對注冊成功的用戶進(jìn)行登錄驗(yàn)證。用戶首先填寫完整的登錄表單信息并提交。提交后,系統(tǒng)將會(huì)根據(jù)填寫情況查詢數(shù)據(jù)庫,以確定判斷當(dāng)前提交的信息是否存在于數(shù)據(jù)庫中的用戶表中。如果沒有找到輸入的相應(yīng)的用戶名信息,則會(huì)提示用戶“該用戶未注冊”。若用戶表中找到了有相應(yīng)的用戶名信息,那么則它將接著確定用戶輸入的密碼判斷該用戶密碼是否與注冊時(shí)的密碼相同。如若不禁相同不一致,那么則會(huì)提示“密碼不正確,請重新輸入”,如若不然頁面將會(huì)顯示登錄成功,該網(wǎng)站頁面將會(huì)跳轉(zhuǎn)到網(wǎng)站主頁。如圖4.2所示。圖4.2用戶登錄模塊流程圖實(shí)現(xiàn)流程:用戶進(jìn)入注冊頁面,首先根據(jù)自己注冊的賬號信息填寫登錄用戶名和密碼,系統(tǒng)根據(jù)用戶填寫的用戶名向后臺(tái)發(fā)送ajax請求,后臺(tái)接收來自前臺(tái)數(shù)據(jù)的消息,使用sql查詢語句查詢數(shù)據(jù)庫的userinfo表中是否存在于當(dāng)前用戶名,如果返回的是json字符串結(jié)果,則再將當(dāng)前查詢結(jié)果的密碼與前臺(tái)發(fā)來的密碼進(jìn)行比較,如果顯示相同,則表示登錄成功,您將被重定向到網(wǎng)站首頁。如果執(zhí)行SQL查詢語句沒有結(jié)果,則說明用戶沒有注冊。<resultMaptype="com.entity.User"id="BaseResultMap"><idcolumn="id"property="id"jdbcType="INTEGER"/><resultcolumn="username"property="username"jdbcType="VARCHAR"/><resultcolumn="userpassword"property="userpassword"jdbcType="VARCHAR"/><resultcolumn="realname"property="realname"jdbcType="VARCHAR"/><resultcolumn="filename"property="filename"jdbcType="VARCHAR"/><resultcolumn="idcard"property="idcard"jdbcType="VARCHAR"/><resultcolumn="tel"property="tel"jdbcType="VARCHAR"/><resultcolumn="delstatus"property="delstatus"jdbcType="VARCHAR"/><resultcolumn="usertype"property="usertype"jdbcType="VARCHAR"/><resultcolumn="shstatus"property="shstatus"jdbcType="VARCHAR"/><resultcolumn="note"property="note"jdbcType="VARCHAR"/><resultcolumn="roleid"property="roleid"jdbcType="INTEGER"/><resultcolumn="province"property="province"jdbcType="VARCHAR"/><resultcolumn="city"property="city"jdbcType="VARCHAR"/><resultcolumn="district"property="district"jdbcType="VARCHAR"/><resultcolumn="addr"property="addr"jdbcType="VARCHAR"/></resultMap><insertid="add"> insertintouservalues(null,#{username},#{userpassword},#{realname},#{filename},#{idcard},#{tel},#{delstatus},#{usertype},#{shstatus},#{note},#{roleid},#{addr},#{province},#{city},#{district}) </insert> <selectid="findById"resultType="User"parameterType="int"> select*fromuserwhereid=#{id} </select> <selectid="selectAll"parameterType="HashMap"resultMap="BaseResultMap"> select*fromuserwhere1=1anddelstatus=0 <iftest="key!=nullandkey!=''"> andrealnamelike"%"#{key}"%" </if> <iftest="username!=nullandusername!=''"> andusername=#{username} </if> <iftest="userpassword!=nullanduserpassword!=''"> anduserpassword=#{userpassword} </if> <iftest="usertype!=nullandusertype!=''"> andusertype=#{usertype} </if> <iftest="shstatus!=nullandshstatus!=''"> andshstatus=#{shstatus} </if> <iftest="role!=nullandrole!=''"> androleid!=2 </if> <iftest="id>0"> andid!=#{id} </if> <iftest="roleid!=nullandroleid!=''"> androleid=#{roleid} </if> <iftest="addr!=nullandaddr!=''"> andaddr=#{addr} </if> <iftest="province!=nullandprovince!=''"> andprovince=#{province} </if> <iftest="city!=nullandcity!=''"> andcity=#{city} </if> <iftest="district!=nullanddistrict!=''"> anddistrict=#{district} </if> orderbyiddesc </select> <updateid="update"parameterType="User"> updateuser <set> <iftest="userpassword!=nullanduserpassword!=''"> userpassword=#{userpassword}, </if> <iftest="realname!=nullandrealname!=''"> realname=#{realname}, </if> <iftest="filename!=nullandfilename!=''"> filename=#{filename}, </if> <iftest="idcard!=nullandidcard!=''"> idcard=#{idcard}, </if> <iftest="tel!=nullandtel!=''"> tel=#{tel}, </if> <iftest="shstatus!=nullandshstatus!=''"> shstatus=#{shstatus}, </if> <iftest="realname!=nullandrealname!=''"> realname=#{realname}, </if> <iftest="delstatus!=nullanddelstatus!=''"> delstatus=#{delstatus}, </if> <iftest="note!=nullandnote!=''"> note=#{note}, </if> <iftest="roleid!=nullandroleid!=''"> roleid=#{roleid}, </if> <iftest="addr!=nullandaddr!=''"> addr=#{addr}, </if> <iftest="province!=nullandprovince!=''"> province=#{province}, </if> <iftest="city!=nullandcity!=''"> city=#{city}, </if> <iftest="district!=nullanddistrict!=''"> district=#{district}, </if> </set> whereid=#{id} </update></mapper>前端頁面的設(shè)計(jì)與實(shí)現(xiàn)前端界面所展示的菜品如果以一種清新的風(fēng)格并配以一些漂亮的輪播圖片來表現(xiàn)我們的菜品展示界面那么能更好的吸引我們的顧客來本外賣點(diǎn)餐系統(tǒng)進(jìn)行消費(fèi)。我們可以在首頁展示方面,根據(jù)不同的商家和菜品進(jìn)行分類展示,輔佐以一些奪人眼球的夸張字體和大膽撞色,給人以一種視覺沖擊。同時(shí)根據(jù)不同類型、不同菜系、不同價(jià)格的分類加上一些特別放大的首推商品,同時(shí)為了不同用戶能夠更仔細(xì)的觀看我們的菜品,根據(jù)商品分類我們也可以對圖片和文字設(shè)置部分放大功能,分別對列出商品分類,按照商品分類展示中點(diǎn)擊屏幕上的特殊按鈕就可以局部放大,讓我們的顧客從細(xì)節(jié)入手,掌握全局。當(dāng)然我們的頁面還可以顯示商品語言、類別、市場價(jià)格和當(dāng)前價(jià)格等信息。購物車模塊設(shè)計(jì)現(xiàn)在很多人都會(huì)有“選擇恐懼癥”,那么我們購物車模塊設(shè)計(jì)的初衷其實(shí)就是將如果一個(gè)用戶有想要購買此產(chǎn)品的意愿的菜品就將其先行添加到購物車中,然后他可以去瀏覽其他的菜品,這樣等他總體瀏覽完后將沒有意愿在購買此商品,或者是可以根據(jù)自己的喜好以及現(xiàn)實(shí)需求修改購物車中的信息,想要?jiǎng)h除購物車中所有信息的話只需要通過單擊商品后面的刪除按鈕進(jìn)行一鍵刪除,那么并不是想要一次性清除所有內(nèi)容而是要有所保留或者是有所增加,可以點(diǎn)擊購物車中的加減號來增加或者減少菜品的數(shù)量,但是如果數(shù)量已經(jīng)是1,那么用戶只能將其刪除并不能再執(zhí)行減量的操作。我們最后結(jié)賬清算時(shí)的總價(jià)格會(huì)隨著數(shù)量的變化上漲或減少,這是自動(dòng)變化的,便于最后我們用戶的結(jié)賬清算。具體流程如圖4.3和圖4.4所示。圖4.3購物車模塊流程圖實(shí)現(xiàn)過程:sessionStorage中保存著順利在系統(tǒng)中成功登錄的本平臺(tái)用的用戶name,前提是他們成功登錄的情況下才會(huì)保存。后臺(tái)會(huì)接受一些數(shù)據(jù)在我們用戶將想要的餐品添加到購物車時(shí),在這個(gè)情況下我們sessionStorage中的用戶name和當(dāng)前product的id會(huì)被用ajax請求的方式傳給后臺(tái),而我們的用戶也會(huì)在此時(shí)看到被添加到購物車的菜品的詳情。在這個(gè)時(shí)候所有購物車內(nèi)的所有信息都可以進(jìn)行更改,我們用戶可以隨時(shí)修改修正購物車內(nèi)的錯(cuò)誤商品或者是添加數(shù)量,這個(gè)過程中我們后臺(tái)收到用戶操作的一些指令都會(huì)以ajax的方式請求后臺(tái),我們后臺(tái)接受到這些操作帶來的數(shù)據(jù)傳送后,會(huì)根據(jù)SQL的查詢或者刪除或者添加語句來完成我們用戶的操作,比如將將找到的結(jié)果連同用戶名一起插入到前臺(tái)到購物車表中的購物車或是刪除信息。當(dāng)我們用戶想要進(jìn)行結(jié)算時(shí)點(diǎn)擊全選,所有放在購物車中的東西都會(huì)被選中然后由我們的系統(tǒng)統(tǒng)計(jì)數(shù)量和總價(jià)呈現(xiàn)給用戶,讓我們用戶可以進(jìn)行支付前的二次核驗(yàn),但如果進(jìn)行反向選擇,則件數(shù)將為0,總價(jià)也是0。圖4.4購物車模塊流程圖<idcolumn="id"property="id"jdbcType="INTEGER"/><resultcolumn="productid"property="productid"jdbcType="INTEGER"/><resultcolumn="memberid"property="memberid"jdbcType="INTEGER"/><resultcolumn="num"property="num"jdbcType="INTEGER"/><resultcolumn="shopid"property="shopid"jdbcType="INTEGER"/></resultMap><selectid="selectAll"parameterType="hashmap"resultMap="BaseResultMap">select*fromcartwhere1=1<iftest="memberid!=nullandmemberid!=''andmemberid!='0'.toString()">andmemberid=#{memberid}</if><iftest="productid!=nullandproductid!=''andproductid!='0'.toString()">andproductid=#{productid}</if><iftest="shopid!=nullandshopid!=''">andshopid=#{shopid}</if>orderbyiddesc</select><insertid="add"parameterType="Cart">insertintocartvalues(null,#{productid},#{memberid},#{num},#{shopid})</insert><updateid="update"parameterType="Cart">updatecartsetnum=#{num}whereid=#{id}</update><deleteid="delCart"parameterType="Int">deletefromcartwhereid=#{id}</delete><updateid="updateNum"parameterType="Cart">updatecartsetnum=#{num}whereid=#{id}</update></mapper>訂單模塊設(shè)計(jì)我們平時(shí)購物操作時(shí),都會(huì)先將東西加入購物車,然后最后進(jìn)行統(tǒng)計(jì)付款,那么本模塊也是讓我們的用戶在進(jìn)行訂餐時(shí)進(jìn)行如上的一個(gè)操作操作。我們用戶要確保自己付款的賬戶中有足夠的金額以供整個(gè)訂購流程順利完成,即賬戶內(nèi)的金額需要大于我們支付的金額。還有值得一提的是,我們線下的一些購物操作不需要先驗(yàn)證會(huì)員身份,而在線上的訂購環(huán)節(jié)中,我們則需要先進(jìn)行一個(gè)用戶的登錄核驗(yàn)操作才能繼續(xù)我們的訂購,如果沒有登錄我們的系統(tǒng)會(huì)對我們的用戶進(jìn)行一個(gè)提示。在核驗(yàn)完確保該人注冊過我們平臺(tái)的賬號并且是我們平臺(tái)的會(huì)員后,在用戶挑選完想要訂餐的內(nèi)容只需點(diǎn)擊“立即付款”按鈕,我們就會(huì)跳轉(zhuǎn)到支付頁面,用戶可以選擇任意支付方式進(jìn)行訂單的支付和完成,我們的款項(xiàng)會(huì)由平臺(tái)自動(dòng)從用戶賬戶中劃走,支付成功后將會(huì)生成訂單號。具體流程如圖4.5所示。圖4.5訂單模塊流程圖實(shí)現(xiàn)流程:在購物車界面,如果一個(gè)用戶想要對訂單進(jìn)行支付購買的操作,那么平臺(tái)將會(huì)在sessionStorage中保存當(dāng)前購物車中所有的productid和數(shù)量,然后在用戶訂單支付界面以默認(rèn)形式或是添加另外的收貨信息以及地址后讓用戶對我們此次的訂單進(jìn)行一個(gè)付款的操作,在這里我們用戶有多種的支付選擇。我們選擇任何一種支付方式的前提是該款支付方式中我們的余額足夠支付該筆訂單的金額,用戶擇其任一方式成功后,頁面將會(huì)跳轉(zhuǎn)到付款成功界面,并且同時(shí)為此次訂單生成一個(gè)獨(dú)一無二的訂單號讓用戶以后可以憑借該訂單號進(jìn)行追溯,同時(shí)平臺(tái)將扣除的金額轉(zhuǎn)移入后臺(tái)中。支付倘若沒有成功,此時(shí)平臺(tái)網(wǎng)頁頁面會(huì)跳轉(zhuǎn)顯示到支付失敗的界面提醒用戶沒有成功,并同時(shí)提示用戶賬戶余額不足,后臺(tái)也不會(huì)發(fā)送任何數(shù)據(jù)。</insert><selectid="selectAll"parameterType="HashMap"resultMap="BaseResultMap">select*fromordermsgwhere1=1<iftest="memberid!=nullandmemberid!=''">andmemberid=#{memberid}</if><iftest="ddno!=nullandddno!=''">andddno=#{ddno}</if><iftest="fkstatus!=nullandfkstatus!=''">andfkstatus!=#{fkstatus}</if><iftest="saver!=nullandsaver!=''">andsaver=#{saver}</if><iftest="productid!=nullandproductid!=''">andproductid=#{productid}</if><iftest="delstatus!=nullanddelstatus!=''">anddelstatus=#{delstatus}</if><iftest="goodstype!=nullandgoodstype!=''">andgoodstype=#{goodstype}</if><iftest="empid!=nullandempid!=''">andempid=#{empid}</if><iftest="key!=nullandkey!=''">anddate_format(savetime,'%Y-%m-%d')=#{key}</if>orderbyiddesc</select><updateid="update"parameterType="Ordermsg">updateordermsg<set><iftest="fkstatus!=nullandfkstatus!=''">fkstatus=#{fkstatus},</if><iftest="shfs!=nullandshfs!=''">shfs=#{shfs},</if><iftest="zffs!=nullandzffs!=''">zffs=#{zffs},</if><iftest="addr!=nullandaddr!=''">addr=#{addr},</if><iftest="isdd!=nullandisdd!=''">isdd=#{isdd},</if><iftest="delstatus!=nullanddelstatus!=''">delstatus=#{delstatus},</if><iftest="empid!=nullandempid!=''">empid=#{empid},</if></set>whereid=#{id}</update><selectid="findById"parameterType="Int"resultType="Ordermsg">select*fromordermsgwhereid=#{id}</select><selectid="selectSaleMoney"parameterType="HashMap"resultMap="BaseResultMap">selectDISTINCT(DATE_FORMAT(savetime,'%Y-%c-%d'))assavetime,sum(total)astotalfromordermsgwhere1=1<iftest="fkstatus!=nullandfkstatus!=''">andfkstatus=#{fkstatus}</if><iftest="goodstype!=nullandgoodstype!=''">andgoodstype=#{goodstype}</if><iftest="saver!=nullandsaver!=''">andsaver=#{saver}</if>GROUPBYDATE_FORMAT(savetime,'%Y-%c-%d')orderbyDATE_FORMAT(savetime,'%Y-%c-%d')</select><selectid="selectPh"parameterType="HashMap"resultMap="BaseResultMap">selectsum(num)asnum,productidfromordermsgwherefkstatus='交易完成'andfid=#{fid}groupbyproductidorderbynumdesc</select>商品信息管理模塊設(shè)計(jì)商品信息管理模塊是針對特定的管理員后臺(tái)對我們平臺(tái)的使用進(jìn)行一些操作而誕生的模塊,在遇到一些特殊的節(jié)日,如國慶節(jié)、光棍節(jié)、母親節(jié)、中秋節(jié)、情人節(jié)、勞動(dòng)節(jié)、端午節(jié)、圣誕節(jié)等節(jié)日,管理員通過例如降低商品價(jià)格、修改商品信息、全額折扣或滿減等促銷活動(dòng)來吸引用戶將一些銷量不佳的產(chǎn)品盡快清理庫存,同時(shí)提高平臺(tái)上的銷售數(shù)量。那么在我們該平臺(tái)上想要上新一些菜品或者更換某種類型菜品時(shí),我們的管理員也會(huì)立即行動(dòng),以舊換新,同時(shí)在庫存不足時(shí)也會(huì)及時(shí)將該菜品進(jìn)行一個(gè)下架處理。具體流程如圖4.6所示。圖4.6商品信息管理模塊流程圖實(shí)施流程:想要錄入一個(gè)新的餐品就要在新頁面將餐品圖片、描述、烹飪材料等相關(guān)基本信息填寫在該頁面上,值得注意的是我們首先要以文件的形式獲取對象然后才能將食品圖片上傳至頁面,以上一切操作都需要我們的管理員以管理員的賬號登錄到我們的后臺(tái)進(jìn)行操作。同時(shí)一切內(nèi)容都更新完畢后我們的平臺(tái)后端會(huì)將新的信息插入到產(chǎn)品信息表中,這些都是由前端先行接收然后再整合傳輸所完成的,最終信息插入完成后將以一種動(dòng)態(tài)的方式呈現(xiàn)在我們的用戶面前。<resultMaptype="com.entity.Menus"id="BaseResultMap"><idcolumn="id"property="id"jdbcType="INTEGER"/><idcolumn="serno"property="serno"jdbcType="INTEGER"/><resultcolumn="name"property="name"jdbcType="VARCHAR"/><resultcolumn="url"property="url"jdbcType="VARCHAR"/><resultcolumn="fatherid"property="fatherid"jdbcType="INTEGER"/><resultcolumn="leaf"property="leaf"jdbcType="INTEGER"/><resultcolumn="delstatus"property="delstatus"jdbcType="INTEGER"/></resultMap><selectid="selectAll"parameterType="HashMap"resultMap="BaseResultMap">select*frommenuswheredelstatus=0<iftest="key!=nullandkey!=''">and(namelikeCONCAT('%',#{key},'%'))</if>orderbyserno</select><selectid="selectfatherAll"resultMap="BaseResultMap">select*frommenuswhere1=1anddelstatus=0andfatherid=0orderbyserno</select><selectid="selectchildAll"parameterType="Int"resultMap="BaseResultMap">select*frommenuswheredelstatus=0andfatherid=#{fatherid}orderbyserno</select><selectid="selectminAll"parameterType="Int"resultMap="BaseResultMap">select*frommenuswheredelstatus=0andfatherid=#{fatherid}orderbyserno</select><selectid="selectMenuByRole"parameterType="HashMap"resultMap="BaseResultMap">select*frommenuswheredelstatus=0<iftest="roleid!=nullandroleid!=''">andidin(selectmenuidfrompermissionswhereroleid=#{roleid})</if>orderbyserno</select><selectid="findById"parameterType="Int"resultType="Menus">select*frommenuswhereid=#{id}</select><selectid="selectfatherAllByRole"parameterType="HashMap"resultMap="BaseResultMap">select*frommenuswheredelstatus=0andfatherid=0<iftest="roleid!=nullandroleid!=''">andidin(selectmenuidfrompermissionswhereroleid=#{roleid})</if>orderbyserno</select><selectid="selectchildAllByRole"parameterType="HashMap"resultMap="BaseResultMap">select*frommenuswheredelstatus=0andfatherid=#{fatherid}andidin(selectmenuidfrompermissionswhereroleid=#{roleid})orderbyserno</select><updateid="update"parameterType="Menus">updatemenus<set> <iftest="serno!=null">serno=#{serno},</if><iftest="name!=null">name=#{name},</if><iftest="url!=null">url=#{url},</if><iftest="leaf!=null">leaf=#{leaf},</if><iftest="delstatus!=null">delstatus=#{delstatus},</if></set>whereid=#{id}</update><insertid="add"parameterType="Menus">insertintomenusvalues(null,#{serno},#{name},#{url},#{fatherid},#{leaf},#{delstatus})</insert> <updateid="delete"parameterType="Menus">updatemenussetdelstatus=1whereid=#{id}</update></mapper>訂單處理模塊設(shè)計(jì)一般的訂單處理是由本平臺(tái)網(wǎng)站管理員完成的,所有的用戶訂單信息包括最終支付金額、購買物品、下單時(shí)間等等所有相關(guān)訂單信息都由我們后臺(tái)統(tǒng)一管理,而登錄后臺(tái)的唯一途徑就是我們的管理員通過特別的賬號進(jìn)入特殊的登錄頁面進(jìn)行登錄后然后實(shí)行操作,那么本模塊就是管理員對我們這些用戶的相關(guān)訂單的操作模塊。我們的管理在此模塊中有權(quán)可以看到用戶訂單中的所有信息,同時(shí)也可以利用權(quán)限在我們的用戶就餐后將訂單狀態(tài)進(jìn)行更改,我們用戶就會(huì)在自己的界面看到從“未就餐”到“已就餐”的轉(zhuǎn)變。如圖4.7所示。圖4.7訂單處理模塊流程圖實(shí)現(xiàn)流程:我們的用戶在進(jìn)行下單的操作后,我們的后臺(tái)程序接收到用戶的下單操作,將聯(lián)動(dòng)數(shù)據(jù)庫使用SQL查詢語句來查詢訂單信息表的訂單表中當(dāng)前訂單的訂單id,這項(xiàng)過程我們是由ajax技術(shù)將相關(guān)信息傳遞的。在為用戶安排騎手投遞餐食前我們的網(wǎng)站平臺(tái)管理員要在登錄管理員賬號進(jìn)入特殊后臺(tái)后還要先確認(rèn)其下單情況并且同時(shí)確定其下單信息的正確性,無誤后就可根據(jù)收到的id發(fā)送訂單為其安排騎手派送并同時(shí)將狀態(tài)更新為“已就餐”。用戶信息模塊設(shè)計(jì)用戶時(shí)常會(huì)因?yàn)楦鞣N原因要修改自己的類似于頭像、手機(jī)、生日等個(gè)人資料信息,那么本模塊就是由此應(yīng)運(yùn)而生。為了更好的服務(wù)我們用戶及時(shí)的對自己的注冊信息進(jìn)行更新,例如添加自己的多個(gè)收獲配送地址或者查看、編輯、刪除及管理自己所有收貨地址等,只需要點(diǎn)擊液晶信息接收面板上左側(cè)的個(gè)人信息欄,那么我們的網(wǎng)頁平臺(tái)就會(huì)跳轉(zhuǎn)到相關(guān)頁面方便我們的用戶進(jìn)行操作。以上操作的前提是我們用戶注冊成功并且成功登錄到平臺(tái)的情況下。跟液晶信息接收器面板右手邊相反方向的導(dǎo)航欄內(nèi)容包括訂單信息、評價(jià)信息。我們平臺(tái)十分注重用戶的使用體驗(yàn),所以創(chuàng)設(shè)了會(huì)員投訴服務(wù)頁面,一個(gè)無論是走心亦或是不走心的評論都能讓我們更好的及時(shí)更新我們的服務(wù),在內(nèi)容被提交后我們的后臺(tái)管理員會(huì)及時(shí)查看顯示在后臺(tái)管理頁面的留言信息,在此之前我們的用戶可以在此填寫并且提交自己的投訴與建議,并且還可以在餐品未交付到自己手中前給我們的商家或是騎手留言,更加的個(gè)性化。如圖4.8所示。圖4.8用戶信息模塊流程圖實(shí)現(xiàn)過程:sessionStorage中存儲(chǔ)著每名注冊完成并且登錄成功的用戶的登錄用戶名。當(dāng)用戶點(diǎn)擊個(gè)人信息頁面時(shí),會(huì)立即發(fā)起Ajax請求,并將保存在sessionStorage中的用戶名傳給后臺(tái),后臺(tái)操作數(shù)據(jù)庫。返回一個(gè)基本信息的json對象,對該對象進(jìn)行解析,昵稱、頭像等信息會(huì)根據(jù)返回的數(shù)據(jù)對象預(yù)先顯示在頁面對應(yīng)的信息框中。并且可以修改個(gè)人信息,接收寶貝信息,購買過產(chǎn)品信息。<resultMaptype="com.entity.Address"id="BaseResultMap"><idcolumn="id"property="id"jdbcType="INTEGER"/><resultcolumn="name"property="name"jdbcType="VARCHAR"/><resultcolumn="tel"property="tel"jdbcType="VARCHAR"/><resultcolumn="addr"property="addr"jdbcType="VARCHAR"/><resultcolumn="ismr"property="ismr"jdbcType="VARCHAR"/><resultcolumn="delstatus"property="delstatus"jdbcType="VARCHAR"/><resultcolumn="memberid"property="memberid"jdbcType="VARCHAR"/></resultMap><insertid="add"parameterType="Address">insertintoaddressvalues(null,#{name},#{tel},#{addr},#{ismr},#{delstatus},#{memberid})</insert><selectid="selectAll"parameterType="HashMap"resultMap="BaseResultMap">select*fromaddresswheredelstatus=0<iftest="memberid!=nullandmemberid!=''">andmemberid=#{memberid}</if><iftest="ismr!=nullandismr!=''">andismr=#{ismr}</if>orderbyismrdesc</select><selectid="findById"parameterType="int"resultType="Address">select*fromaddresswhereid=#{id}</select><updateid="update"parameterType="address">updateaddress<set>

溫馨提示

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

評論

0/150

提交評論