(附源码)spring boot中小学餐饮配送系统 毕业设计 645661
springboot中小學餐飲配送系統(tǒng)
摘要
本論文系統(tǒng)地描繪了整個中小學餐飲配送系統(tǒng)的設計與實現(xiàn),主要實現(xiàn)的功能有以下幾點:首頁、站點管理(管理員、普通用戶)內容管理(資訊列表、資訊分類)更多管理(餐品信息管理、分類管理、訂單管理)系統(tǒng)管理等功能,其具有簡單的接口,方便的應用,強大的互動,完全基于互聯(lián)網(wǎng)的特點。
現(xiàn)代社會的網(wǎng)絡和信息技術不斷提高,人們的生活水平達到一個新的水平。點餐成為一種人們習以為常的生活方式,一個充分利用碎片化時間,簡化點餐配送過程的程序,正是我們所需要的。這篇文章研究了基于springboot的中小學餐飲配送系統(tǒng)的開發(fā)和實現(xiàn),從需求分析、總體設計到具體實現(xiàn),最終完成了整個中小學餐飲配送系統(tǒng)。
關鍵詞:中小學餐飲配送,互聯(lián)網(wǎng)模式,數(shù)據(jù)庫
Springboot primary and secondary school catering distribution system
This paper systematically describes the design and implementation of the whole catering distribution system in primary and secondary schools. The main functions are as follows: home page, site management (administrators and ordinary users), content management (information list and information classification), more management (food information management, classification management and order management), system management and other functions. It has simple interface, convenient application and strong interaction, Completely based on the characteristics of the Internet.
With the continuous improvement of network and information technology in modern society, people's living standards have reached a new level. Ordering has become a way of life that people are used to. A program that makes full use of fragmented time and simplifies the ordering and distribution process is exactly what we need. This paper studies the development and implementation of primary and secondary school catering distribution system based on springboot, from demand analysis, overall design to specific implementation, and finally completes the whole primary and secondary school catering distribution system.
Key words:?Catering distribution in primary and secondary schools, Internet model, database
目 ?錄
第1章?緒???論
1.1課題背景
1.2 國內外發(fā)展現(xiàn)狀
1.3 開發(fā)工具及技術 3
1.4 研究內容 5
第2章 系統(tǒng)分析 7
2.1 可行性分析 7
2.2總體設計原則 7
2.3 系統(tǒng)需求分析 8
2.4 業(yè)務流程分析 8
第3章 系統(tǒng)設計 11
3.1 系統(tǒng)概要設計 11
3.2系統(tǒng)結構設計 11
3.3 數(shù)據(jù)庫設計 12
第4章系統(tǒng)實現(xiàn)
4.1系統(tǒng)功能模塊
4.2管理員功能模塊 22
4.3用戶功能模塊 24
第5章軟件測試
5.1軟件測試的重要性
5.2測試實例的研究與選擇
5.3測試環(huán)境與測試條件
5.4系統(tǒng)運行情況
5.5系統(tǒng)評價
第6章?總結 30
參考文獻: 31
致謝 33
1.1課題背景
在當今節(jié)奏飛快的時代,學院人員的餐飲問題往往需要快捷地解決。隨著計算機和4G網(wǎng)絡的飛速發(fā)展以及智能手機的普及,世界已經(jīng)形成了“地球村”?;ヂ?lián)網(wǎng)的飛速發(fā)展為我們的生活帶來了便利,我們可以利用互聯(lián)網(wǎng)來完成點餐以及派餐的命令。中國互聯(lián)網(wǎng)用戶規(guī)模超過8億,互聯(lián)網(wǎng)普及率達到60%。在互聯(lián)網(wǎng)中,在線餐飲的交付已成為三種主要飲食方法之一,中國在線點餐派餐用戶繼續(xù)增長到4億,增長了20%,其中3.9億人通過手機點餐在線交付。目前,中國點餐餐行業(yè)的狀況已經(jīng)穩(wěn)定,發(fā)展的速度令人難以置信,但市場尚未飽和。當前我們需要深入研究優(yōu)質用戶的需求,并最大限度地利用現(xiàn)有用戶的價值。
在當今社會,點餐派餐已成為餐廳必不可少的一部分,它的存在對于個人和商家而言非常重要。因此,外賣點餐派餐系統(tǒng)應能夠提供個人與商家之間的溝通渠道,并為個人用戶提供足夠的信息且為商家提供訂購信息。在智能手機流行之前,商人使用傳統(tǒng)的低效率手動方法來管理外賣。這種方法有很多缺點,例如保密性差,效率低下和數(shù)據(jù)冗余,而點餐派餐系統(tǒng)可以解決這些問題。與傳統(tǒng)電話訂購相比,外賣點餐派餐系統(tǒng)非常重要。對于餐飲業(yè)務,信息管理的實施大大提高了效率,提高了數(shù)據(jù)的準確性,減少了數(shù)據(jù)的時延,大大提高了速度,并節(jié)省了大量紙張成本。同時,點餐派餐數(shù)據(jù)還可以使業(yè)務績效更加直觀。對于個人消費者而言,瀏覽餐廳信息非常方便,并且消除了撥打電話等復雜的手段。同時,在線點餐派餐還可以促進消費者的消費。
1.2 國內外發(fā)展現(xiàn)狀
近年來,中國也涌現(xiàn)出了很多O2O的生活平臺,2013年市場規(guī)模已經(jīng)達到了1717.2億元,到2017年的時候,O2O的市場規(guī)模將達到4545.1億元,增長率達到27.6%,其中網(wǎng)上訂餐的增長率將超過6%,而從市場格局來看也說明,中國的網(wǎng)絡外賣訂餐行業(yè)已經(jīng)引來了高速發(fā)展的機遇期。然而中國的訂餐服務也是在歷經(jīng)了電話訂餐、微博訂餐后進入了網(wǎng)上訂餐,當前我國經(jīng)濟在快速發(fā)展。中國消費者邁進了數(shù)字化時代。對中國大多數(shù)行業(yè)來說,互聯(lián)網(wǎng)可以顯著提高勞動生產(chǎn)率,但大多數(shù)具體的好處酒店和餐廳卻尚未實現(xiàn),更多地反映在與消費相關的層面。無論是菜品的豐富度,還是價格的競爭力,還是相對的便利性,消費者大量轉移到點餐派餐平臺已經(jīng)大勢所趨。
事實上,國外的訂餐網(wǎng)址已經(jīng)發(fā)展的相當成熟了。特別是美國的市場表現(xiàn)的尤為突出,這個突出主要體現(xiàn)在行業(yè)的數(shù)據(jù)以及運營的企業(yè):從行業(yè)數(shù)據(jù)來看,2012年美國餐飲行業(yè)銷售收入規(guī)模達6363億美元,餐飲企業(yè)98萬家,其中外賣規(guī)模達670億美元;從運營企業(yè)來看,美國早在2000年以前就已經(jīng)有外賣O2O企業(yè)的存在,而如今對于已經(jīng)發(fā)展了快20年的美國,外賣訂餐O2O市場基本成熟,部分早期創(chuàng)辦的企業(yè)依舊保持著穩(wěn)定的發(fā)展,同時一些關于創(chuàng)作、標新立異的企業(yè)也在不斷涌現(xiàn)。本文所設計的中小學餐飲配送系統(tǒng)就是在這種客觀條件下進行的,是一項利民利國的、非常有價值的工作。在菜系管理方面,傳統(tǒng)的管理方式顯然無法與中小學餐飲配送系統(tǒng)相比,中小學餐飲配送系統(tǒng)正發(fā)揮著越來越重要的作用。中小學餐飲配送系統(tǒng)的速度快、信息量大、安全、簡單都是傳統(tǒng)模式難以企及的優(yōu)點,正在發(fā)揮著越來越重要的作用。在本文中的中小學餐飲配送系統(tǒng)是一個基于MySQL數(shù)據(jù)庫和JSP語言的。
1.3 開發(fā)工具及技術
本系統(tǒng)前端框架采用了比較流行的漸進式JavaScript框架Vue.js。使用Vue-Router和Vuex實現(xiàn)動態(tài)路由和全局狀態(tài)管理,Ajax實現(xiàn)前后端通信,Element UI組件庫使頁面快速成型。后端部分:采用springboot作為開發(fā)框架,同時集成MyBatis、Redis等相關技術。
1.3.1?MVVM模式
MVVM是Model-View-ViewModel的簡寫。它本質上就是MVC 的改進版。MVVM 就是將其中的View 的狀態(tài)和行為抽象化,讓我們將視圖 UI 和業(yè)務邏輯分開。當然這些事 ViewModel 已經(jīng)幫我們做了,它可以取出 Model 的數(shù)據(jù)同時幫忙處理 View 中由于需要展示內容而涉及的業(yè)務邏輯。微軟的WPF帶來了新的技術體驗,如Silverlight、音頻、視頻、3D、動畫……,這導致了軟件UI層更加細節(jié)化、可定制化。同時,在技術層面,WPF也帶來了 諸如Binding、Dependency Property、Routed Events、Command、DataTemplate、ControlTemplate等新特性。MVVM(Model-View-ViewModel)框架的由來便是MVP(Model-View-Presenter)模式與WPF結合的應用方式時發(fā)展演變過來的一種新型架構框架。它立足于原有MVP框架并且把WPF的新特性糅合進去,以應對客戶日益復雜的需求變化。
1.3.2?B/S結構
B/S(Browser/Server)比前身架構更為省事的架構。它借助Web server完成數(shù)據(jù)的傳遞交流。只需要下載瀏覽器作為客戶端,那么工作就達到“瘦身”效果, 不需要考慮不停裝軟件的問題。
1.3.3?MySQL
MMySQL數(shù)據(jù)庫是較為出名的關系形數(shù)據(jù)庫,它使用大量的二維表來進行存儲數(shù)據(jù)而不是把數(shù)據(jù)封裝存儲早同一個“倉庫”中,十分有利于提高速度和數(shù)據(jù)應用的靈活性。
中小企業(yè)網(wǎng)站開發(fā)商的首選數(shù)據(jù)庫一般也是MySQL。SQL語言是它的標準語言。由于該數(shù)據(jù)庫在體積、速度和運營成本方面的優(yōu)勢,特別是開放源代碼的技術特點,因此深受開發(fā)者的喜愛。
1..3.4?Vue.js 主要功能
Vue.js是一套構建用戶界面的漸進式框架。與其他重量級框架不同的是,Vue采用自底向上增量開發(fā)的設計。Vue 的核心庫只關注視圖層,并且非常容易學習,非常容易與其它庫或已有項目整合。另一方面,Vue 完全有能力驅動采用單文件組件和Vue生態(tài)系統(tǒng)支持的庫開發(fā)的復雜單頁應用。
Vue.js 的目標是通過盡可能簡單的 API 實現(xiàn)響應的數(shù)據(jù)綁定和組合的視圖組件。
Vue.js 自身不是一個全能框架——它只聚焦于視圖層。因此它非常容易學習,非常容易與其它庫或已有項目整合。另一方面,在與相關工具和支持庫一起使用時,Vue.js 也能驅動復雜的單頁應用。
1.3.5 ?Springboot框架介紹
Spring框架是Java平臺上的一種開源應用框架,提供具有控制反轉特性的容器。盡管Spring框架自身對編程模型沒有限制,但其在Java應用中的頻繁使用讓它備受青睞,以至于后來讓它作為EJB(EnterpriseJavaBeans)模型的補充,甚至是替補。Spring框架為開發(fā)提供了一系列的解決方案,比如利用控制反轉的核心特性,并通過依賴注入實現(xiàn)控制反轉來實現(xiàn)管理對象生命周期容器化,利用面向切面編程進行聲明式的事務管理,整合多種持久化技術管理數(shù)據(jù)訪問,提供大量優(yōu)秀的Web框架方便開發(fā)等等。Spring框架具有控制反轉(IOC)特性,IOC旨在方便項目維護和測試,它提供了一種通過Java的反射機制對Java對象進行統(tǒng)一的配置和管理的方法。Spring框架利用容器管理對象的生命周期,容器可以通過掃描XML文件或類上特定Java注解來配置對象,開發(fā)者可以通過依賴查找或依賴注入來獲得對象。Spring框架具有面向切面編程(AOP)框架,SpringAOP框架基于代理模式,同時運行時可配置;AOP框架主要針對模塊之間的交叉關注點進行模塊化。Spring框架的AOP框架僅提供基本的AOP特性,雖無法與AspectJ框架相比,但通過與AspectJ的集成,也可以滿足基本需求。Spring框架下的事務管理、遠程訪問等功能均可以通過使用SpringAOP技術實現(xiàn)。Spring的事務管理框架為Java平臺帶來了一種抽象機制,使本地和全局事務以及嵌套事務能夠與保存點一起工作,并且?guī)缀蹩梢栽贘ava平臺的任何環(huán)境中工作。Spring集成多種事務模板,系統(tǒng)可以通過事務模板、XML或Java注解進行事務配置,并且事務框架集成了消息傳遞和緩存等功能。Spring的數(shù)據(jù)訪問框架解決了開發(fā)人員在應用程序中使用數(shù)據(jù)庫時遇到的常見困難。它不僅對Java:JDBC、iBATS/MyBATIs、Hibernate、Java數(shù)據(jù)對象(JDO)、ApacheOJB和ApacheCayne等所有流行的數(shù)據(jù)訪問框架中提供支持,同時還可以與Spring的事務管理一起使用,為數(shù)據(jù)訪問提供了靈活的抽象。Spring框架最初是沒有打算構建一個自己的WebMVC框架,其開發(fā)人員在開發(fā)過程中認為現(xiàn)有的StrutsWeb框架的呈現(xiàn)層和請求處理層之間以及請求處理層和模型之間的分離不夠,于是創(chuàng)建了SpringMVC。
1.3.6 JavaScript 運行模式:
JavaScript是一種屬于網(wǎng)絡的高級腳本語言,已經(jīng)被廣泛用于Web應用開發(fā),常用來為網(wǎng)頁添加各式各樣的動態(tài)功能,為用戶提供更流暢美觀的瀏覽效果。通常JavaScript腳本是通過嵌入在HTML中來實現(xiàn)自身的功能的。
1.1是一種解釋性腳本語言(代碼不進行預編譯)。
1.2主要用來向HTML(標準通用標記語言下的一個應用)頁面添加交互行為。
1.3可以直接嵌入HTML頁面,但寫成單獨的js文件有利于結構和行為的分離。
1.4跨平臺特性,在絕大多數(shù)瀏覽器的支持下,可以在多種平臺下運行(如Windows、Linux、Mac、Android、iOS等)。
1.5 JavaScript腳本語言同其他語言一樣,有它自身的基本數(shù)據(jù)類型,表達式和算術運算符及程序的基本程序框架。JavaScript提供了四種基本的數(shù)據(jù)類型和兩種特殊數(shù)據(jù)類型用來處理數(shù)據(jù)和文字。而變量提供存放信息的地方,表達式則可以完成較復雜的信息處理。
?1.3.7Vue.js 主要功能
Vue.js是一套構建用戶界面的漸進式框架。與其他重量級框架不同的是,Vue采用自底向上增量開發(fā)的設計。Vue 的核心庫只關注視圖層,并且非常容易學習,非常容易與其它庫或已有項目整合。另一方面,Vue 完全有能力驅動采用單文件組件和Vue生態(tài)系統(tǒng)支持的庫開發(fā)的復雜單頁應用。
Vue.js 的目標是通過盡可能簡單的 API 實現(xiàn)響應的數(shù)據(jù)綁定和組合的視圖組件。
Vue.js 自身不是一個全能框架——它只聚焦于視圖層。因此它非常容易學習,非常容易與其它庫或已有項目整合。另一方面,在與相關工具和支持庫一起使用時,Vue.js 也能驅動復雜的單頁應用。
1.4研究內容
中小學餐飲配送系統(tǒng)的開發(fā)及實現(xiàn),所需要的工作內容:
(1)首先是確定選題,確定好所要做的系統(tǒng),并對系統(tǒng)的背景及現(xiàn)在面臨的一些問題等進行系統(tǒng)的初步確認。
(2)系統(tǒng)確認完成后,結合系統(tǒng)開發(fā)的需求進行確認系統(tǒng)開發(fā)所使用的技術,中小學餐飲配送系統(tǒng)的開發(fā)使用Springboot框架,數(shù)據(jù)庫進行平臺的搭建開發(fā),確認好使用的技術進行技術分析,所使用的技術是否可以完成系統(tǒng)的實現(xiàn)。
(3)確定好系統(tǒng)使用的技術,進行在線確認系統(tǒng)所劃分的用戶角色,并且根據(jù)用戶角色劃分確定所要設計的功能模塊,對中小學餐飲配送系統(tǒng)的設計主要劃分別為管理員和用戶角色,并所使用的功能模塊也相應不同,但是系統(tǒng)的數(shù)據(jù)庫實現(xiàn)的內容是交互的,用戶可以隨時根據(jù)自己的需求進行課程信息,對于系統(tǒng)工作人員可以根據(jù)自己的分管內容進行在線信息的處理及操作,管理員獲取到所有用戶的詳細數(shù)據(jù)信息,并根據(jù)需求進行第一時間處理解決。
(4)系統(tǒng)的功能模塊確認完成后進行程序及界面的設計,設計完成后,并且通過測試來判斷程序是否完善,對于系統(tǒng)測試,需要不同的用戶進行不同的內容編輯及提交,及使用不同的測試方式找出程序中存在的漏洞,并對程序出現(xiàn)的漏洞問題進行在線解決處理,如果測試系統(tǒng)沒有任何問題時,可以將系統(tǒng)上傳進行正式操作使用。
系統(tǒng)分析
2.1?可行性分析
可行性分析的目的是確定一個系統(tǒng)是否有必要開發(fā)、確定系統(tǒng)是否能以最小的代價實現(xiàn)。其工作主要有三個方面,分別是技術、經(jīng)濟和社會三方面的可行性。我會從這三個方面對中小學餐飲配送系統(tǒng)進行詳細的分析。
2.1.1技術可行性
該系統(tǒng)主要使用JAVA、MyEclipse和MySQL數(shù)據(jù)庫進行開發(fā),Java易于學習和使用靈活。在校期間也接觸過MyEclipes和MySQL數(shù)據(jù)庫的課程,對此有一定的開發(fā)經(jīng)驗,因此開發(fā)難度不高,所以從技術上來說是可行的。
2.1.2經(jīng)濟可行性
本系統(tǒng)設計所選擇的開發(fā)工具和服務器都是免費的開源軟件,又或者是適合學生使用的免費版本,并不需要支付費用,而且由作者本人單獨完成,也不存在團隊費用,幾乎沒有經(jīng)濟成本,具備經(jīng)濟可行性。
2.1.3社會可行性
社會可行性主要包括法律和用戶兩個方面,下面將從這兩方面進行分析。
(1)法律因素
本系統(tǒng)是學習開發(fā)所制作的程序,并不用作商業(yè)用途,是在根據(jù)實際調研的結果結合現(xiàn)有的中小學餐飲配送系統(tǒng)后得出的,而且系統(tǒng)制作的全部過程都是在個人的工作電腦中完成的,使用的都是開源和免費的開發(fā)環(huán)境、分析軟件和數(shù)據(jù)庫,不存在侵權問題。
(2)用戶可行性
操作人員或者客戶只需要具備一定的windows電腦操作常識,不需要精通計算機技能。此外系統(tǒng)管理人員,只需要在windows常識之上再熟悉下使用Tomcat服務器的操作流程,只要掌握一定的計算機知識即可,在正式上線運營之前,僅需要對操作人員進行簡單的熟悉流程培訓即可。所以從用戶可行性上也是可行的。
2.2總體設計原則
一個系統(tǒng)要在開發(fā)和維護的過程中方便使用,必須采取一定的設計原則,其主要設計原則有:
簡單性:系統(tǒng)功能簡單易懂,只需要掌握基本的計算機操作能力即可使用。
針對性:針對特定的用戶,沒有多余的其他功能,使用戶可以專心使用。
實用性:能夠滿足用戶查看餐品信息等方面的需求。
一致性:設計風格、命名規(guī)范一致,整個系統(tǒng)的各個功能模塊色彩、擺放位置、功能等都是一致的。
先進性:本系統(tǒng)的代碼采用讀取數(shù)據(jù)的方式,方便后續(xù)開發(fā)、拓展。
2.3 系統(tǒng)需求分析
中小學餐飲配送系統(tǒng)需要滿足的需求有以下幾個:
1.信息獲取方便,用戶可在網(wǎng)頁上快速瀏覽到新的信息
2.查看點餐詳情,單獨查看某一個餐品信息,獲取好評等。
3.注冊登錄,餐飲需要吸引客戶,即通過注冊來提高用戶的存留率。
4.歷史記錄,用戶可以查看自己訂單信息以及其他操作。
5.修改用戶信息,可以修改用戶密碼或者用戶名等一些個性化操作。
6.管理員功能,管理員可以對用戶或者點餐進行管理。
7.系統(tǒng)安全,操作簡便,不過于復雜。
8.系統(tǒng)可以穩(wěn)定運行,不存在卡頓等問題造成用戶反感。
2.4 業(yè)務流程分析
2.4.1登錄流程
登錄模塊主要滿足管理員以及用戶的權限登錄,用戶登錄流程圖如圖2-1所示。
圖2-1?登錄流程圖
2.4.2注冊流程
未有賬號的用戶可進入注冊界面進行注冊操作,用戶注冊流程圖如圖2-2所示。
圖2-2?注冊流程圖
2.4.3添加信息流程
用戶在添加信息時,信息編號自動生成,系統(tǒng)會對添加的信息進行驗證,驗證通過則添加至數(shù)據(jù)庫,添加信息成功,反之添加失敗。添加信息流程如圖2-3所示。
圖2-3?添加信息流程圖
2.4.4刪除信息流程
用戶可選擇要刪除的信息進行信息刪除操作,在刪除信息時系統(tǒng)提示是否確定刪除信息,是則刪除信息成功,系統(tǒng)數(shù)據(jù)庫將信息進行刪除。刪除信息流程圖如圖2-4所示。
圖2-4刪除信息流程圖
3.1 系統(tǒng)概要設計
本中小學餐飲配送系統(tǒng)選擇B/S結構(Browser/Server,瀏覽器/服務器結構)和基于Web服務兩種模式。適合在互聯(lián)網(wǎng)上進行操作,只要用戶能連網(wǎng),任何時間、任何地點都可以進行系統(tǒng)的操作使用。系統(tǒng)工作原理圖如圖3-1所示:
圖3-1 系統(tǒng)工作原理圖
3.2系統(tǒng)結構設計
整個系統(tǒng)是由多個功能模塊組合而成的,要將所有的功能模塊都一一列舉出來,然后進行逐個的功能設計,使得每一個模塊都有相對應的功能設計,然后進行系統(tǒng)整體的設計。
本中小學餐飲配送系統(tǒng)結構圖如圖3-2所示。
圖3-2?中小學餐飲配送系統(tǒng)結構圖
3.3 數(shù)據(jù)庫設計
數(shù)據(jù)庫可以說是所有軟件的根本,如果數(shù)據(jù)庫存在缺陷,那么會導致系統(tǒng)開發(fā)的不順利、維護困難、用戶使用不順暢等一系列問題,嚴重時將會直接損害企業(yè)的利益,同時在開發(fā)完成后,數(shù)據(jù)庫缺陷也更加難以解決。所以必須要對數(shù)據(jù)庫設計重點把握,做到認真細致。因此,數(shù)據(jù)庫設計是這個中小學餐飲配送系統(tǒng)的重點要素。
3.3.1概念結構設計
(1)管理員實體屬性圖如下圖3-3所示
圖3-3管理員實體屬性圖
(2)?系統(tǒng)實體屬性如下圖3-4所示
圖3-4系統(tǒng)實體屬性圖
3.3.2數(shù)據(jù)庫表設計
將數(shù)據(jù)庫概念設計的E-R圖轉換為關系數(shù)據(jù)庫。在關系數(shù)據(jù)庫中,數(shù)據(jù)關系由數(shù)據(jù)表組成,但是表的結構表現(xiàn)在表的字段上。
|
| |||||
| 字段名稱 | 類型 | 長度 | 不是null | 主鍵 | 字段說明 |
| business_id | int | 11 | 否 | 主鍵 | 商家ID |
| store_name | varchar | 64 | 是 | 店名 | |
| shop_telephone | varchar | 64 | 是 | 店鋪電話 | |
| store_address | varchar | 64 | 是 | 店鋪地址 | |
| storefront_cover | varchar | 255 | 是 | 店面封面 | |
| business_qualification | varchar | 255 | 是 | 經(jīng)營資質 | |
| hits | int | 11 | 否 | 點擊數(shù) | |
| praise_len | int | 11 | 否 | 點贊數(shù) | |
| examine_state | varchar | 16 | 否 | 審核狀態(tài) | |
| recommend | int | 11 | 否 | 智能推薦 | |
| user_id | int | 11 | 否 | 用戶ID | |
| create_time | datetime | 0 | 否 | 創(chuàng)建時間 | |
| update_time | timestamp | 0 | 否 | 更新時間 | |
| 字段名稱 | 類型 | 長度 | 不是null | 主鍵 | 字段說明 |
| classification_management_id | int | 11 | 否 | 主鍵 | 分類管理ID |
| type | varchar | 64 | 是 | 類型 | |
| recommend | int | 11 | 否 | 智能推薦 | |
| create_time | datetime | 0 | 否 | 創(chuàng)建時間 | |
| update_time | timestamp | 0 | 否 | 更新時間 | |
| 字段名稱 | 類型 | 長度 | 不是null | 主鍵 | 字段說明 |
| Food_order_id | int | 11 | 否 | 主鍵 | 餐品訂單ID |
| commodity_number | varchar | 64 | 是 | 商品編號 | |
| name | varchar | 64 | 是 | 名稱 | |
| type | varchar | 64 | 是 | 類型 | |
| specifications | varchar | 64 | 是 | 規(guī)格 | |
| price | varchar | 64 | 是 | 價格 | |
| business | int | 11 | 是 | 商家 | |
| user | int | 11 | 是 | 用戶 | |
| number_of_meals_ordered | varchar | 64 | 是 | 訂餐數(shù) | |
| contact_number | varchar | 64 | 是 | 聯(lián)系電話 | |
| delivery_address | varchar | 64 | 是 | 送餐地址 | |
| total | varchar | 64 | 是 | 總計 | |
| order_status | varchar | 64 | 是 | 訂單狀態(tài) | |
| recommend | int | 11 | 否 | 智能推薦 | |
| create_time | datetime | 0 | 否 | 創(chuàng)建時間 | |
| update_time | timestamp | 0 | 否 | 更新時間 | |
| 字段名稱 | 類型 | 長度 | 不是null | 主鍵 | 字段說明 |
| ordinary_users_id | int | 11 | 否 | 主鍵 | 普通用戶ID |
| full_name | varchar | 64 | 是 | 姓名 | |
| gender | varchar | 64 | 是 | 性別 | |
| examine_state | varchar | 16 | 否 | 審核狀態(tài) | |
| recommend | int | 11 | 否 | 智能推薦 | |
| user_id | int | 11 | 否 | 用戶ID | |
| create_time | datetime | 0 | 否 | 創(chuàng)建時間 | |
| update_time | timestamp | 0 | 否 | 更新時間 | |
| 字段名稱 | 類型 | 長度 | 不是null | 主鍵 | 字段說明 |
| slides_id | int | 10 | 否 | 主鍵 | 輪播圖ID |
| title | varchar | 64 | 是 | 標題 | |
| content | varchar | 255 | 是 | 內容 | |
| url | varchar | 255 | 是 | 鏈接 | |
| img | varchar | 255 | 是 | 輪播圖 | |
| hits | int | 10 | 否 | 點擊量 | |
| create_time | timestamp | 0 | 否 | 創(chuàng)建時間 | |
| update_time | timestamp | 0 | 否 | 更新時間 | |
| 字段名稱 | 類型 | 長度 | 不是null | 主鍵 | 字段說明 |
| Food information_id | int | 11 | 否 | 主鍵 | 餐品信息ID |
| commodity_number | varchar | 64 | 是 | 編號 | |
| name | varchar | 64 | 是 | 名稱 | |
| type | varchar | 64 | 是 | 類型 | |
| cover | varchar | 255 | 是 | 封面 | |
| specifications | varchar | 64 | 是 | 規(guī)格 | |
| price | varchar | 64 | 是 | 價格 | |
| number | varchar | 64 | 是 | 數(shù)量 | |
| business | int | 11 | 是 | 商家 | |
| details | longtext | 0 | 是 | 詳情 | |
| hits | int | 11 | 否 | 點擊數(shù) | |
| praise_len | int | 11 | 否 | 點贊數(shù) | |
| recommend | int | 11 | 否 | 智能推薦 | |
| create_time | datetime | 0 | 否 | 創(chuàng)建時間 | |
| update_time | timestamp | 0 | 否 | 更新時間 | |
第4章系統(tǒng)實現(xiàn)
4.1系統(tǒng)功能模塊
中小學餐飲配送系統(tǒng),在系統(tǒng)首頁可以查看首頁、餐品信息、訂單信息、美食資訊跳轉到后臺等內容,如圖4-1所示。
圖4-1系統(tǒng)功能界面圖
???美食資訊管理,在美食資訊管理可以查看標題、內容等信息,如圖4-2所示。
圖4-2美食資訊界面圖
資訊列表,在資訊列表頁面可以查看資訊詳細信息,如圖4-3所示。在注冊頁面通過填寫用戶賬號、密碼、用戶姓名、手機等信息完成用戶注冊,如圖4-4所示。
圖4-3資訊列表界面圖
圖4-4注冊界面圖
用戶注冊邏輯代碼如下:
/**
?????* 注冊
?????* @param user
?????* @return
?????*/
????@PostMapping("register")
????public Map<String, Object> signUp(@RequestBody User user) {
????????// 查詢用戶
????????Map<String, String> query = new HashMap<>();
????????query.put("username",user.getUsername());
????????List list = service.select(query, new HashMap<>()).getResultList();
????????if (list.size()>0){
????????????return error(30000, "用戶已存在");
????????}
????????user.setUserId(null);
????????user.setPassword(service.encryption(user.getPassword()));
????????service.save(user);
????????return success(1);
}
4.2管理員功能模塊
管理員登錄,通過填寫注冊時輸入的用戶名、密碼、權限進行登錄,如圖4-5所示。
圖4-5管理員登錄界面圖
管理員登錄進入中小學餐飲配送系統(tǒng)可以查看首頁、站點管理(管理員、普通用戶)內容管理(資訊列表、資訊分類)更多管理(餐品信息管理、分類管理、訂單管理)系統(tǒng)管理等信息,如圖4-6所示。
圖4-6管理員功能界面圖
資訊分類管理,在分類列表中可以查看資訊分類等內容,還可以根據(jù)需要對分類資訊修改或刪除操作,如圖4-7所示。
圖4-7資訊分類管理界面圖
餐品品信息管理,在餐品信息管理列表中可以查看餐品編號、名稱、價格、圖片、分類信息,并可根據(jù)需要進行修改或刪除操作,如圖4-8所示。
圖4-8餐品信息管理界面圖
餐品信息管理的邏輯代碼如下:
?@RequestMapping("/get_obj")
????public Map<String, Object> obj(HttpServletRequest request) {
????????Query select = service.select(service.readQuery(request), service.readConfig(request));
????????List resultList = select.getResultList();
????????if (resultList.size() > 0) {
????????????JSONObject jsonObject = new JSONObject();
????????????jsonObject.put("obj",resultList.get(0));
????????????return success(jsonObject);
????????} else {
????????????return success(null);
????????}
}
?public Query select(Map<String,String> query,Map<String,String> config){
????????StringBuffer sql = new StringBuffer("select ");
????????sql.append(config.get(FindConfig.FIELD) == null || "".equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" ");
????????sql.append("from ").append("`").append(table).append("`").append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));
????????if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){
????????????sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" ");
????????}
????????if (config.get(FindConfig.ORDER_BY) != null && !"".equals(config.get(FindConfig.ORDER_BY))){
????????????sql.append("order by ").append(config.get(FindConfig.ORDER_BY)).append(" ");
????????}
????????if (config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE))){
????????????int page = config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1;
????????????int limit = config.get(FindConfig.SIZE) != null && !"".equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10;
????????????sql.append(" limit ").append( (page-1)*limit ).append(" , ").append(limit);
????????}
????????log.info("[{}] - 查詢操作,sql: {}",table,sql);
????????return runEntitySql(sql.toString());
????}
訂單信息管理,在訂單信息管理列表中可以查看餐品編號、餐品名稱、類型、價格、總價格、訂餐人、手機、送貨地址、備注、是否審核等信息,并可根據(jù)需要進行修改或刪除操作,如圖4-9所示。
圖4-9訂單信息管理界面圖
訂單信息管理的邏輯代碼如下:
??@PostMapping("/add")
????@Transactional
????public Map<String, Object> add(HttpServletRequest request) throws IOException {
????????service.insert(service.readBody(request.getReader()));
????????return success(1);
????}
????@Transactional
????public Map<String, Object> addMap(Map<String,Object> map){
????????service.insert(map);
????????return success(1);
}
????public Map<String,Object> readBody(BufferedReader reader){
????????BufferedReader br = null;
????????StringBuilder sb = new StringBuilder("");
????????try{
????????????br = reader;
????????????String str;
????????????while ((str = br.readLine()) != null){
????????????????sb.append(str);
????????????}
????????????br.close();
????????????String json = sb.toString();
????????????return JSONObject.parseObject(json, Map.class);
????????}catch (IOException e){
????????????e.printStackTrace();
????????}finally{
????????????if (null != br){
????????????????try{
????????????????????br.close();
????????????????}catch (IOException e){
????????????????????e.printStackTrace();
????????????????}
????????????}
????????}
????????return null;
}
????public void insert(Map<String,Object> body){
????????StringBuffer sql = new StringBuffer("INSERT INTO ");
????????sql.append("`").append(table).append("`").append(" (");
????????for (Map.Entry<String,Object> entry:body.entrySet()){
????????????sql.append("`"+humpToLine(entry.getKey())+"`").append(",");
????????}
????????sql.deleteCharAt(sql.length()-1);
????????sql.append(") VALUES (");
????????for (Map.Entry<String,Object> entry:body.entrySet()){
????????????Object value = entry.getValue();
????????????if (value instanceof String){
????????????????sql.append("'").append(entry.getValue()).append("'").append(",");
????????????}else {
????????????????sql.append(entry.getValue()).append(",");
????????????}
????????}
????????sql.deleteCharAt(sql.length() - 1);
????????sql.append(")");
????????log.info("[{}] - 插入操作:{}",table,sql);
????????Query query = runCountSql(sql.toString());
????????query.executeUpdate();
????}
用戶管理,在用戶管理列表中可以查看用戶賬號、密碼、用戶姓名、性別、手機、照片等內容,并且根據(jù)需要進行修改或刪除操作,如圖4-10所示。
圖4-10用戶管理界面圖
用戶管理的邏輯代碼如下。
@RestController
@RequestMapping("auth")
public class AuthController extends BaseController<Auth, AuthService> {
????/**
?????* 服務對象
?????*/
????@Autowired
????public AuthController(AuthService service) {
????????setService(service);
????}
}
4.3用戶功能模塊
用戶登錄進入中小學餐飲配送系統(tǒng)可以查看首頁、公告欄、美食資訊、餐品信息等內容,如圖4-11所示。
圖4-11用戶功能界面圖
個人中心,在用戶信息列表中通過填寫用戶賬號、密碼、用戶姓名、性別、手機、照片等信息進行提交,如圖4-12所示。
圖4-12個人中心界面圖
個人中心的邏輯代碼如下。
server:
??port: 5000
??servlet:
????context-path: /api
spring:
??datasource:
????url: jdbc:mysql://127.0.0.1:3306/CS725260_20211101091736?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8
????username: root
????password: root
????driver-class-name: com.mysql.cj.jdbc.Driver
??jackson:
????property-naming-strategy: CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES
????default-property-inclusion: ALWAYS
????time-zone: GMT+8
????date-format: yyyy-MM-dd HH:mm:ss
??servlet:
????multipart:
??????max-file-size: 100MB
??????max-request-size: 100MB
訂單信息管理,在訂單信息列表中可以查看餐品編號、餐品名稱、價格、購買數(shù)量、總價格、訂購人、手機、送貨地址、備注、是否支付等信息,如圖4-13所示。
圖4-13訂單信息管理界面圖
訂單信息管理的邏輯代碼如下:
??@RequestMapping(value = {"/avg_group", "/avg"})
public Map<String, Object> avg(HttpServletRequest request) {
????????Query count = service.avg(service.readQuery(request), service.readConfig(request));
????????return success(count.getResultList());
}
第5章軟件測試
測試存在于軟件開發(fā)進程中的最后一個階段,它可以保證一個軟件的開發(fā)質量是否符合設計者的初衷,也為程序的正式上線做了最后一道質量檢測的工序。軟件測試主要是控制各種條件、包括軟件輸出方式,使用模式和運行環(huán)境等,來評估一個系統(tǒng)或應用是否符合設計標準。在軟件測試過程中,我們一般刻意的去制造錯誤和極端條件,不能僅依照正常模式允許,而是多去嘗試那些意外的情況。
5.1軟件測試的重要性
只有在運行和維護階段之前經(jīng)歷大量的測試的軟件,才能說明它的質量是經(jīng)得起檢驗的。最近計算機業(yè)界也都一致認為,測試應該存在于軟件設計的每個階段,因為越早發(fā)現(xiàn)錯誤,修復起來就越容易。
實際上,對于一個軟件應用,錯誤是必然存在的,無論使用何種技術或手段,都不可能絕對的排除軟件漏洞。測試是隨著軟件開發(fā)一同誕生的,兩者是共同發(fā)展進步的。實際上,測試可以大幅度的降低維護的成本,如果一個漏洞在開發(fā)的早期就被發(fā)現(xiàn),那么修復它的成本遠比上線后再修復的成本要低得多。
5.2測試實例的研究與選擇
測試有白盒測試和黑盒測試兩種方式。
其中,白盒測試是將軟件看成一個透明的白盒子,按照程序的內部控制結構和處理技術邏輯來選定測試用例、軟件系統(tǒng)測試的邏輯路徑及過程需要進行管理測試,又稱玻璃盒測試。因此白盒測試需要選擇足夠多的測試用例,覆蓋盡可能多的代碼來發(fā)現(xiàn)程序中的錯誤。
黑盒測試,也稱為功能測試。它將需軟件看作一個黑盒,像一個普通用戶一樣來模擬軟件的使用流程。黑盒測試通過大量的輸入邊界值或錯誤數(shù)據(jù),來檢查是否可產(chǎn)生正確的輸出。
本系統(tǒng)測試 主要選擇黑盒測試,少量采用白盒測試。通過測試達到以下測試目的:
1.檢查各大功能模塊的運行,確保其能夠正確運行,并檢查各頁面的完整性,保證頁面完整。
2.檢查各個接口是否可以正確地輸入和輸出,保證數(shù)據(jù)流通穩(wěn)定可行。
3.檢查數(shù)據(jù)結構,保證其和外部接口沒有訪問錯誤,訪問順利。
4.檢查原計劃的性能需求有沒有完成,運行流暢。
本系統(tǒng)的測試用例(部分):
| 登錄部分測試用例 | |||||
| 編號 | 對象 | 項目 | 操作 | 預期結果 | 結果 |
| 1 | 登錄 | 登錄提示 | 使用正確的賬號密碼登錄 | 成功登錄 | 預期結果 |
| 2 | 登錄提示 | 使用正確的賬號但錯誤的密碼登錄 | 提示密碼錯誤 | 預期結果 | |
| 3 | 登錄提示 | 使用錯誤的賬號登錄 | 提示不存在賬戶 | 預期結果 | |
| 4 | 登錄提示 | 不輸入賬號,點擊登錄 | 提示輸入賬號 | 預期結果 | |
| 5 | 登錄提示 | 輸入賬號但不輸入密碼點擊登錄 | 提示輸入密碼 | 預期結果 | |
| 6 | 登錄入口 | 已登錄賬號,查看登錄入口 | 不顯示登錄入口 | 預期結果 | |
5.3測試環(huán)境與測試條件
處理器:Inter Core I7-4710MQ四核處理器
內存:4GB
硬盤:1T
操作系統(tǒng):Windows 10
數(shù)據(jù)庫:MySQL
5.4系統(tǒng)運行情況
全部測試用例都已通過(包括但不限于以上測試用例),且不存在漏洞,實現(xiàn)了論文開始時所作要求。本系統(tǒng)運行穩(wěn)定,使用流暢,可以滿足客戶需求。
5.5系統(tǒng)評價
5.5.1系統(tǒng)功能評價
試運行后進行系統(tǒng)評估,可以認為該系統(tǒng)達到預定的目標要求,可以滿足用戶的需求,也滿足了系統(tǒng)開發(fā)前所作目標。
5.5.2系統(tǒng)技術評價
系統(tǒng)在經(jīng)過大量重復測試后運行十分穩(wěn)定,安全實用,功能模塊已經(jīng)達到預定目標所需。
5.5.3系統(tǒng)經(jīng)濟評價
在規(guī)定的時間內實現(xiàn)系統(tǒng)的大部分功能,且滿足要求,節(jié)省開發(fā)成本,有助于提高科學管理水平,符合本人經(jīng)濟情況。
第6章 總結
2022年的今天,計算機技術已經(jīng)相當成熟。它的發(fā)展推動了許多行業(yè)改頭換面,計算機的出現(xiàn)使人類社會有了進一步降低人力物力和資源的方法,提高了人類社會的生產(chǎn)力,轉變了社會生產(chǎn)方式。目前各大餐飲都在積極備戰(zhàn),發(fā)展計算機和互聯(lián)網(wǎng),結合自身優(yōu)勢進軍互聯(lián)網(wǎng)行業(yè)成為各大企業(yè)的重點項目。
本文利用JAVA和MySQL數(shù)據(jù)庫技術,通過分析現(xiàn)實中小學餐飲配送系統(tǒng)業(yè)務流程的基礎上,并完成了中小學餐飲配送系統(tǒng)。經(jīng)調試結果顯示,本系統(tǒng)基本可以滿足一個中小學餐飲配送系統(tǒng)的業(yè)務需要。系統(tǒng)界面簡潔而有美感, 易操作,做出了自己的特色,然而因為時間倉促再加上缺乏系統(tǒng)開發(fā)經(jīng)驗和僅依靠少數(shù)問卷調查方式,因此本系統(tǒng)還存在不少缺陷、不足,比如:
1. 數(shù)據(jù)輸入的格式并沒有全部檢驗,所以很難保證數(shù)據(jù)的準確,可能有一些不符合規(guī)則的數(shù)據(jù)也可以通過檢驗。
2. 系統(tǒng)功能還不夠完善,無法提供豐富多彩的在線功能,只能實現(xiàn)菜品信息管理、分類管理、訂單信息管理、用戶管理、美食資訊管理等一系列功能。
本系統(tǒng)還存在一些漏洞沒有解決,在現(xiàn)實應用情境中很難保證完全不出錯,但相信通過再次完善,可以調試出真正符合實際的中小學餐飲配送系統(tǒng)。
參考文獻:
[2]朱廣躍.移動Web點餐系統(tǒng)的設計[J].集成電路應用,2022,39(01):124-125.
[3]劉學玉.JAVA編程語言在計算機軟件開發(fā)中的應用[J].電子技術與軟件工程,2022(01):57-60.
[4]黃美益.基于Java Web技術的教學資源庫系統(tǒng)設計[J].電子技術與軟件工程,2022(01):229-232.
[5]王瑛瑛.基于Java技術的英語學習激勵系統(tǒng)設計與實現(xiàn)[J].微型電腦應用,2021,37(12):71-73+77.
[6]涂華燕.基于MySQL宿舍管理系統(tǒng)數(shù)據(jù)庫設計[J].電腦編程技巧與維護,2021(12):104-106.
[7]佟亞超.計算機軟件Java編程特點及技術探析[J].技術與市場,2021,28(12):86-87+89.
[8]易潔,黃翔.基于《MySQL數(shù)據(jù)庫技術》的新形態(tài)教材開發(fā)與應用[J].機械職業(yè)教育,2021(12):53-57.
[9]閆繼正,張雷,張海濤.基于MySQL的空管設備集中監(jiān)控系統(tǒng)數(shù)據(jù)庫設計[J].微處理機,2021,42(06):47-51.
[10]何芳.Java平臺及應用Java技術的安全問題分析[J].科技資訊,2021,19(35):10-12.
[11]Zhuoxi Zhang,Ming Yuan,Hanwei Qian. Research on MySQL Database Recovery and Forensics Based on Binlog[C]//Proceedings of the 11th International Conference on Computer Engineering and Networks(CENet2021)Part I.,2021:750-759.
[12]喻佳,吳丹新.基于SpringBoot的Web快速開發(fā)框架[J].電腦編程技巧與維護,2021(09):31-33.
[13]鹿俊聰.基于Android的食堂點餐系統(tǒng)的設計與實現(xiàn)[J].科學技術創(chuàng)新,2021(22):101-102.
[14]馮秀玲.智能點餐系統(tǒng)設計與應用[J].電子技術,2021,50(06):30-32.
[15]邱璐璐,陳俊仁.基于SpringBoot和Vue框架的高校代領系統(tǒng)設計與實現(xiàn)[J].信息技術與信息化,2021(04):25-27.
[16]Guanhong Chen,Jiangming Xu. Design and implementation of efficient Learning platform based on SpringBoot Framework[J]. Journal of Electronics and Information Science,2020,6(1):
[17]Minmin He,Shengli Lv. Research on Civil Aircraft Structural Strength Material Performance Database Based on SpringBoot[C]//Proceedings of 2020 4th International Conference on Electrical,Automation and Mechanical Engineering(EAME2020).Proceedings of 2020 4th International Conference on Electrical,2020:1062-1067.
[18]田海晴. 基于SpringBoot和Vue框架的共享運營管理平臺的設計與實現(xiàn)[D].山東大學,2020.
[19]葉濟凡. 基于SpringBoot與Vue框架的中文社科論文分析系統(tǒng)的設計與實現(xiàn)[D].南京大學,2020.
[20]吳彥文. 外賣點餐軟件品類導航服務及其運營系統(tǒng)的設計與實現(xiàn)[D].南京大學,2017.
致???謝
大學生活在這個時候即將劃上一個句號,但是對于我的人生道路來說,這僅僅是一個逗號,我將面對的是又一次征程的開始。
回憶過去,許許多多的事情浮現(xiàn)在腦海:剛上大學時歡樂心情和興奮的場景還歷歷在目。一切都是那么新鮮,那么富有吸引力。有快樂也有艱辛,有收獲也有失落。衷心感謝信息學院所有支持幫助過我的老師,謝謝你們多年來的關心和愛護。同窗的友情同樣難忘,你們與我共同走過了人生中不平凡的道路,給我留下了值得珍藏的美好記憶。
最后,我要特別感謝指導點餐購票系統(tǒng)論文設計的老師。本論文是在他的悉心指導和熱情幫助下完成的,老師認真負責的工作態(tài)度,嚴謹?shù)闹螌W精神和精深的理論水平都使我受益匪淺。老師無論在理論上還是在實踐中,都給予我很大的幫助,使我專業(yè)技能的應用水平得到很大提高,這對于我以后的工作和學習都有益處。值此論文完成之際,特別向老師表示衷心的感謝和崇高的敬意,謝謝他細心而又耐心地輔導,使得我得以順利的完成畢業(yè)設計開發(fā)工作,同時也要感謝其他幫助過我的老師和同學,他們在我成長過程中給予了我很大的幫助,在此一并表示感謝。
由于本人水平有限,加上時間緊促,本文一定有不少缺點和不足,懇請各位老師給予幫助和指正。
免費領取本源代碼、數(shù)據(jù)庫,請私信
總結
以上是生活随笔為你收集整理的(附源码)spring boot中小学餐饮配送系统 毕业设计 645661的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: nowcoder-顺时针打印矩阵-模拟魔
- 下一篇: PLC系统设计电气接线图的要求