張黎娜 童敏 張文盛
摘要:該文以安徽廣播電視大學(xué)的食堂現(xiàn)狀為基礎(chǔ),開發(fā)的高校食堂移動預(yù)約點餐系統(tǒng)可以滿足高校用戶通過移動設(shè)備實現(xiàn)就餐地點、就餐時間、菜品數(shù)量的選擇,就餐人數(shù)、就餐食物數(shù)量的統(tǒng)計。對于節(jié)省人力、提高效率都有顯著作用,并且有利于數(shù)據(jù)的流動管理。
關(guān)鍵詞:微信;移動點餐;系統(tǒng)設(shè)計;系統(tǒng)實現(xiàn)
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2018)30-0052-03
Abstract: The paper that development of the mobile reservation system for college canteens,based on the present situation of Anhui radio and Television University,can meet the choice of the place of dining, the time of eating,the number of the dishes ,and count the numbers of people and dishes. This system has a significant effect on saving manpower and improving efficiency, and is beneficial to the management of data.
Key words: WeChat; mobile order; system designing; system implementation
高校食堂一直以來存在的問題,就餐食堂的選擇,就餐人數(shù)多,排隊時間長,菜品種類單一,食物準備不足,食物嚴重浪費。本文以安徽廣播電視大學(xué)的食堂現(xiàn)狀為基礎(chǔ),開發(fā)的高校食堂移動預(yù)約點餐系統(tǒng)可以滿足用戶的預(yù)約點餐;食堂管理者對就餐人數(shù),時間,食材數(shù)量的把控,有效地實現(xiàn)了隨時隨地點餐,食堂的動態(tài)管理,菜品多樣化等,避免或減少上述問題的出現(xiàn)。
為了適應(yīng)移動互聯(lián)網(wǎng)時代發(fā)展趨勢,本系統(tǒng)借助微信平臺接口[1],與安徽廣播電視大學(xué)微信公眾號綁定,用戶在微信端關(guān)注安徽電大微信公眾號,選擇微服務(wù)-微點餐即可進入。
1 預(yù)約點餐系統(tǒng)的設(shè)計與實現(xiàn)
1.1 設(shè)計目標
食堂預(yù)約點餐系統(tǒng)以簡便、易用為設(shè)計目標,以所見即所得為設(shè)計指導(dǎo),實現(xiàn)用戶通過移動設(shè)備隨時隨地點餐,食堂管理人員對用餐人數(shù)、用餐量較準確的的統(tǒng)計,提高用戶的體驗感及食堂的管理水平。
1.2 設(shè)計思想
食堂點餐管理系統(tǒng)主要分為前臺點餐頁面、后臺管理兩部分,點餐頁面有訪問權(quán)限設(shè)置,管理員要事先導(dǎo)入學(xué)校教職工信息,并建立個人賬戶,賬戶內(nèi)存儲著用戶的個人信息和訂單記錄信息。用戶首次點餐時,需輸入個人相關(guān)信息和微信號進行綁定,系統(tǒng)自動驗證登錄信息的有效性(可以保存登錄信息,下次直接登錄,提升用戶體驗),然后進行預(yù)約點餐,提交點餐請求,若被系統(tǒng)驗證成功則存儲點餐紀錄;后臺管理權(quán)限分為:超級管理員、食堂管理員兩個角色,超級管理員擁有所有的權(quán)限,食堂管理員只能操作規(guī)定范圍內(nèi)的功能模塊,如:在菜品庫添加菜品,日常配餐,訂單管理,就餐日期、人數(shù)、菜品數(shù)量的統(tǒng)計等。
食堂預(yù)約點餐系統(tǒng)前臺以圖片列表的形式,直觀地顯示就餐日期,不同時間段食堂提供的菜品。用戶登錄后可以點選自己需要的食物,輸入菜品數(shù)量,提交自己的預(yù)約點餐信息即可,界面非常簡單、便捷、易操作,在點餐期間可以取消或是修改自己的點餐信息(菜品數(shù)量)。管理后臺以樹形結(jié)構(gòu)陳列管理功能,操作直觀、簡單、便捷。
1.3 軟硬件配置
本系統(tǒng)需要一臺普通的服務(wù)器,安裝windows 2008操作系統(tǒng),MySQL5.6和PHP7。系統(tǒng)基于B/S架構(gòu),采用Windows2008+PHP(fastCGI)[2]+MS SQL2005配置。IIS7內(nèi)置fatcgi模塊,可以在運行fastCGI模式的腳本引擎。PHP運行在fastCGI模式下,是一種最高效和最安全的運行模式,支持大并發(fā)量和高負載。PHP7內(nèi)置Opcache模塊能夠緩存PHP的中間代碼,節(jié)省編譯時間,優(yōu)化執(zhí)行。MySQL5.6[2]屬于小型數(shù)據(jù)庫產(chǎn)品,支持絕大多數(shù)重要特性,性能完全滿足需求。在PHP中使用PDO接口通過PDO_MYSQL驅(qū)動連接MYSQL數(shù)據(jù)庫。軟件關(guān)系如圖1.
1.4 開發(fā)框架
本系統(tǒng)開發(fā)框架有前端和后端組成。前端開發(fā)框架主要面向用戶,提供良好的人機界面,方便用戶使用系統(tǒng)。后端開發(fā)框架主要面向程序員,提供良好的編程模型和框架,滿足軟件工程的模塊化、可擴展、可重用、可配置和輕量級等要求,方便編程。本系統(tǒng)基于MVC模型開發(fā),采用國人開發(fā)的禪道框架[3],前端框架采用YourPhp模板[4]。
1.5 系統(tǒng)流程圖
系統(tǒng)流程圖如圖2所示。
1.6 系統(tǒng)組成及功能劃分
預(yù)約點餐系統(tǒng)主要包括前臺頁面和后臺頁面兩部分。前臺頁面實現(xiàn)用餐地點、用餐時間的選擇、菜品瀏覽、菜品選擇、用戶登錄、用戶預(yù)約信息提交,個人信息維護和用戶歷史訂單查詢等功能。后臺頁面實現(xiàn)用戶管理、菜品庫管理、訂單管理、配餐管理和日志管理等功能。系統(tǒng)主要功能模塊如圖3所示。
1.7 表結(jié)構(gòu)設(shè)計[5]
系統(tǒng)總共有5張表,菜品庫表用于存儲食堂所有菜品信息,后臺的配餐模塊是基于菜品庫中的菜品進行選擇配餐的;配餐表用于保存每日每個就餐時間段食堂提供的菜品信息,前臺的界面的瀏覽的菜品信息基于此表;預(yù)約表用于存儲用戶某日某個時間段內(nèi)預(yù)約的菜品信息,食堂管理后臺的就餐時間段人數(shù)統(tǒng)計、菜品統(tǒng)計,都是基于預(yù)約表的信息;用戶信息表用于存儲了用戶個人信息;日志表主要用于存儲用戶的一些操作信息。各個表的字段設(shè)計如下:
菜品庫表(菜品id,菜品名,所屬類型,圖片,價格,刪除標志);
配餐表(菜品id,日期,就餐時間段,菜品名,刪除標志);
預(yù)約表(預(yù)約id,用戶id,下單時間,日期,就餐時間段,菜品名,配餐id,數(shù)量,刪除標志);
用戶信息表(用戶類型,用戶姓名,部門,微信id,訪問次數(shù),最后ip,最后登錄時間,角色);
日志表(id,對象類型,對象id,操作者,動作,時間,IP,操作內(nèi)容)
2 系統(tǒng)功能實現(xiàn)的部分截圖
2.1前臺
2.2 后臺
2.4 部分關(guān)鍵代碼
配餐管理部分代碼
foreach ($menus as $menu) {
if (isset($map[$menu->food])) {
die('dup food');
}
$map[$menu->food] = $menu;
}
//當前選中菜品
$curfood = array();
foreach ($_POST as $id => $v) {
$a = explode('_', $id);
if ($a[0] <> 'food') continue;
$foodID = $a[1];
if (!isset($foods[$foodID])) {
throw new Exception($this->lang->error->idInvalid);
}
$curfood[$foodID] = 1;
}
//查找新分配的菜品
foreach ($curfood as $foodID => $v) {
//未找到,新分配
if (!isset($map[$foodID])) {
$data = new stdClass();
$data->date = $date;
$data->type = $type;
$data->food = $foodID;
$this->dao->insert(TABLE_MENU)->data($data)
->exec();
$menuID = $this->dao->lastInsertID();
$this->log->create('menu', $menuID, 'update', $data);
}
}
//查找刪除的菜品
foreach ($map as $foodID => $menu) {
//已分配的菜品未選中,刪除
if (!isset($curfood[$foodID])) {
$food = $foods[$foodID];
//關(guān)聯(lián)
$row =
$this->dao->select('count(*) as num')->from(TABLE_ORDER)
->where('deleted')->eq(0)
->andWhere('menu')->eq($menu->id)
->fetch();
}
3 結(jié)束語
通過高校食堂移動預(yù)約點餐系統(tǒng)的開發(fā),滿足了高校用戶通過移動設(shè)備實現(xiàn)就餐地點、就餐時間、菜品數(shù)量的選擇,就餐人數(shù)、就餐食物數(shù)量的統(tǒng)計,對于節(jié)省人力、提高效率都有顯著效果,并且有利于數(shù)據(jù)的流動和管理。
參考文獻:
[1] 閆小坤,周濤.微信公眾平臺應(yīng)用開發(fā)從入門到精通[M]. 北京:清華大學(xué)出版社,2015.
[2] Brett McLaughlln. PHP&MySQL;實戰(zhàn)手冊[M]. 2版. 北京:中國電力出版社,2014.
[3] 周洪艷,林超,丁頌.基于Android的點餐系統(tǒng)APP設(shè)計[J].長春師范大學(xué)學(xué)報,2016(12).
[4] 李淑娟,周偉,強宓詠.高校智慧點餐系統(tǒng)的探索與實踐[J].華中師范大學(xué)學(xué)報:自然科學(xué)版,2017(S1).
[5] 王欣. 智能電子點菜系統(tǒng)的研究[D]. 北京:北京交通大學(xué),2017.
【通聯(lián)編輯:梁書】