




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
緒論隨著社會經(jīng)濟(jì)的不斷進(jìn)步和高校的擴(kuò)招政策實施,高校在校學(xué)生數(shù)量持續(xù)增長。然而,隨著學(xué)生人數(shù)的激增,原有的高校食堂用餐模式已經(jīng)逐漸暴露出其局限性,無法滿足學(xué)生日益增長的用餐需求。1.1選題來源和背景近年來,隨著高校的擴(kuò)招,高校食堂人數(shù)也隨之增加,帶來的相關(guān)問題也就出現(xiàn)了,當(dāng)遇到就餐高峰期,學(xué)校食堂的堂食壓力會劇增。而傳統(tǒng)就餐方式只有單一的堂食,當(dāng)遇到高人流時,學(xué)生就餐體驗也相對較差,所以需要一個功能全面,學(xué)生可以提前預(yù)定的訂餐系統(tǒng)來滿足學(xué)生就餐需求。目前校園食堂的就餐模式在高峰期往往無法滿足學(xué)生的就餐需求,這已經(jīng)成為一個亟待解決的問題。鑒于這一現(xiàn)狀,有必要設(shè)計一套全新的校園食堂訂餐系統(tǒng),以更好地滿足校園食堂和學(xué)生雙方的需求。1.2選題目的和意義校園食堂訂餐系統(tǒng)極大地提升了訂單管理的效率。傳統(tǒng)的點餐方式往往導(dǎo)致高峰期人流量大、秩序混亂,而訂餐系統(tǒng)則能夠?qū)崿F(xiàn)訂單的快速處理與分配,確保每一份餐食都能準(zhǔn)時送達(dá)學(xué)生手中。這不僅解決了高峰期學(xué)生用餐難的問題,也極大地提升了食堂的運營效率和服務(wù)質(zhì)量。它還可以通過收集學(xué)生的點餐數(shù)據(jù)和反饋意見,可以更深入地了解學(xué)生的需求,進(jìn)而促進(jìn)校園食堂與學(xué)生之間的良好互動。作為依托互聯(lián)網(wǎng)發(fā)展的產(chǎn)物,校園食堂訂餐系統(tǒng)不僅有助于提升校園整體的信息化水準(zhǔn),更能積極推動校園服務(wù)的現(xiàn)代化進(jìn)程,為校園建設(shè)注入新的活力。同時,校園食堂訂餐系統(tǒng)的設(shè)計和實現(xiàn),正是將所學(xué)理論知識應(yīng)用于實踐的生動體現(xiàn)。通過這一項目,能夠提升對SpringBoot、MySQL等技術(shù)的運用能力,積累寶貴的項目開發(fā)經(jīng)驗,為今后的職業(yè)發(fā)展奠定堅實的基礎(chǔ)。1.3國內(nèi)外發(fā)展現(xiàn)狀況及發(fā)展趨勢1.3.1國外發(fā)展現(xiàn)狀在國外,食堂訂餐系統(tǒng)的研究已經(jīng)相對成熟,主要集中在智能化、個性化和可持續(xù)性等方面。一些發(fā)達(dá)國家如美國、日本和韓國等,已經(jīng)廣泛應(yīng)用了物聯(lián)網(wǎng)、大數(shù)據(jù)分析、人工智能等先進(jìn)技術(shù),實現(xiàn)了食堂點餐、配餐、就餐等全過程的自動化和智能化。此外,國外的食堂訂餐系統(tǒng)還注重滿足用戶的個性化需求,提供定制化菜單和智能推薦等服務(wù)。同時,隨著可持續(xù)發(fā)展理念的普及,一些研究也開始關(guān)注食堂訂餐系統(tǒng)的環(huán)保和可持續(xù)性發(fā)展。1.3.2國內(nèi)發(fā)展現(xiàn)狀在國內(nèi),隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展和普及,食堂訂餐系統(tǒng)逐漸成為了校園和商業(yè)領(lǐng)域的研究熱點。許多高校和商業(yè)機(jī)構(gòu)都紛紛推出自己的食堂訂餐系統(tǒng),以提高用餐效率和服務(wù)質(zhì)量。國內(nèi)食堂訂餐系統(tǒng)主要依賴于移動互聯(lián)網(wǎng)、大數(shù)據(jù)、云計算等技術(shù)。通過開發(fā)手機(jī)APP或微信小程序,用戶可以方便地進(jìn)行在線訂餐、支付和評價。同時,系統(tǒng)還可以利用大數(shù)據(jù)分析用戶的用餐習(xí)慣和需求,為用戶提供個性化的推薦服務(wù)。除了基本的訂餐功能外,國內(nèi)食堂訂餐系統(tǒng)還提供了豐富的附加服務(wù),如外賣配送、營養(yǎng)分析、菜品評價等。這些功能使得用戶能夠享受到更加便捷和個性化的用餐體驗。2關(guān)鍵技術(shù)上一章闡述了本項目的選題來源和背景、目的和意義、國內(nèi)外發(fā)展現(xiàn)狀及發(fā)展趨勢,論文的組織、結(jié)構(gòu)。本章將闡述系統(tǒng)設(shè)計和實現(xiàn)過程中將要用的的相關(guān)技術(shù)及它們在系統(tǒng)中的應(yīng)用。2.1SpringBootSpring?Boot作為一個基于Spring框架的快速開發(fā)腳手架,可以極大地簡化校園食堂訂餐系統(tǒng)的初始化和搭建過程。它提供了自動配置、嵌入式Tomcat等便利的功能和特性。SpringBoot可以為校園食堂訂餐系統(tǒng)的開發(fā)提供了強大的技術(shù)支持和便利的開發(fā)環(huán)境,使得開發(fā)人員能夠更加高效、快速地構(gòu)建出穩(wěn)定、可靠的訂餐系統(tǒng),為校園內(nèi)的學(xué)生和教職員工提供優(yōu)質(zhì)的餐飲體驗。2.2VueVue.js(簡稱Vue)是一個逐步構(gòu)建用戶界面的JavaScript框架,由前Google員工EvanYou于2014年創(chuàng)立。在2016年,Vue.js通過2.0版本進(jìn)行了重寫,以更加強調(diào)組件化并提高性能。Vue的設(shè)計哲學(xué)是自底向上逐層應(yīng)用,其核心庫專注于視圖層,因此能夠輕松與其他庫或現(xiàn)有項目整合。在校園食堂訂餐系統(tǒng)中,Vue作為前端框架發(fā)揮著關(guān)鍵作用,它確保了用戶界面的友好性和操作的流暢性。通過提供豐富的組件和工具,Vue使得開發(fā)人員能夠迅速構(gòu)建出既美觀又直觀的用戶界面,從而極大地提升了用戶的使用體驗。2.3MavenMaven提供了標(biāo)準(zhǔn)化的項目結(jié)構(gòu),這有助于不同的開發(fā)人員更好地理解和協(xié)作。在校園食堂訂餐系統(tǒng)的開發(fā)中,使用Maven可以確保項目結(jié)構(gòu)的清晰和一致性,提高開發(fā)效率。此外,Maven還支持多模塊項目的管理和構(gòu)建。如果校園食堂訂餐系統(tǒng)是一個大型項目,開發(fā)人員可以將其劃分為多個模塊,每個模塊可以獨立進(jìn)行構(gòu)建和測試。這種模塊化開發(fā)的方式可以提高開發(fā)的并行度,進(jìn)一步加快開發(fā)進(jìn)度??偟膩碚f,Maven提供了一些特性,如自動化構(gòu)造,依賴關(guān)系管理,項目結(jié)構(gòu)標(biāo)準(zhǔn)化,以及對多個模塊項目的支持。為系統(tǒng)的開發(fā)工作提供了強有力的技術(shù)支撐,從而大大提高了系統(tǒng)的開發(fā)效率與質(zhì)量。2.4MySQL校園食堂訂餐系統(tǒng)與MySQL的關(guān)系主要體現(xiàn)在數(shù)據(jù)存儲和管理方面。MySQL作為一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng),為校園食堂訂餐系統(tǒng)提供了穩(wěn)定、高效的數(shù)據(jù)存儲和查詢服務(wù)。首先,MySQL可以幫助校園食堂訂餐系統(tǒng)實現(xiàn)用戶信息的存儲和管理。系統(tǒng)需要記錄用戶的基本信息,如姓名、學(xué)號、聯(lián)系方式等,以便進(jìn)行用戶認(rèn)證和訂單管理。MySQL數(shù)據(jù)庫可以創(chuàng)建相應(yīng)的表結(jié)構(gòu),用于存儲這些用戶數(shù)據(jù),并提供數(shù)據(jù)插入、查詢、更新和刪除等操作,確保用戶信息的安全性和準(zhǔn)確性。其次,MySQL可以存儲和管理食堂的菜品信息。系統(tǒng)需要記錄每種菜品的名稱、價格、描述、圖片等,以便用戶進(jìn)行瀏覽和選擇。通過MySQL數(shù)據(jù)庫,可以創(chuàng)建菜品表,存儲這些菜品信息,并提供高效的查詢和檢索功能,使得用戶能夠方便地瀏覽和搜索菜品。2.5MybatisMyBatis(以前稱為iBatis)是一個開放源碼的持久層框架,其目的在于使數(shù)據(jù)庫存取變得簡單。MyBatis提供以下功能一種將數(shù)據(jù)庫動作和Java對象進(jìn)行映射的方法,這樣開發(fā)者就能通過一個配置文件或一個注釋來定義一個SQL查詢聲明。MyBatis框架會執(zhí)行這些查詢,然后把結(jié)果映射到對應(yīng)的Java對象上。3系統(tǒng)需求針對學(xué)校食堂學(xué)生用餐高峰期的實際情況與學(xué)生需求調(diào)研,結(jié)合大量的文獻(xiàn)檢索得出了本系統(tǒng)的總體需求,以下將從功能性需求和非功能性需求兩方面展開論述。3.1需求概述高校食堂對于校園食堂訂餐系統(tǒng)軟件需求是與校園食堂管理人員交流,對于本系統(tǒng)的需求性分析是通過網(wǎng)上調(diào)研、線下食堂調(diào)查、與校園食堂管理人員進(jìn)行溝通之后總結(jié)而出。校園食堂訂餐系統(tǒng)大致符合高校食堂所需的功能,符合學(xué)生和食堂管理人員的需求。首先對校園食堂訂餐系統(tǒng)的基本功能模塊進(jìn)行分析,其次再對非功能的模塊的拓展進(jìn)行分析。主要包括用戶登錄、員工管理、分類管理、菜品管理、套餐管理、訂單明細(xì)、用戶中心、地址管理等。一個相對完善的校園食堂訂餐系統(tǒng)的運行能夠提高工作人員的工作效率,提升用戶的用餐體驗。目前校園食堂主要沿用傳統(tǒng)的就餐模式,這種模式在用餐高峰期往往暴露出諸多不足。由于就餐人數(shù)激增,食堂的座位、菜品供應(yīng)以及服務(wù)效率往往難以滿足學(xué)生的用餐需求,導(dǎo)致就餐難的現(xiàn)象屢見不鮮。這不僅影響了學(xué)生的用餐體驗,也制約了校園食堂服務(wù)質(zhì)量的提升。3.2功能需求分析在對高校食堂點餐功能需求調(diào)查的基礎(chǔ)上,提出了一種針對系統(tǒng)管理人員和一般用戶的系統(tǒng)。登入模塊為使用者提供登入及認(rèn)證的功能,以保證系統(tǒng)的安全及認(rèn)證的正確性。系統(tǒng)管理員和一般用戶都可以通過以下方式登錄通過該模塊,實現(xiàn)了對系統(tǒng)的訪問,并獲得了相應(yīng)的權(quán)限與功能。在此基礎(chǔ)上,提出了一種基于網(wǎng)絡(luò)的校園點餐系統(tǒng)的設(shè)計方案。其中,雇員管理功能可以讓管理員和被授權(quán)的使用者添加雇員信息,編輯、關(guān)閉雇員帳號等業(yè)務(wù),保證雇員資料的準(zhǔn)確完整;分類管理包括菜類,套餐類,菜類。和套餐類別都包含了新增,修改,刪除等操作;菜品管理包括批量銷售,批量刪除,批量停止銷售,新建菜品,維修等。其中包括批量啟動,批量刪除,批量停售,新建菜品,修改,刪除等操作??梢宰屜到y(tǒng)管理員看到由用戶發(fā)起的指令,帶有查詢等動作。用戶模塊旨在當(dāng)用戶登錄系統(tǒng)后可以選擇套餐、選擇菜品、地址管理、付款、查看訂單狀態(tài)等操作。從以上模塊需求出發(fā),系統(tǒng)將包含八個相關(guān)的功能。員工管理:系統(tǒng)管理員可創(chuàng)建,編輯,查詢,關(guān)閉。通過雇員管理,管理員能維持及更新雇員資料,保證雇員資料隨時正確及完整。分類管理:系統(tǒng)的管理人員可以對菜品進(jìn)行分類,包含了新的菜品分類,修改,刪除等操作。通過對其進(jìn)行分類和管理,能滿足用戶的需要。菜品管理:管理員可以對菜品進(jìn)行查詢、新建、刪除、修改、停售、起售、批量刪除、批量起售等操作。管理員通過該功能可以對店鋪實際情況作出菜品的調(diào)整,例如某個菜品的原料不足,則可以停售該菜品。套餐管理:管理員可以對部分菜品進(jìn)行套餐化管理,通過新建套餐、修改、起售、刪除、批量起售等操作,滿足不同人群的需求,例如兒童套餐。訂單明細(xì):管理員可以查詢查詢或查看用戶發(fā)起的訂單,根據(jù)用戶的訂單需求來制作菜品,滿足用戶需求。用戶登錄:使用者可藉由系統(tǒng)管理員所設(shè)定之使用者名稱與密碼登入。首頁顯示:顯示菜品列表、套餐列表、購物車等。個人中心:用戶可以通過該系統(tǒng)查看用戶的歷史訂單和接收地址等信息。3.3系統(tǒng)的性能需求可靠性:在校園點餐系統(tǒng)中,確保網(wǎng)速正常時,并且有大量用戶在線,系統(tǒng)的響應(yīng)迅速。這確保了系統(tǒng)在日常運行中的可靠性,用戶能夠快速、順暢地進(jìn)行操作,提高點餐效率。易用性:校園點餐系統(tǒng)打破了傳統(tǒng)的點餐方式,用戶可以隨時隨地通過網(wǎng)絡(luò)或手機(jī)應(yīng)用進(jìn)行點餐,無需親自前往實體店鋪,這大大節(jié)省了時間和精力。其界面設(shè)計通常直觀簡潔,操作流程明確,用戶無需復(fù)雜的學(xué)習(xí)即可輕松上手。其次,校園點餐系統(tǒng)提供了差異化的服務(wù)。用戶可以根據(jù)自己的口味、需求等進(jìn)行個性化的菜品選擇,系統(tǒng)還可以根據(jù)用戶的點餐歷史和偏好,推薦合適的菜品,提升了用戶體驗和滿意度??蓴U(kuò)展性:隨著技術(shù)的發(fā)展和用戶需求的不斷變化,系統(tǒng)可以通過升級和更新,增加新的功能模塊,以滿足更多樣化的點餐需求。例如,系統(tǒng)可以加入營養(yǎng)分析、食材追溯、用戶評價等功能,提供更加全面和細(xì)致的服務(wù)。校園點餐系統(tǒng)不僅局限于校園內(nèi)的餐飲服務(wù),還可以通過與校外的商家進(jìn)行合作,拓展業(yè)務(wù)范圍。例如,系統(tǒng)可以與周邊的零食店、糕點店、餐飲店等進(jìn)行合作,提供更為豐富的商品選擇,滿足用戶的多樣化需求。這種合作不僅增加了系統(tǒng)的訂單量,也為商家?guī)砹烁嗟目驮春褪找妗?/p>
4系統(tǒng)設(shè)計根據(jù)上一章對于校園食堂訂餐系統(tǒng)的需求分析,可知校園食堂訂餐系統(tǒng)需要有員工管理、分類管理、菜品管理、套餐管理、訂單明細(xì)等功能,本章將根據(jù)以上需求來設(shè)計校園食堂訂餐系統(tǒng)。4.1系統(tǒng)設(shè)計原則為了滿足系統(tǒng)功能和性能方面的需求,根據(jù)學(xué)生點餐業(yè)務(wù)邏輯,設(shè)計本系統(tǒng)時將遵循如下幾個原則:系統(tǒng)應(yīng)符合訂餐數(shù)據(jù)分析業(yè)務(wù)要求根據(jù)業(yè)務(wù)要求,系統(tǒng)應(yīng)涵蓋用戶賬號信息、用戶訂單信息數(shù)據(jù)、用戶收貨地址數(shù)據(jù)、菜單數(shù)據(jù)、菜品分類數(shù)據(jù)、套餐數(shù)據(jù)、管理員數(shù)據(jù)等業(yè)務(wù)數(shù)據(jù)。設(shè)計出符合數(shù)據(jù)庫原理理論要求和校園訂餐實際需求的數(shù)據(jù)結(jié)構(gòu)在校園食堂訂餐系統(tǒng)中共有十一種數(shù)據(jù)表:地址管理、菜品及套餐分類、菜品管理、菜品口味關(guān)系表、員工信息、訂單明細(xì)表、訂單表、套餐、套餐菜品關(guān)系、購物車、用戶信息。涵蓋了訂餐系統(tǒng)的主要業(yè)務(wù)數(shù)據(jù)。設(shè)計系統(tǒng)中各類數(shù)據(jù)表的時候,明確了業(yè)務(wù)需求,包括數(shù)據(jù)的類型、來源、存儲目的以及數(shù)據(jù)的訪問模式等,遵循了范式化規(guī)則,同時根據(jù)數(shù)據(jù)的性質(zhì)和需求,選擇適當(dāng)?shù)淖侄晤愋秃烷L度。系統(tǒng)設(shè)計應(yīng)該功能完善合理系統(tǒng)應(yīng)涵蓋訂餐數(shù)據(jù)分析所必需的業(yè)務(wù)系統(tǒng)應(yīng)該包含分類管理、員工管理、套餐管理、菜品管理、訂單明細(xì)、個人中心、地址管理、購物車、歷史訂單等功能,具備菜品、員工、訂單等信息的建立和維護(hù),能夠?qū)崿F(xiàn)精確查詢和模糊查詢,建立訂單等功能,涵蓋學(xué)生訂餐流程中的各項業(yè)務(wù)流程。設(shè)計的系統(tǒng)要有安全性的保障設(shè)計的校園食堂訂餐系統(tǒng)要確保安全性,需要從多個層面進(jìn)行考慮和保障。對存儲在系統(tǒng)中的敏感數(shù)據(jù)(如用戶個人信息、支付信息等)進(jìn)行加密處理,確保即使數(shù)據(jù)被非法獲取,也無法輕易解密;定期備份系統(tǒng)數(shù)據(jù),并制定完善的數(shù)據(jù)恢復(fù)計劃,以防止數(shù)據(jù)丟失或損壞;根據(jù)用戶角色(如學(xué)生、管理員)分配不同的系統(tǒng)權(quán)限,確保用戶只能訪問和操作其被授權(quán)的資源;建立嚴(yán)格的訂單處理流程,確保訂單信息的準(zhǔn)確性和完整性,防止因訂單錯誤導(dǎo)致的損失;對收集到的用戶數(shù)據(jù)進(jìn)行匿名化處理,避免泄露用戶個人隱私。設(shè)計的系統(tǒng)要穩(wěn)定性好、實用性強在校園點餐系統(tǒng)中,確保網(wǎng)速正常時,并且有大量用戶在線,系統(tǒng)的響應(yīng)迅速。這確保了系統(tǒng)在日常運行中的可靠性,用戶能夠快速、順暢地進(jìn)行操作,提高點餐效率。4.2系統(tǒng)架構(gòu)和開發(fā)環(huán)境4.2.1系統(tǒng)架構(gòu)設(shè)計在此基礎(chǔ)上,通過對上述系統(tǒng)的設(shè)計原理及需求分析,提出了在SpringBoot環(huán)境下,要將該系統(tǒng)劃分為前端。與后端是分開的,前端顯示層的功能是對用戶接口進(jìn)行顯示與交互,給使用者一個直觀、友好的操作體驗,而后端則是要解決這個問題。主要負(fù)責(zé)處理用戶的要求,實現(xiàn)功能,以及進(jìn)行數(shù)據(jù)的交互。4.2.2系統(tǒng)開發(fā)環(huán)境校園食堂訂餐系統(tǒng)在實際使用中,管理端在PC上使用,用端戶在APP上使用。本系統(tǒng)以Vue為前端,以MySql8.0為后臺開發(fā)架構(gòu)。InteLLiJIDEA2022.3用于后端開發(fā)工具?,F(xiàn)在主要的軟件公司都在使用這種開發(fā)環(huán)境。4.3系統(tǒng)功能模塊設(shè)計4.3.1系統(tǒng)功能模塊設(shè)計滿足前述各種需求的系統(tǒng)包括以下幾個模塊:員工管理、菜品管理、分類管理、套餐管理、地址管理、個人中心、購物車等功能。系統(tǒng)功能模塊結(jié)構(gòu)如圖4-1所示:圖4-1系統(tǒng)功能結(jié)構(gòu)模塊員工管理:系統(tǒng)支持新建員工信息,允許對已有員工數(shù)據(jù)進(jìn)行修改,并提供了刪除員工數(shù)據(jù)的功能。此外,用戶還可以根據(jù)員工編號查詢特定員工的詳細(xì)信息。員工數(shù)據(jù)涵蓋了員工id、姓名、用戶名、密碼、手機(jī)號、性別以及身份證號等關(guān)鍵信息,確保信息的全面性和準(zhǔn)確性。菜品管理:系統(tǒng)支持新建菜品信息,允許用戶修改已有的菜品數(shù)據(jù),并提供了刪除菜品數(shù)據(jù)的功能。此外,用戶還可以根據(jù)菜名稱來查詢并獲取相應(yīng)的菜品列表。每個菜品的信息都包含了價格、商品碼、圖片展示、詳細(xì)描述、當(dāng)前狀態(tài)以及展示順序等基本信息,確保菜品信息的完整性和易用性分類管理:系統(tǒng)支持新建分類,同時允許用戶對已存在的分類數(shù)據(jù)進(jìn)行修改或刪除操作。此外,用戶還可以通過查詢功能來獲取分類列表。每個分類的數(shù)據(jù)主要包括分類id和分類名稱等關(guān)鍵信息,確保分類信息的準(zhǔn)確性和便捷性。套餐管理:添加套餐信息,修改套餐數(shù)據(jù)和刪除套餐數(shù)據(jù),根據(jù)套餐id查詢套餐詳細(xì)信息。套餐數(shù)據(jù)主要包括菜品分類id、套餐名稱、套餐價格、狀態(tài)、編碼、描述信息、圖片等信息。訂單明細(xì):系統(tǒng)能夠根據(jù)用戶購物車中選定的菜品或套餐自動生成訂單。用戶還可以通過輸入訂單id來查詢訂單的詳細(xì)信息。每個訂單的數(shù)據(jù)都包含了訂單id、姓名、圖片、所選菜品或套餐的id、口味選擇、數(shù)量以及訂單總金額等關(guān)鍵信息,確保訂單信息的完整性和可追溯性。地址管理:用戶可以在此模塊中查看和編輯自己的個人信息,如姓名、學(xué)號、聯(lián)系方式等。這有助于確保用戶信息的準(zhǔn)確性和安全性,方便食堂管理人員進(jìn)行用戶識別和訂單管理。購物車:用戶模塊提供了詳細(xì)的菜單瀏覽功能,學(xué)生可以查看各類菜品、套餐及其價格等信息。通過直觀的界面設(shè)計和便捷的篩選功能,學(xué)生可以輕松選擇自己喜歡的菜品或套餐。個人中心:學(xué)生可以查看自己的個人信息,編輯個人信息。4.4系統(tǒng)用例模型根據(jù)系統(tǒng)使用范圍及需求,校園食堂訂餐系統(tǒng)應(yīng)該有兩類參與者:系統(tǒng)管理員、用戶(學(xué)生)。系統(tǒng)管理員是本系統(tǒng)的組織者和管理者,具有管理權(quán)限,依照業(yè)務(wù)流程可完成各項操作。用戶是本系統(tǒng)的重要參與者,擁有對應(yīng)的相關(guān)用戶權(quán)限。系統(tǒng)頂層用例如圖4-2。圖4-2系統(tǒng)頂層用例4.5數(shù)據(jù)庫設(shè)計4.5.1數(shù)據(jù)庫設(shè)計概述數(shù)據(jù)庫設(shè)計是指對于一個給定的應(yīng)用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫模式,建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng),使之能夠有效地存儲數(shù)據(jù),滿足各種用戶的應(yīng)用需求。同時數(shù)據(jù)庫設(shè)計中應(yīng)考慮數(shù)據(jù)冗余性,業(yè)務(wù)之間的關(guān)聯(lián)性、系統(tǒng)運行效率、數(shù)據(jù)庫實施問題等[12]。經(jīng)過對需求分析綜合考量,本系統(tǒng)選擇使用關(guān)系數(shù)據(jù)庫。通過對校園食堂訂餐系統(tǒng)所做的需求分析,本系統(tǒng)后臺數(shù)據(jù)庫采用MySQL8.0。它是一個功能強大、性能優(yōu)越、安全可靠的數(shù)據(jù)庫管理系統(tǒng)。能夠完全滿足校園食堂訂餐系統(tǒng)在數(shù)據(jù)安全性、完整性、可靠性等方面的需求。4.3.2數(shù)據(jù)庫表設(shè)計為滿足校園食堂訂餐系統(tǒng)的各項功能需求,本系統(tǒng)選用了MySQL8.0版本的數(shù)據(jù)庫,并創(chuàng)建了一個名為BS的數(shù)據(jù)庫。在該數(shù)據(jù)庫中,設(shè)計了十一張數(shù)據(jù)表,每張表都有其特定的名稱和功能,詳細(xì)如表4-3所示。這些表共同構(gòu)成了系統(tǒng)的數(shù)據(jù)基礎(chǔ),確保了系統(tǒng)能夠高效、準(zhǔn)確地處理各項訂餐業(yè)務(wù)。表4-3校園食堂訂餐系統(tǒng)數(shù)據(jù)庫的主要數(shù)據(jù)表序號數(shù)據(jù)表名稱數(shù)據(jù)表描述數(shù)據(jù)表功能1address_book地址管理存放地址數(shù)據(jù)2category菜品及套餐分類存放菜品及套餐分類數(shù)據(jù)3dish菜品管理存放菜品信息4dish_flavor菜品口味關(guān)系存放菜品口味關(guān)系信息5employee員工管理存放員工信息6order_detail訂單明細(xì)表存放訂單明細(xì)數(shù)據(jù)7orders訂單表存放管理員訂單表信息8setmeal套餐管理存放套餐信息9setmeal_dish套餐菜品關(guān)系存放套餐菜品關(guān)系信息10shopping_cart購物車存放已下單信息11user用戶信息存放用戶信息各數(shù)據(jù)表結(jié)構(gòu)描述如下:用戶表的主要功能是存儲用戶的各項數(shù)據(jù),它包含了多個字段,如用戶id、性別、狀態(tài)、姓名、手機(jī)號以及身份證號等,這些字段共同構(gòu)成了用戶信息的完整記錄。如下表4-4所示:表4-4用戶表名稱Code類型長度允許空值主鍵IdIdbigint0N是姓名namevarchar12Y否手機(jī)號phonevarchar11N否性別sexvarchar2Y否身份證號id_numbervarchar18Y否狀態(tài)statusint1Y否頭像avatarvarchar64Y否地址管理表的主要職責(zé)是存儲用戶的收貨地址信息。它包含了多個關(guān)鍵字段,如主鍵id、用戶id、市級區(qū)劃編號、省級區(qū)劃編號、收貨人姓名、手機(jī)號,以及對應(yīng)的省級和市級名稱等。這些字段共同確保了地址信息的準(zhǔn)確性和完整性,為用戶在訂餐過程中提供準(zhǔn)確的配送地址。如表4-5所示:表4-5地址管理表名稱Code類型長度允許空值主鍵主鍵ididbigint0N是用戶iduser_idbigint0N否收貨人consigneevarchar12N否性別sextinyint2N否手機(jī)號phonevarchar11N否省級區(qū)劃編號province_codevarchar12Y否省級名稱province_namevarchar32Y否市級區(qū)劃編號city_codevarchar12Y否市級名稱city_namevarchar32Y否區(qū)級區(qū)劃編號district_codevarchar12Y否區(qū)級名稱district_namevarchar32Y否詳細(xì)地址detailvarchar50Y否標(biāo)簽labelvarchar12Y否狀態(tài)is_defaulttinyint1N否創(chuàng)建時間create_timedatetime8N否更新時間update_timedatetime8N否創(chuàng)建人create_userbigint6N否修改人update_userbigint6N否菜品及套餐分類表的主要功能是存儲菜品和套餐的分類信息。該表包含了多個重要字段,如主鍵id、類型(用于區(qū)分是菜品分類還是套餐分類)、創(chuàng)建時間、展示順序、創(chuàng)建人、分類名稱,以及更新時間和更新人等。這些字段共同確保了分類信息的條理性和準(zhǔn)確性,為用戶在瀏覽和選擇菜品或套餐時提供了便利。如表4-6所示:表4-6菜品及套餐分類表名稱Code類型長度允許空值主鍵主鍵idIdbigint0N是類型typeint2Y否分類名稱namevarchar32N否順序short_nameint8N否創(chuàng)建時間create_timedatetime8N否創(chuàng)建人create_userbigint8N否更新人update_userbigint8N否更新時間update_timedatetime8N否菜品管理表的核心功能是存儲與管理菜品相關(guān)數(shù)據(jù)。該表包含了豐富的字段信息,如主鍵id、創(chuàng)建時間、描述信息、菜品名稱、價格、商品碼、所屬分類id、圖片鏈接、當(dāng)前狀態(tài)、展示順序、更新時間、修改人信息、創(chuàng)建人信息以及是否刪除標(biāo)記等。這些字段全面覆蓋了菜品的各項屬性,確保了菜品數(shù)據(jù)的完整性和準(zhǔn)確性,為用戶提供了豐富多樣的菜品選擇。如表4-7所示:表4-7菜品管理表名稱Code類型長度允許空值主鍵主鍵ididbigint0N是菜品名稱namevarchar64N否菜品分類idcategory_idbigint0N否菜品價格pricedecimal10Y否商品碼codevarchar64N否圖片imagevarchar64N否描述信息descriptionvarchar128Y否狀態(tài)statusint1N否順序sortint0N否創(chuàng)建時間create_timedatetime8N否更新時間update_timedatetime8N否創(chuàng)建人create_userbigint8N否更新人update_userbigint8N否是否刪除is_deletedint1N否菜品口味關(guān)系表的主要職責(zé)是存儲與管理菜品口味的相關(guān)數(shù)據(jù)。該表涵蓋了多個關(guān)鍵字段,包括主鍵id、口味名稱、關(guān)聯(lián)的菜品信息、創(chuàng)建時間、具體的口味數(shù)據(jù)描述、創(chuàng)建人信息、更新時間、修改人信息以及是否刪除的標(biāo)記等。這些字段共同確保了口味數(shù)據(jù)的準(zhǔn)確性和完整性,為用戶提供了豐富的口味選擇,并滿足了不同用戶的口味需求。如表4-8所示:表4-8菜品口味關(guān)系表名稱Code類型長度允許空值主鍵主鍵ididbigint0N是菜品dish_idbigint0N否口味名稱namevarchar64N否口味數(shù)據(jù)valuevarchar128Y否創(chuàng)建時間create_timedatetime8N否更新時間update_timedatetime8N否創(chuàng)建人create_userbigint8N否修改人update_userbigint8N否是否刪除is_deletedint1N否員工信息表的主要功能是存儲和管理員工的各項信息數(shù)據(jù)。該表包含了多個關(guān)鍵字段,如主鍵id、用戶名、姓名、手機(jī)號、性別、身份證號、密碼等基本信息,以及員工狀態(tài)(0表示禁用,1表示正常)、更新時間、創(chuàng)建時間、修改人信息和創(chuàng)建人信息等動態(tài)信息。這些字段共同確保了員工信息的準(zhǔn)確性和完整性,為企業(yè)的員工管理提供了有力的數(shù)據(jù)支持。如表4-9所示:表4-9員工信息表名稱Code類型長度允許空值主鍵主鍵ididbigint0N是姓名namevarchar6N否用戶名usernamevarchar32N否密碼passwordvarchar64N否手機(jī)號phonevarchar11N否性別sexvarchar2N否身份證號id_numbervarchar18N否狀態(tài)statusint1N否創(chuàng)建時間create_timedatetime8N否更新時間update_timedatetime8N否創(chuàng)建人create_userbigint8N否修改人update_userbigint8N否訂單明細(xì)表的主要功能是詳細(xì)記錄每個訂單的明細(xì)數(shù)據(jù)。該表包含了多個關(guān)鍵字段,如主鍵id、菜品或套餐的id、菜品圖片、名稱、所屬訂單id、金額、所選口味以及購買數(shù)量等。這些字段詳盡地展示了訂單的詳細(xì)信息,為訂單管理和后續(xù)的數(shù)據(jù)分析提供了有力的支持。如表4-10所示:表4-10訂單明細(xì)表名稱Code類型長度允許空值主鍵主鍵ididbigint0N是名字namevarchar32N否圖片usernamevarchar32N否訂單idpasswordbigint64N否菜品idphonebigint11N否套餐idsexbigint2N否口味id_numbervarchar18N否數(shù)量statusint32N否金額update_userdecimal64N否訂單表的主要功能是存儲用戶的訂單數(shù)據(jù)。該表包含多個關(guān)鍵字段,如主鍵id、下單用戶的標(biāo)識、唯一的訂單號、收貨地址的id、訂單狀態(tài)(如待付款、待派送、已派送、已送達(dá)等)、下單時間記錄、支付方式選擇(如微信或支付寶)、結(jié)賬時間、實際支付的金額以及訂單備注等。這些字段共同構(gòu)成了訂單的完整信息,為訂單管理、跟蹤和結(jié)算提供了便利。如表4-11所示:表4-11訂單表名稱Code類型長度允許空值主鍵主鍵ididbigint0N是訂單號numbervarchar50Y否訂單狀態(tài)statusint1N否下單用戶user_idbigint16N否地址idaddress_book_idbigint32N否下單時間order_timedatetime8N否結(jié)賬時間checkout_timedatetime8N否支付方式pay_methodint2N否實收金額amountdecimal10N否備注remarkvarchar64N否套餐表的主要職責(zé)是存儲和管理套餐的相關(guān)數(shù)據(jù)。該表包含了多個重要字段,如主鍵id、關(guān)聯(lián)的菜品分類id、套餐名稱、價格、狀態(tài)、唯一編碼、圖片鏈接、創(chuàng)建時間、描述信息、更新時間、創(chuàng)建人信息以及是否刪除的標(biāo)記等。這些字段全面覆蓋了套餐的各項屬性,確保了套餐數(shù)據(jù)的完整性和準(zhǔn)確性,為用戶提供了多樣化且便捷的套餐選擇。如表4-12所示:表4-12套餐表名稱Code類型長度允許空值主鍵主鍵ididbigint0N是菜品分類idcategory_idbigint8N否套餐名稱namavarchar64N否套餐價格pricedecimal10N否狀態(tài)statusint1Y否編碼codevarchar32Y否描述信息descriptionvarchar64Y否圖片imagevarchar64Y否創(chuàng)建時間create_timedatetime8N否更新時間update_timedatetime8N否創(chuàng)建人create_userbigint8N否修改人update_userbigint8N否是否刪除intint1N否套餐菜品關(guān)系表的主要功能是存儲和管理套餐與菜品之間的關(guān)聯(lián)數(shù)據(jù)。該表包含了多個關(guān)鍵字段,如主鍵id、關(guān)聯(lián)的套餐id、菜品id、菜品名稱、菜品原價、修改人信息、份數(shù)、創(chuàng)建時間、排序順序、更新時間、創(chuàng)建人信息以及是否刪除的標(biāo)記等。這些字段詳細(xì)記錄了套餐中包含的菜品及其相關(guān)信息,為用戶提供了清晰的套餐內(nèi)容展示,并方便了套餐的管理和調(diào)整。如表4-13所示:表4-13套餐菜品關(guān)系表名稱Code類型長度允許空值主鍵主鍵ididbigint0N是套餐idsetmeal_idbigint8N否菜品名稱namevarchar16N否菜品iddish_idvarchar10N否排序sortint8Y否份數(shù)copiesInt8Y否菜品原價pricevarchar64Y否創(chuàng)建時間create_timedatetime8N否更新時間update_timedatetime8N否創(chuàng)建人create_userbigint8N否修改人update_userbigint8N否是否刪除intint1N否購物表的主要功能是存儲用戶下單時所選商品的數(shù)據(jù)。該表包含多個關(guān)鍵字段,如主鍵id、商品名稱、總金額、購買數(shù)量、商品圖片鏈接、關(guān)聯(lián)的菜品id、所選口味、下單時的創(chuàng)建時間以及是否刪除的標(biāo)記等。這些字段共同構(gòu)成了用戶購物清單的完整記錄,為后續(xù)的訂單生成和訂單管理提供了重要的數(shù)據(jù)支持。如表4-14所示:表4-14購物車表名稱Code類型長度允許空值主鍵主鍵ididbigint0N是套餐idsetmeal_idbigint8N否名稱namevarchar16N否菜品iddish_idvarchar10N否圖片imagevarchar32Y否用戶iduser_idInt8Y否口味dish_flavorvarchar16Y否創(chuàng)建時間create_timedatetime8N否更新時間update_timedatetime8N否創(chuàng)建人create_userbigint8N否修改人update_userbigint8N否是否刪除intint1N否數(shù)量numberint8N否金額amountdecimal8N否5系統(tǒng)功能實現(xiàn)通過前幾章對校園食堂訂餐系統(tǒng)的需求分析和系統(tǒng)設(shè)計的深入剖析,本章將詳細(xì)闡述訂餐系統(tǒng)中主要功能的具體實現(xiàn)過程。將采用代碼結(jié)合注解的方式,對實現(xiàn)過程中的關(guān)鍵代碼段進(jìn)行解釋和分析,以便更好地理解系統(tǒng)功能的實現(xiàn)邏輯和代碼執(zhí)行流程。5.1數(shù)據(jù)庫連接本系統(tǒng)使用的數(shù)據(jù)庫是MySQL數(shù)據(jù)庫,在SpringBoot框架中在pom.xml文件中配置數(shù)據(jù)庫驅(qū)動版本,在application.yml文件中對數(shù)據(jù)庫的連接進(jìn)行配置。代碼實現(xiàn)如下:pom.xml配置:<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency>application.yml配置:配置端口,數(shù)據(jù)庫用戶名和密碼等server:port:8080spring:application:name:reggie_take_outdatasource:druid:driver-class-name:com.mysql.cj.jdbc.Driverurl:jdbc:mysql://localhost:3306/bs?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=trueusername:rootpassword:123456mybatis-plus:configuration:map-underscore-to-camel-case:truelog-impl:org.apache.ibatis.logging.stdout.StdOutImplglobal-config:db-config:id-type:ASSIGN_ID#使用雪花算法生成id5.2后端功能實現(xiàn)5.2.1登錄接口根據(jù)用戶輸入的用戶名和密碼,前端將數(shù)據(jù)通過類User將數(shù)據(jù)傳給后端接口,其次再與用戶表中的數(shù)據(jù)比對,查詢是否有該用戶名,若存在,則驗證密碼是否正確,若不存在,則提示用戶不存在。部分核心代碼如下:publicR<String>sendMassage(@RequestBodyUseruser,HttpSessionsession){Stringphone=user.getPhone();QueryWrapper<User>queryWrapper=newQueryWrapper<>();queryWrapper.eq("phone",phone);//驗證是否有此手機(jī)號Longcount=userService.count(queryWrapper);if(StringUtils.isNotEmpty(phone)&&count==1L){//生成6位驗證碼Stringcode=ValidateCodeUtils.generateValidateCode(6).toString();session.setAttribute("code",code);("驗證碼=="+code);MailUtils.sendMail("3278437553@","你好,注冊驗證碼:"+code,"驗證碼");returnR.success("發(fā)送驗證碼成功");}returnR.error("手機(jī)號錯誤");}5.2.2添加數(shù)據(jù)接口該接口實現(xiàn)了與前端的數(shù)據(jù)交互,前端頁面顯示要添加的數(shù)據(jù),通過JSON串給后端,并且前后端數(shù)據(jù)字段名稱需保持一致,后端接口對于前端傳入的數(shù)據(jù)進(jìn)行添加,若添加成功則返回狀態(tài)0,失敗則返回狀態(tài)1。部分核心代碼如下:publicR<String>save(HttpServletRequestrequest,@RequestBodyEmployeeemployee){//1、利用md5算法,設(shè)置員工初始密碼employee.setPassword(DigestUtils.md5DigestAsHex("123456".getBytes()));//2、設(shè)置員工創(chuàng)建時間employee.setCreateTime(LocalDateTime.now());//3、設(shè)置員工修改時間employee.setUpdateTime(LocalDateTime.now());//4、設(shè)置創(chuàng)建者idLongempId=(Long)request.getSession().getAttribute("employee");employee.setCreateUser(empId);//5、設(shè)置更新者idemployee.setUpdateUser(empId);Booleanret=employeeService.save(employee);if(ret){returnR.success("添加成功");}returnR.error("添加失敗");}5.2.3刪除數(shù)據(jù)接口該接口向前端提供刪除數(shù)據(jù)服務(wù),前端將需要刪除的數(shù)據(jù)的id傳給后端接口,后端接口先驗證該數(shù)據(jù)是否存在,若不存在,回顯異常信息,存在則執(zhí)行邏輯刪除指令,刪除指定一條或多條數(shù)據(jù)。部分核心代碼展示如下:@DeleteMapping@TransactionalpublicR<String>deleteSetmeal(HttpServletRequestrequest,Long[]ids){for(Longid:ids){//刪除套餐QueryWrapper<Setmeal>queryWrapper=newQueryWrapper<>();queryWrapper.eq("id",id);setmealService.remove(queryWrapper);//刪除套餐菜品QueryWrapper<SetmealDish>queryWrapper1=newQueryWrapper<>();queryWrapper1.eq("setmeal_id",id);setmealDishService.remove(queryWrapper1);}returnR.success("刪除成功");}}5.2.4修改數(shù)據(jù)接口該接口向前端提供數(shù)據(jù)修改服務(wù),前端傳入修改數(shù)據(jù)id和要修改的數(shù)據(jù),后端接口先查詢該數(shù)據(jù)是否存在,若不存在回顯異常信息,若存在,則連接數(shù)據(jù)庫執(zhí)行修改語句進(jìn)行修改。除此之外,修改接口可與新增數(shù)據(jù)接口共用一個接口,前端若是傳入的數(shù)據(jù)沒有id字段,后端接口則執(zhí)行新增代碼,若是傳入的數(shù)據(jù)存在id字段和其它數(shù)據(jù),則先通過id查詢該數(shù)據(jù)是否存在,存在則執(zhí)行修改指令,不存在,則回顯異常信息。部分核心代碼如下展示:@Override@TransactionalpublicvoidupdateWithSetmealDish(HttpServletRequestrequest,SetmealDtosetmealDto){LongempId=(Long)request.getSession().getAttribute("employee");//1、更新套餐setmealDto.setUpdateUser(empId);setmealDto.setUpdateTime(LocalDateTime.now());this.updateById(setmealDto);//2、更新套餐菜品//根據(jù)套餐id刪除原來的套餐菜品QueryWrapper<SetmealDish>queryWrapper=newQueryWrapper<>();queryWrapper.eq("setmeal_id",setmealDto.getId());setmealDishService.remove(queryWrapper);//將集合里面的元素取出來添加id等數(shù)據(jù),在返回集合List<SetmealDish>setmealDishes=setmealDto.getSetmealDishes();setmealDishes=setmealDishes.stream().map((item)->{item.setSetmealId(setmealDto.getId());item.setCreateTime(LocalDateTime.now());item.setUpdateTime(LocalDateTime.now());item.setCreateUser(empId);item.setUpdateUser(empId);returnitem;}).collect(Collectors.toList());setmealDishService.saveBatch(setmealDishes);}}5.2.5查詢數(shù)據(jù)接口查詢數(shù)據(jù)接口分為三種情況,第一種將所有數(shù)據(jù)進(jìn)行分頁查詢,前端傳入頁數(shù)和頁碼,后端接口根據(jù)頁數(shù)和頁碼通過JSON格式返回相關(guān)數(shù)據(jù);第二種是模糊查詢,前端除了要將頁數(shù)和頁碼傳入后端接口,還需傳入需要進(jìn)行模糊查詢的字段的數(shù)據(jù),這里要注意前后端字段保持一致;第三種是精確查詢,與模糊查詢原理一致,只是傳入的字段的值較為詳細(xì),所以查詢出的數(shù)據(jù)較為符合預(yù)期。部分核心代碼展示如下:@GetMapping("/page")publicR<Page>page(intpage,intpageSize,Stringname){//條件構(gòu)造器LambdaQueryWrapper<Employee>queryWrapper=newLambdaQueryWrapper();//如果查詢條件不為空,加入查詢條件,StringUtils.isNotEmptymybatis-plus包下queryWrapper.like(StringUtils.isNotEmpty(name),Employee::getName,name);//分頁構(gòu)造器PagepageInfo=newPage<>(page,pageSize);employeeService.page(pageInfo,queryWrapper);//可以不用返回Page,已經(jīng)封裝在Page里面了returnR.success(pageInfo);}5.2.6上傳接口上傳接口通常指的是在Web應(yīng)用程序或API中提供的一個功能點,允許用戶或客戶端上傳文件(如圖片、文檔、視頻等)到服務(wù)器。上傳接口的實現(xiàn)涉及前端和后端的協(xié)同工作,前端負(fù)責(zé)處理用戶選擇文件、構(gòu)建上傳請求等操作,后端則負(fù)責(zé)接收文件、存儲文件以及可能進(jìn)行的文件驗證和處理。部分核心代碼展示如下:@PostMapping("/upload")publicR<String>upload(HttpServletRequestrequest,MultipartFilefile){//這里參數(shù)名和前端參數(shù)名一致//提取生成文件名UUID+上傳圖片后綴.jpg.png//獲取文件的原始名稱StringFileName=file.getOriginalFilename();String saveFileName=FileNameUtil.getUUIDFileName()+FileNameUtil.getFileType(FileName);//得到項目中圖片存儲的路徑//Stringpath=request.getServletContext().getRealPath("/dishImage");//獲取的是文件夾image_big的路徑//path="D:\\softwareengineering\\java\\project\\ruijishangcheng\\target\\classes\\dishImage";//獲取的是文件夾image_big的路徑//轉(zhuǎn)存try{file.transferTo(newFile(path+File.separator+saveFileName));}catch(IOExceptione){e.printStackTrace();}returnR.success(saveFileName);}5.2.7下載文件接口該接口通常用于提供用戶先前上傳或應(yīng)用生成的文件,比如圖片、文檔、視頻或其他類型的數(shù)據(jù)文件。部分核心代碼展示如下:@GetMapping("/download")publicvoiddownload(Stringname,HttpServletResponseresponse,HttpServletRequestrequest){//設(shè)置響應(yīng)對象的編碼response.setContentType("image/jpeg");//Stringpath=request.getServletContext().getRealPath("/dishImage");//獲取的是文件夾image_big的路徑try{//輸入流,通過輸入流讀取文件FileInputStreamfileInputStream=newFileInputStream(newFile(path+File.separator+name));//輸出流,通過輸出流將文件寫回瀏覽器,在瀏覽器展示圖片ServletOutputStreamoutputStream=response.getOutputStream();intlen=0;byte[]bytes=newbyte[1024];while((len=fileInputStream.read(bytes))!=-1){outputStream.write(bytes,0,len);outputStream.flush();}outputStream.close();fileInputStream.close();}catch(FileNotFoundExceptione){e.printStackTrace();}catch(IOExceptione){e.printStackTrace();}}5.3前端功能實現(xiàn)本系統(tǒng)的前端頁中,主要實現(xiàn)了界面的顯示,將用戶的數(shù)據(jù)采集到后臺界面,通過界面獲得的數(shù)據(jù)向用戶顯示。5.3.1登錄模塊校園食堂訂餐系統(tǒng)的管理員登錄模塊已經(jīng)在PC端成功實現(xiàn)。圖5-1展示了這一登錄界面的具體樣式,整個頁面設(shè)計得既簡潔又清晰,內(nèi)容一目了然,極大地優(yōu)化了用戶的使用體驗。在賬戶輸入框中,用戶必須按照指定的格式輸入類似的,在口令欄里,使用者必須按照指定的格式輸入相應(yīng)的口令。如果用戶試圖將如果您使用的是您的系統(tǒng)沒有的名稱和密碼,您將立刻得到一個錯誤的提示,讓您再次輸入。在輸入了用戶名稱和密碼后,注冊成功后,就會出現(xiàn)在系統(tǒng)的后臺。圖5-1登錄界面當(dāng)使用者申請登入時,系統(tǒng)會收到來自前方的使用者名稱及密碼資訊,然后開始認(rèn)證過程。首先,該系統(tǒng)將按照以下步驟執(zhí)行根據(jù)所提供的使用者名稱,從資料庫中擷取對應(yīng)使用者資訊,以取得儲存的密碼。然后,系統(tǒng)將收到的口令保存在數(shù)據(jù)庫中。存儲代碼對照。如果這兩個參數(shù)是一致的,那么就意味著這個用戶已經(jīng)通過了認(rèn)證。這時,系統(tǒng)產(chǎn)生了一種安全、可靠的標(biāo)記。并將其傳送到前端。該標(biāo)記將作為一個認(rèn)證,以供使用者進(jìn)入該系統(tǒng),并在將來的行動中扮演重要的角色。然反之,如果系統(tǒng)發(fā)現(xiàn)使用者名稱是假的,或是密碼是錯誤的,它就會傳回一個明顯的錯誤資訊,提示使用者再次輸入正確的使用者名稱。用來保證登錄安全的口令。登錄界面部分前端代碼展示如下:functionloginApi(data){return$axios({'url':'/employee/login','method':'post',data})}5.3.2管理角色模塊1員工管理功能:涵蓋了員工查詢、禁用、編輯、添加等操作。前端頁面展示如圖5-3:圖5-3員工管理界面部分代碼展示如下:functiongetMemberList(params){return$axios({url:'/employee/page',method:'get',params})}2分類管理:涵蓋新增、修改、刪除等操作,旨在幫助餐飲管理者有效地組織和展示菜品,從而提升顧客的點餐體驗和提高經(jīng)營效率。前端頁面展示如圖5-4:圖5-4分類管理界面部分代碼展示如下://查詢列表數(shù)據(jù)constgetSetmealPage=(params)=>{return$axios({url:'/setmeal/page',method:'get',params})}3菜品管理:涵蓋新建、批量刪除、批量起售、批量停售、修改、停售刪除等操作。前端頁面展示如圖5-5:圖5-5菜品管理界面部分代碼展示如下:constaddSetmeal=(params)=>{return$axios({url:'/setmeal',method:'post',data:{...params}})}4套餐管理:包含查詢,批量刪除,批量開始銷售,批量停止銷售,修改,停止銷售和刪除。等操作。前端頁面展示如圖5-6:圖5-6套餐管理界面部分代碼展示如下:constquerySetmealById=(id)=>{return$axios({url:`/setmeal/${id}`,method:'get'})}5訂單明細(xì):涵蓋查詢、處理訂單等操作,為用戶提供了對訂單詳情的顯示與管理,使其能夠更好地追蹤訂單的狀況,并確保訂單準(zhǔn)確無誤地執(zhí)行。前端頁面展示如圖5-7:圖5-7訂單明細(xì)界面部分代碼展示如下:constqueryOrderDetailById=(id)=>{return$axios({url:`/orderDetail/${id}`,method:'get'})}5.3.3用戶模塊1購物車:讓使用者可以瀏覽和選擇自己喜歡的東西,然后把自己喜歡的東西加入購物車,這樣就可以一次買單了。前端頁面展示如圖5-8:圖5-8購物車頁面部分代碼展示如下:consteditOrderDetail=(params)=>{return$axios({url:'/order',method:'put',data:{...params}})}2用戶主頁面:用戶主頁面展示了各個菜品的詳細(xì)信息接分類信息。前端頁面展示如圖5-9:圖5-9用戶主界面部分代碼展示如下:constaddDish=(params)=>{return$axios({url:'/dish',method:'post',data:{...params}})}3用戶中心:涵蓋地址管理、頭像更換、查詢歷史訂單退出登錄等操作。前端頁面如圖5-10:圖5-10個人中心界面部分代碼展示如下:consteditCategory=(params)=>{return$axios({url:'/category',method:'put',data:{...params}})}4地址管理:涵蓋設(shè)為默認(rèn)地址、 編輯地址、添加地址等操作,幫助用戶更好地組織、存儲和使用地址信息。前端頁面如圖5-11:圖5-11地址管理界面部分代碼展示如下:functioncheckPhone(rule,value,callback){//let
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- (2025年標(biāo)準(zhǔn))車輛解壓委托協(xié)議書
- 2025-2030智慧零售行業(yè)市場發(fā)展分析及前景趨勢與投融資機(jī)會研究報告
- 2025-2030明礬石市場渠道變革與線上線下融合趨勢研究報告
- 元旦節(jié)交通安全知識培訓(xùn)課件
- 杭州醫(yī)學(xué)院《生物學(xué)》2024-2025學(xué)年第一學(xué)期期末試卷
- 武漢輕工大學(xué)《醫(yī)學(xué)細(xì)胞生物學(xué)實驗技術(shù)》2024-2025學(xué)年第一學(xué)期期末試卷
- 長春光華學(xué)院《貨幣與金融統(tǒng)計學(xué)》2024-2025學(xué)年第一學(xué)期期末試卷
- 婁底職業(yè)技術(shù)學(xué)院《GMP法規(guī)及實務(wù)》2024-2025學(xué)年第一學(xué)期期末試卷
- 吉林電子信息職業(yè)技術(shù)學(xué)院《生物材料學(xué)雙語》2024-2025學(xué)年第一學(xué)期期末試卷
- 鐵嶺衛(wèi)生職業(yè)學(xué)院《小學(xué)數(shù)學(xué)教材與教學(xué)案例研究》2024-2025學(xué)年第一學(xué)期期末試卷
- 中華人民共和國建筑法
- 腫瘤科運用PDCA循環(huán)降低入院化療患者院內(nèi)感染發(fā)生率品管圈成果匯報
- 腳手架安全專項培訓(xùn)
- Q-SY 08805-2021 安全風(fēng)險分級防控和隱患排查治理雙重預(yù)防機(jī)制建設(shè)導(dǎo)則
- 三相異步電動機(jī)正反轉(zhuǎn)說課課件
- 橋架支吊架安裝標(biāo)準(zhǔn)圖-橋架支吊架圖集
- GB/T 845-2017十字槽盤頭自攻螺釘
- GB/T 328.20-2007建筑防水卷材試驗方法第20部分:瀝青防水卷材接縫剝離性能
- FZ/T 01093-2008機(jī)織物結(jié)構(gòu)分析方法織物中拆下紗線線密度的測定
- 軍工產(chǎn)品技術(shù)狀態(tài)管理講義課件
- 壓力管道安裝許可規(guī)則-TSG D3001-2021
評論
0/150
提交評論