摘要
隨著校園生活節奏的加快,學生對外賣的需求日益增長。然而,傳統的外賣服務存在諸多不便,如配送時間長、菜品選擇有限、信息更新不及時等。為解決這些問題,本研究開發了一款校園外賣點餐系統,采用前端?Vue、后端 Spring Boot 技術棧,依托 MySQL 數據庫搭建。用戶可以在首頁瀏覽菜品信息、新聞資訊,查看購物車,進行留言反饋。用戶可在個人中心進行修改密碼、訂單管理、收貨信息、評價信息、配送信息、我的收藏等操作;商家則可以管理訂單、評價信息、菜品信息等;騎手可以查看評價信息、分配信息、接單信息。管理員可在后臺首頁管理各類用戶,進行訂單管理、配送信息、菜品類型、分配信息、輪播圖、菜品信息、收貨信息、新聞資訊、接單信息、菜單、訂單信息、評價信息等多方面管理工作,為用戶提供高效、便捷的外賣點餐體驗。
關鍵詞:校園外賣點餐系統;SpringBoot;Vue;MySQL
目錄
摘要
Abstract
1 緒論
1.1 研究背景
1.2 研究意義
1.3 國內外研究現狀
2 相關技術介紹
2.1 B/S框架
2.2 SpringBoot框架
2.3 Vue技術
2.4 MySQL數據庫
3 需求分析
3.1 可行性分析
3.1.1 技術可行性
3.1.2 操作可行性
3.1.3 經濟可行性
3.2 系統性能需求分析
3.3 功能需求分析
3.3.1 用戶功能
3.3.2 商家功能
3.3.3 騎手功能
3.3.4 管理員功能
3.4 系統總體流程設計
3.4.1?數據開發流程
3.4.2 用戶登錄流程
3.4.3?系統操作流程
3.4.4?添加信息流程
3.4.5?修改信息流程
3.4.6?刪除信息流程
4 系統設計
4.1 系統架構設計
4.2 系統總體功能設計
4.2.1 注冊時序圖
4.2.2 登錄時序圖
4.2.3 管理員修改用戶信息時序圖
4.2.4 管理員管理系統信息時序圖
4.3 數據庫設計
4.3.1 數據庫實體設計
4.3.2 數據庫表設計
5 系統實現
5.1 用戶功能實現
5.1.1 瀏覽菜品信息
5.1.2 管理購物車
5.1.3 管理個人中心
5.2 商家功能實現
5.2.1 管理菜品信息
5.2.2 管理訂單
5.3 騎手功能實現
5.3.1 處理接單信息
5.3.2 處理分配信息
5.4 管理員功能實現
5.4.1 增加菜品類型
5.4.2 新聞資訊管理
5.4.3 輪播圖管理
6 系統測試
6.1 測試環境
6.2 測試目的
6.3 測試方法
6.4 測試內容
6.5 測試結論
7 總結
參考文獻
致謝
附錄
系統核心代碼設計
用戶注冊
用戶登錄
修改密碼
修改數據
刪除數據
獲取列表
圖片上傳
- 緒論
- 研究背景
隨著校園生活節奏的加快,學生對外賣的需求日益增長。然而,傳統的外賣服務存在諸多不便,如配送時間長、菜品選擇有限、信息更新不及時等,這些問題不僅影響了學生的用餐體驗,也限制了外賣服務在校園內的進一步發展。近年來,隨著信息技術的快速發展,特別是互聯網、移動應用和數據庫技術的普及,為外賣服務的數字化轉型提供了可能。開發一個校園外賣點餐系統,能夠有效整合校園內外賣資源,優化服務流程,提升用戶體驗,增強服務競爭力。
-
- 研究意義
開發校園外賣點餐系統具有顯著意義。它打破了時間與空間的限制,學生無論身處宿舍、教室還是圖書館,都能隨時隨地通過系統下單訂餐,節省了往返食堂或校外就餐的時間,可將更多精力投入學習。系統整合校園周邊及校內商家資源,豐富菜品種類,滿足學生個性化的飲食偏好。對于商家而言,拓展了銷售渠道,增加了營收。而且,系統規范了外賣配送流程,保障食品衛生與安全,提升校園餐飲服務質量,優化校園生活體驗。
用戶用例圖如圖3-1所示。
商家用例圖如圖3-2所示。
騎手用例圖如圖3-3所示。
管理員用例圖如圖3-4所示。
-
- 系統總體功能設計
系統功能結構圖如圖4-2所示。
數據庫表設計基于實體設計,將抽象的實體映射為具體的表結構。設計過程中,為每個實體定義表名、字段名及數據類型?[10]。根據業務需求,合理定義主鍵、外鍵及約束條件,確保表之間的關聯性,例如通過外鍵建立用戶表和角色表之間的關系。表設計時注重數據存儲的完整性、一致性,并通過索引優化查詢效率,最終確保數據庫結構能夠支持系統的功能需求。以下是系統的數據庫表設計展示。
表名:cart
功能:購物車
字段名稱 | 類型 | 長度 | 字段說明 | 主鍵 | 默認值 |
id | bigint | 主鍵 | ??主鍵 | ||
addtime | timestamp | 創建時間 | CURRENT_TIMESTAMP | ||
tablename | varchar | 200 | 商品表名 | caipinxinxi | |
goodid | bigint | 商品id | |||
goodname | varchar | 200 | 商品名稱 | ||
picture | longtext | 4294967295 | 圖片 | ||
buynumber | int | 購買數量 | |||
price | double | 單價 | |||
discountprice | double | 折扣價 | |||
userid | bigint | 用戶id | |||
shangjiazhanghao | varchar | 200 | 商戶名稱 |
表名:menu
功能:菜單
字段名稱 | 類型 | 長度 | 字段說明 | 主鍵 | 默認值 |
id | bigint | 主鍵 | ??主鍵 | ||
addtime | timestamp | 創建時間 | CURRENT_TIMESTAMP | ||
menujson | longtext | 4294967295 | 菜單 |
表名:shouhuoxinxi
功能:收貨信息
字段名稱 | 類型 | 長度 | 字段說明 | 主鍵 | 默認值 |
id | bigint | 主鍵 | ??主鍵 | ||
addtime | timestamp | 創建時間 | CURRENT_TIMESTAMP | ||
dingdanbianhao | varchar | 200 | 訂單編號 | ||
caipinmingcheng | varchar | 200 | 菜品名稱 | ||
caipinxinxi | varchar | 200 | 菜品信息 | ||
caipinxiangqing | varchar | 200 | 菜品詳情 | ||
caipintupian | longtext | 4294967295 | 菜品圖片 | ||
shangjiazhanghao | varchar | 200 | 商家賬號 | ||
caipinleixing | varchar | 200 | 菜品類型 | ||
qishouzhanghao | varchar | 200 | 騎手賬號 | ||
zhanghao | varchar | 200 | 賬號 | ||
shouhuoshijian | datetime | 收貨時間 |
表名:jiedanxinxi
功能:接單信息
字段名稱 | 類型 | 長度 | 字段說明 | 主鍵 | 默認值 |
id | bigint | 主鍵 | ??主鍵 | ||
addtime | timestamp | 創建時間 | CURRENT_TIMESTAMP | ||
dingdanbianhao | varchar | 200 | 訂單編號 | ||
caipinmingcheng | varchar | 200 | 菜品名稱 | ||
caipinxinxi | varchar | 200 | 菜品信息 | ||
caipinxiangqing | varchar | 200 | 菜品詳情 | ||
caipintupian | longtext | 4294967295 | 菜品圖片 | ||
shangjiazhanghao | varchar | 200 | 商家賬號 | ||
caipinleixing | varchar | 200 | 菜品類型 | ||
qishouzhanghao | varchar | 200 | 騎手賬號 | ||
zhanghao | varchar | 200 | 賬號 | ||
jiedanshijian | datetime | 接單時間 |
表名:shangjia
功能:商家
字段名稱 | 類型 | 長度 | 字段說明 | 主鍵 | 默認值 |
id | bigint | 主鍵 | ??主鍵 | ||
addtime | timestamp | 創建時間 | CURRENT_TIMESTAMP | ||
shangjiazhanghao | varchar | 200 | 商家賬號 | ||
mima | varchar | 200 | 密碼 | ||
touxiang | longtext | 4294967295 | 頭像 | ||
xingbie | varchar | 200 | 性別 | ||
xingming | varchar | 200 | 姓名 |
表名:fenpeixinxi
功能:分配信息
字段名稱 | 類型 | 長度 | 字段說明 | 主鍵 | 默認值 |
id | bigint | 主鍵 | ??主鍵 | ||
addtime | timestamp | 創建時間 | CURRENT_TIMESTAMP | ||
dingdanbianhao | varchar | 200 | 訂單編號 | ||
caipinmingcheng | varchar | 200 | 菜品名稱 | ||
caipinxinxi | varchar | 200 | 菜品信息 | ||
caipinxiangqing | varchar | 200 | 菜品詳情 | ||
caipintupian | longtext | 4294967295 | 菜品圖片 | ||
shangjiazhanghao | varchar | 200 | 商家賬號 | ||
caipinleixing | varchar | 200 | 菜品類型 | ||
qishouzhanghao | varchar | 200 | 騎手賬號 | ||
zhanghao | varchar | 200 | 賬號 |
表名:discusscaipinxinxi
功能:菜品信息評論表
字段名稱 | 類型 | 長度 | 字段說明 | 主鍵 | 默認值 |
id | bigint | 主鍵 | ??主鍵 | ||
addtime | timestamp | 創建時間 | CURRENT_TIMESTAMP | ||
refid | bigint | 關聯表id | |||
userid | bigint | 用戶id | |||
avatarurl | longtext | 4294967295 | 頭像 | ||
nickname | varchar | 200 | 用戶名 | ||
content | longtext | 4294967295 | 評論內容 | ||
reply | longtext | 4294967295 | 回復內容 |
表名:dingdanxinxi
功能:訂單信息
字段名稱 | 類型 | 長度 | 字段說明 | 主鍵 | 默認值 |
id | bigint | 主鍵 | ??主鍵 | ||
addtime | timestamp | 創建時間 | CURRENT_TIMESTAMP | ||
dingdanbianhao | varchar | 200 | 訂單編號 | ||
caipinmingcheng | varchar | 200 | 菜品名稱 | ||
caipinxinxi | varchar | 200 | 菜品信息 | ||
caipinxiangqing | varchar | 200 | 菜品詳情 | ||
caipintupian | longtext | 4294967295 | 菜品圖片 | ||
shangjiazhanghao | varchar | 200 | 商家賬號 | ||
caipinleixing | varchar | 200 | 菜品類型 | ||
zhanghao | varchar | 200 | 賬號 |
表名:config
功能:輪播圖
字段名稱 | 類型 | 長度 | 字段說明 | 主鍵 | 默認值 |
id | bigint | 主鍵 | ??主鍵 | ||
addtime | timestamp | 創建時間 | CURRENT_TIMESTAMP | ||
value | longtext | 4294967295 | 值 | ||
url | longtext | 4294967295 | 鏈接 | ||
name | varchar | 200 | 名稱 |
表名:qishou
功能:騎手
字段名稱 | 類型 | 長度 | 字段說明 | 主鍵 | 默認值 |
id | bigint | 主鍵 | ??主鍵 | ||
addtime | timestamp | 創建時間 | CURRENT_TIMESTAMP | ||
qishouzhanghao | varchar | 200 | 騎手賬號 | ||
mima | varchar | 200 | 密碼 | ||
touxiang | longtext | 4294967295 | 頭像 | ||
xingbie | varchar | 200 | 性別 | ||
xingming | varchar | 200 | 姓名 |
表名:pingjiaxinxi
功能:評價信息
字段名稱 | 類型 | 長度 | 字段說明 | 主鍵 | 默認值 |
id | bigint | 主鍵 | ??主鍵 | ||
addtime | timestamp | 創建時間 | CURRENT_TIMESTAMP | ||
dingdanbianhao | varchar | 200 | 訂單編號 | ||
caipinmingcheng | varchar | 200 | 菜品名稱 | ||
caipinxinxi | varchar | 200 | 菜品信息 | ||
caipinxiangqing | varchar | 200 | 菜品詳情 | ||
caipintupian | longtext | 4294967295 | 菜品圖片 | ||
shangjiazhanghao | varchar | 200 | 商家賬號 | ||
caipinleixing | varchar | 200 | 菜品類型 | ||
qishouzhanghao | varchar | 200 | 騎手賬號 | ||
zhanghao | varchar | 200 | 賬號 | ||
pingjia | varchar | 200 | 評價 | ||
pingjiashijian | datetime | 評價時間 |
表名:yonghu
功能:用戶
字段名稱 | 類型 | 長度 | 字段說明 | 主鍵 | 默認值 |
id | bigint | 主鍵 | ??主鍵 | ||
addtime | timestamp | 創建時間 | CURRENT_TIMESTAMP | ||
zhanghao | varchar | 200 | 賬號 | ||
mima | varchar | 200 | 密碼 | ||
touxiang | longtext | 4294967295 | 頭像 | ||
xingbie | varchar | 200 | 性別 | ||
xingming | varchar | 200 | 姓名 | ||
money | double | 余額 | 0 |
表名:caipinxinxi
功能:菜品信息
字段名稱 | 類型 | 長度 | 字段說明 | 主鍵 | 默認值 |
id | bigint | 主鍵 | ??主鍵 | ||
addtime | timestamp | 創建時間 | CURRENT_TIMESTAMP | ||
caipinmingcheng | varchar | 200 | 菜品名稱 | ||
caipinxinxi | varchar | 200 | 菜品信息 | ||
caipinxiangqing | varchar | 200 | 菜品詳情 | ||
caipintupian | longtext | 4294967295 | 菜品圖片 | ||
price | double | 價格 | |||
thumbsup_number | int | 贊 | |||
crazily_number | int | 踩 | |||
storeup_number | int | 收藏數 | |||
discuss_number | int | 評論數 | |||
click_number | int | 點擊次數 | |||
shangjiazhanghao | varchar | 200 | 商家賬號 | ||
caipinleixing | varchar | 200 | 菜品類型 |
表名:peisongxinxi
功能:配送信息
字段名稱 | 類型 | 長度 | 字段說明 | 主鍵 | 默認值 |
id | bigint | 主鍵 | ??主鍵 | ||
addtime | timestamp | 創建時間 | CURRENT_TIMESTAMP | ||
dingdanbianhao | varchar | 200 | 訂單編號 | ||
caipinmingcheng | varchar | 200 | 菜品名稱 | ||
caipinxinxi | varchar | 200 | 菜品信息 | ||
caipinxiangqing | varchar | 200 | 菜品詳情 | ||
caipintupian | longtext | 4294967295 | 菜品圖片 | ||
shangjiazhanghao | varchar | 200 | 商家賬號 | ||
caipinleixing | varchar | 200 | 菜品類型 | ||
qishouzhanghao | varchar | 200 | 騎手賬號 | ||
zhanghao | varchar | 200 | 賬號 | ||
peisongshijian | datetime | 配送時間 |
表名:users
功能:管理員
字段名稱 | 類型 | 長度 | 字段說明 | 主鍵 | 默認值 |
id | bigint | 主鍵 | ??主鍵 | ||
addtime | timestamp | 創建時間 | CURRENT_TIMESTAMP | ||
username | varchar | 200 | 用戶名 | ||
password | varchar | 200 | 密碼 | ||
role | varchar | 200 | 角色 | 管理員 |
表名:caipinleixing
功能:菜品類型
字段名稱 | 類型 | 長度 | 字段說明 | 主鍵 | 默認值 |
id | bigint | 主鍵 | ??主鍵 | ||
addtime | timestamp | 創建時間 | CURRENT_TIMESTAMP | ||
caipinleixing | varchar | 200 | 菜品類型 |
表名:orders
功能:商品訂單
字段名稱 | 類型 | 長度 | 字段說明 | 主鍵 | 默認值 |
id | bigint | 主鍵 | ??主鍵 | ||
addtime | timestamp | 創建時間 | CURRENT_TIMESTAMP | ||
orderid | varchar | 200 | 訂單編號 | ||
tablename | varchar | 200 | 商品表名 | caipinxinxi | |
goodid | bigint | 商品id | |||
goodname | varchar | 200 | 商品名稱 | ||
picture | longtext | 4294967295 | 圖片 | ||
buynumber | int | 購買數量 | |||
price | double | 單價 | |||
discountprice | double | 折扣價 | |||
total | double | 總價 | |||
discounttotal | double | 折扣總價格 | |||
type | varchar | 200 | 支付類型 | ||
status | varchar | 200 | 訂單狀態 | ||
address | varchar | 200 | 地址 | ||
tel | varchar | 200 | 電話 | ||
consignee | varchar | 200 | 收貨人 | ||
remark | varchar | 200 | 備注 | ||
logistics | longtext | 4294967295 | 物流 | ||
role | varchar | 200 | 用戶角色 | ||
userid | bigint | 用戶id | |||
shangjiazhanghao | varchar | 200 | 商戶名稱 |
表名:token
功能:token表
字段名稱 | 類型 | 長度 | 字段說明 | 主鍵 | 默認值 |
id | bigint | 主鍵 | ??主鍵 | ||
userid | bigint | 用戶id | |||
username | varchar | 100 | 用戶名 | ||
tablename | varchar | 100 | 表名 | ||
role | varchar | 100 | 角色 | ||
token | varchar | 200 | 密碼 | ||
addtime | timestamp | 新增時間 | CURRENT_TIMESTAMP | ||
expiratedtime | timestamp | 過期時間 | CURRENT_TIMESTAMP |
表名:news
功能:新聞資訊
字段名稱 | 類型 | 長度 | 字段說明 | 主鍵 | 默認值 |
id | bigint | 主鍵 | ??主鍵 | ||
addtime | timestamp | 創建時間 | CURRENT_TIMESTAMP | ||
title | varchar | 200 | 標題 | ||
introduction | longtext | 4294967295 | 簡介 | ||
picture | longtext | 4294967295 | 圖片 | ||
content | longtext | 4294967295 | 內容 |
表名:storeup
功能:我的收藏
字段名稱 | 類型 | 長度 | 字段說明 | 主鍵 | 默認值 |
id | bigint | 主鍵 | ??主鍵 | ||
addtime | timestamp | 創建時間 | CURRENT_TIMESTAMP | ||
refid | bigint | refid | |||
tablename | varchar | 200 | 表名 | ||
name | varchar | 200 | 名稱 | ||
picture | longtext | 4294967295 | 圖片 | ||
type | varchar | 200 | 類型(1:收藏,21:贊,22:踩,31:競拍參與,41:關注) | 1 | |
inteltype | varchar | 200 | 推薦類型 | ||
remark | varchar | 200 | 備注 | ||
userid | bigint | 用戶id |
-
- 用戶功能實現
- 瀏覽菜品信息
- 用戶功能實現
用戶可以瀏覽詳細的菜品信息,包括菜品的名稱、價格、描述、圖片等。系統提供多種分類和搜索功能,幫助用戶快速找到感興趣的菜品。瀏覽菜品信息界面如圖5-1所示。
-
-
- 管理購物車
-
用戶可以將心儀的菜品加入購物車,隨時查看購物車內的菜品和總價。用戶可以調整菜品數量、刪除菜品,系統會實時更新購物車信息。管理購物車界面如圖5-2所示。
-
-
- 管理個人中心
-
用戶可以在個人中心管理個人信息,包括修改密碼、查看訂單管理、收貨信息、評價信息、配送信息等。用戶可以查看歷史訂單詳情,對已完成的訂單進行評價,查看配送狀態,還可以管理我的收藏。管理個人中心界面如圖5-3所示。
-
- 商家功能實現
- 管理菜品信息
- 商家功能實現
商家可以管理菜品信息,包括添加、編輯和刪除菜品。商家可以上傳菜品圖片、描述、價格等詳細信息,確保菜品展示的準確性和吸引力。商家還可以根據季節和活動調整菜品信息,優化菜單,提升用戶體驗。管理菜品信息界面如圖5-4所示。
-
-
- 管理訂單
-
商家需要處理訂單管理。在訂單管理界面,涵蓋已取消訂單、已支付訂單等多種狀態分類。商家可及時查看新訂單信息,根據訂單狀態進行相應操作。管理訂單界面如圖5-5所示。
-
- 管理員功能實現
- 增加菜品類型
- 管理員功能實現
管理員可以增加新的菜品類型,以豐富平臺的菜品分類。管理員還可以對已有的菜品類型進行編輯和刪除操作,靈活調整菜品分類,滿足商家和用戶的需求。增加菜品類型界面如圖5-8所示。
- 總結
本研究圍繞校園外賣點餐系統,從規劃到落地,完成了平臺開發的全流程。需求分析階段,通過深入調研,明確了平臺在技術、操作及經濟層面的可行性,并詳細梳理了用戶、商家、騎手與管理員的功能需求。系統總體流程設計覆蓋了用戶注冊登錄、菜品信息瀏覽、訂單管理及各類信息處理等核心流程,為后續開發奠定了堅實基礎。在系統設計環節,采用B/S架構,利用Spring Boot框架、Vue技術和MySQL數據庫搭建了平臺架構,精心設計了用戶注冊登錄、菜品管理、訂單處理等核心功能的時序圖,并完成了數據庫的實體與表設計。系統實現過程中,用戶能夠實現首頁瀏覽、菜品查詢、在線支付及個人中心管理等功能,商家可以管理訂單、評價信息、菜品信息等,騎手可以查看評價信息、分配信息、接單信息,管理員則能對系統用戶、訂單信息、配送信息、菜品類型等進行全面管控,各功能模塊通過界面交互實現,操作流程簡便直觀。系統測試階段,搭建了測試環境,選定了合適的測試方法,對注冊登錄、訂單管理、在線支付等功能進行了全面測試,測試結果有力驗證了平臺的穩定性與可靠性。測試結論顯示,平臺功能符合設計預期,能夠切實滿足用戶在線點餐的需求,為校園師生打造了一個高效、便捷的外賣點餐服務平臺。