◆黎潔霞 甘漸寬 王方會 白玉
(南京工業(yè)大學浦江學院計算機通信與工程學院 江蘇 211200)
高校食堂作為高校后勤的保障,始終為高校內(nèi)的教學、科研活動和師生的基本生活提供了強有力的保障[1]。如何做好食堂的管理從古至今都是全世界各高校頭疼的問題,伴隨著時代科技的不斷發(fā)展,這個問題也隨著時代的發(fā)展逐漸融入了科技的痕跡。傳統(tǒng)的一般高校食堂占地面積小、人員點菜擁擠、服務人員操作不規(guī)范和商家管理不系統(tǒng)等問題,我們從如何解決這些問題作為出發(fā)點構(gòu)建這個項目。
本文設計和實現(xiàn)了一個基于SSM框架的新型可視化食堂點餐系統(tǒng),本系統(tǒng)的實現(xiàn)使用了SSM框架[2]、AdminLTE響應框架、MySQL數(shù)據(jù)庫。新型可視化食堂點餐系統(tǒng)既保存了傳統(tǒng)食堂點餐的自由性,又改變了傳統(tǒng)的食堂落后、浪費和繁雜的現(xiàn)象,給現(xiàn)代化的高校食堂提供了一個可靠又智能的點餐系統(tǒng)平臺,大大方便了學校食堂的管理和了學生的點餐過程,讓食堂的管理進入了新的時代。
以南京工業(yè)大學浦江學院為例,該學院分為兩個食堂,每個食堂有20~25個窗口,每個窗口又有10~15種[3],窗口之間又可能提供有相同的菜品,但菜的口感、色澤、分量和價格可能又不完全相同,例如:一食堂的水餃與二食堂的水餃在價格、口感、分量上各不相同,所以可能造成學生點到的飯不是自己喜歡的。本文根據(jù)本校的實際情況,對用戶群體進行分類,主要分為三種:客戶端、商家端和管理員端,以滿足不同用戶對該系統(tǒng)的要求。
客戶端可以實現(xiàn)學生在線點餐和來自大數(shù)據(jù)的推送服務,節(jié)約了學生的時間。學生還可以通過該系統(tǒng)提前預約自己想吃的菜品并對其進行評價。在當下疫情階段,為了減少校園食堂排隊而造成的肢體接觸,我們設置了外賣服務。
商戶端對僅對食堂窗口使用,如果一個人想成為商戶,需用戶個人登錄后,申請開店權(quán)限,填寫相應的店鋪信息,等待后臺的認證。認證成功后,該商戶就可上傳菜譜。商戶擁有查看訂單,對訂單刪除和查看預約菜品的權(quán)限,商戶可以通過財務收益,來查看年、月、日的收益額的訂單數(shù)。
管理員端主要負責對客戶信息、商戶信息和菜品信息進行收集和管理。管理員可以對一些不符合要求的信息進行告誡和懲戒。
本系統(tǒng)后端采用了SSM框架進行模塊化開發(fā),將整個系統(tǒng)分成了若干個子模塊,負責不同模塊的開發(fā)人員互不干涉,提高了系統(tǒng)開發(fā)的效率。另外,在業(yè)務層通過Spring容器,以DAO進行對象的訪問,并使用Spring中的IOC和AOP進行配置。在Mapping層中使用MyBatis,對SQL語句的高級映射,盡可能減少開發(fā)人員的SQL語句注入,能大大降低數(shù)據(jù)庫的管理復雜度,從而更加容易進行數(shù)據(jù)的增刪改查。
本系統(tǒng)的開發(fā)環(huán)境:
操作系統(tǒng):Windows11;編譯器:IntelliJ IDEA UItimate 2021.3;數(shù)據(jù)庫:MySQL 8.0.27;Web服務器:Tomcat 9.0.43;JDK版本:JDK1.8;前端響應框架:AdminLTE。
本系統(tǒng)前端采用AdminLTE響應框架,AdminLTE框架基于BootStrap、JQuery的框架開發(fā)是一個輕量級的開源模板主題工具。AdminLTE不僅美觀而且實用,對于前端開發(fā)可以減免許多工作量。
本系統(tǒng)后端采用的SSM框架,SSM框架由S(Spring)+S(SpringMVC)+M(MyBatis)構(gòu)成,適用于搭建許多大型的系統(tǒng)。Spring的思想為控制反轉(zhuǎn)IoC,控制反轉(zhuǎn)的好處就是可以減少開發(fā)人員的工作量,Spring通過裝配Bean容器,減少開發(fā)人員初始化類的次數(shù)。
SpringMVC的工作流程為:服務器發(fā)送request請求到DispatcherServlet分發(fā)器中;接著將DispatcherServlet查詢HanderMapping找到請求處理的Controller。Controller處理完成后,返回一個ModelAndView對象,DispatcherServlet查詢視圖解析器,找到ModelAndView的指定視圖,視圖將結(jié)果顯示到客戶端中。SpringMVC的流程圖如圖1:
圖1 SpringMVC流程圖
MyBatis是Java的持久層框架,是對JDBC的封裝,讓數(shù)據(jù)庫的底層操作變得透明,極大程度下減少了JDBC的代碼和參數(shù)的設置,并使用了XML或者注解用于配置和映射,實現(xiàn)了對于解耦。
本系統(tǒng)對比傳統(tǒng)J2EE開發(fā)模型進行整合改進,形成新型的、輕量化的SSM架構(gòu),并且采用SSM框架整合以及MVC設計模式,能確保代碼的可擴展性和持久性,也能夠解決系統(tǒng)邏輯上的耦合問題。
AdminLTE[4]是一款建立在Bootstrap和JQuery之上的開源的模板主題工具。它提供一系列可響應的、重復使用的組件,并內(nèi)置了多個模板頁面,自適應多種屏幕分辨率,兼容PC和移動端,可快速創(chuàng)建一個響應式的HTML5網(wǎng)站。總之,AdminLTE 不但美觀,而且可以免去寫CSS與JS語句的工作量。
(1)數(shù)據(jù)持久層的創(chuàng)建
業(yè)務邏輯層對該層的操作封裝在Bean層目錄,同時進行CRUD配置操作,實現(xiàn)了對MyBatis和SpringMVC的有效整合。創(chuàng)建名為orderingsystem數(shù)據(jù)庫,其中表數(shù)據(jù)為user表、tb_user表、order表、food表、business表、settlement表,其關系圖如圖2所示。
圖2 數(shù)據(jù)模型關系圖
(2)業(yè)務邏輯層的創(chuàng)建
將Spring作為層面容器框架,是框架中較為核心的邏輯應用。該邏輯應用有效地將用戶信息與持久層整合,能快速高效響應客戶端用戶模塊的應用需求,并及時啟用邏輯響應函數(shù),從而快速有效實現(xiàn)用戶的對應操作。新增Service包,包類添加service接口,在接口中添加需要用到的方法,添加實現(xiàn)類,并實現(xiàn)接口方法,在類上添加注解@Service,注入repository,在測試類中注入實現(xiàn)類,進行Service中的各個方法測試。
(3)表示層的創(chuàng)建
表示層主要作用是界面展示,接收請求,分發(fā)請求。使用Spring MVC的DispatcherServlet前端控制器攔截用戶請求,其數(shù)據(jù)由請求分布給對應的響應控制器進行操作及響應。比如,用戶請求傳來時,先被前端控制器攔截,然后通過用戶請求來返回相應的管理操作,并且界面上能正常回顯其響應結(jié)果。
利用Spring進行MVC邏輯分離,實現(xiàn)對應的邏輯函數(shù)并在表現(xiàn)層響應結(jié)果,Service配置映射進行邏輯函數(shù)跳轉(zhuǎn),MyBatis進行用戶信息數(shù)據(jù)持久化保存和事務管控實現(xiàn)SSM框架整合,框架整合完成后即可實現(xiàn)在線點餐系統(tǒng)。具體整合架構(gòu)如圖2所示。
圖3 MVC架構(gòu)
1) 整合三個配置文件springmvc.xml,不用配置controller,使用注解,配置組件掃描器,applicationContext.xml,不用配置dao和service,使用注解,配置組件掃描器,保留數(shù)據(jù)源,url的值一定要改,配置一個session工廠(也可以通過Spring-mybatis jar包),mybatisconfig.xml,集中管理庫表映射文件。
2) 配置事務管理器、配置AOP通知、配置AOP,為添加事務管理的操作配置AOP(配置的是接口)。
3) lib下Web.xml的配置需要配置監(jiān)聽器,配置中央控制器,配置spring提供的字符編碼過濾器(filter和filter-mapping)里面也都要初始化參數(shù)。
如圖4所示,該系統(tǒng)登錄界面使用AdminLTE開發(fā),簡約美觀。管理員輸入郵箱和密碼登錄后跳轉(zhuǎn)點餐管理系統(tǒng),在管理系統(tǒng)中管理員可以對賬號、食品菜單等進行增刪改查。類似的,用戶可以在相應的用戶登錄頁面進行登錄后進行點餐和結(jié)算。
圖4 注冊登錄界面
如圖5 所示,主界面與登錄界面使用相同前端框架。消費者和管理員可以通過輸入用戶名、郵箱和密碼進行注冊,客戶端會對密碼和確認密碼進行一致性判斷,成功后會自動跳轉(zhuǎn)至相應主界面。用戶密碼則采用MD5加密方式存儲在數(shù)據(jù)庫中,進而提高系統(tǒng)的安全性。
圖5 主頁面界面
當我們位于現(xiàn)代智能化的時代,一個優(yōu)秀的高校的食堂點餐管理系統(tǒng)需要跟上時代的步伐。本文我們分析了高校食堂點餐管理的需求,以SSM框架設計了這套系統(tǒng)的后端,并設計了整個系統(tǒng)的整合,以AdminLTE前端響應框架設計了整個前端頁面,以MySQL設計了系統(tǒng)的數(shù)據(jù)庫,最終實現(xiàn)了這套系統(tǒng)。該系統(tǒng)完成了高校對食堂管理和學生對食堂點餐的改進要求,提升了高校對食堂管理的效率,方便了學生點餐的過程。
但是這個系統(tǒng)還沒有全部完成,我們后面會加上商家和高校對菜品的消費的財務計算和人員流量的可視化功能。