1 实训基本信息
1.1 实训项目名称
“外卖点餐”系统。
1.2 实训时间及地点
2 实训内容简介
本项目(“外卖点餐”系统)是专门为餐饮企业(餐厅、饭店)定制的-款软件产品,包括系统管理后台和移动端应用两部分。
其中系统管理后台主要提供给餐饮企业内部员工使用,可以对餐厅的菜品、套餐、订单等进行管理维护。移动端应用主要提供给消费者使用,可以在线浏览菜品、添加购物车、下单等。
3 需求分析
3.1 软硬件条件
IDEA 2021.2.3
MySQL 5.5
MyBatis
MyBatisPlus
Git: 版本控制工具。
Maven: 3.6.1
Junit:单元测试工具。
3.2 技术可行性
3.2.1 技术需求
外卖点单、支付、订单管理、配送等功能是瑞吉外卖必不可少的技术需求。此外,还需要提供用户注册、登录、反馈、推荐等功能。
3.2.2 市场需求
外卖市场的需求是巨大的,但竞争也是非常激烈的。应该进行市场细分,并确定与众不同的商业模式和目标用户,同时提供具有差异化的服务和体验。
3.2.3 开发成本
应该评估开发瑞吉外卖应用所需的成本,包括技术设计、软件工程、移动端应用开发、数据分析等方面。
3.2.4 数据连通性
外卖应用需要和多个配送和支付供应商的应用进行连接,确保订单的顺利传递和支付的正确处理。
3.2.5 用户体验
好的用户体验是被用户所赞赏和记住的重要要素。外卖应用中,用户体验包括易用、快速、准确、方便等多个方面。
4 功能设计
4.1 管理端
4.1.1 登录/退出
内部员工必须登录后,才可以访问系统管理后台。
4.1.2 员工管理
管理员可以在系统后台对员工信息进行管理,包含查询、新增、编辑、禁用等功能。
4.1.3 分类管理
主要对当前餐厅经营的菜品分类或套餐分类进行管理维护,包含查询、新增、修改、删除等功能。
4.1.4 菜品管理
主要维护各个分类下的菜品信息,包含查询、新增、修改、删除、启售、停售等功能。
4.1.5 套餐管理
主要维护当前餐厅中的套餐信息,包含查询、新增、修改、删除、启售、停售等功能。
4.1.6 订单明细
主要维护用户在移动端下的订单信息,包含查询、取消、派送、完成,以及订单报表下载等功能。
4.2 用户端
4.2.1 登录/退出
在移动端, 用户也需要登录后使用APP进行点餐。
4.2.2 点餐-菜单
在点餐界面需要展示出菜品分类/套餐分类, 并根据当前选择的分类加载其中的菜品信息, 供用户查询选择。
4.2.3 点餐-购物车
用户选中的菜品就会加入用户的购物车, 主要包含查询购物车、加入购物车、删除购物车、清空购物车等功能。
4.2.4 订单支付
用户选完菜品/套餐后, 可以对购物车菜品进行结算支付, 这时就需要进行订单的支付。
4.2.5 个人信息
在个人中心页面中会展示当前用户的基本信息, 用户可以管理收货地址, 也可以查询历史订单数据。
5 数据库设计
用户表
购物车表
字段 |
数据类型 |
主键 |
外键 |
是否为空 |
说明 |
Id |
bigint(20) |
是 |
否 |
否 |
|
Name |
varchar(50) |
否 |
否 |
否 |
名称 |
Image |
varchar(100) |
否 |
否 |
否 |
图片 |
User_id |
bigint(20) |
否 |
否 |
否 |
用户ID |
Dish_Id |
bigint(20) |
否 |
否 |
否 |
菜品ID |
Setmeal_Id DishFlavor |
bigint(20)varchar(50) |
否 否 |
否 否 |
否 否 |
套餐ID 口味 |
Number |
int(11) |
否 |
否 |
否 |
数量 |
Amount CreateTime |
decimal(10) datetime |
否 否 |
否 否 |
否 否 |
金额 创建时间 |
地址薄表
字段 |
数据类型 |
主键 |
外键 |
是否为空 |
说明 |
Id |
bigint(20) |
是 |
否 |
否 |
|
User_Id |
bigint(20) |
否 |
否 |
否 |
用户ID |
Consignee |
varchar(50) |
否 |
否 |
否 |
收货人 |
Sex |
tinyint(4) |
否 |
否 |
否 |
性别 |
Phone Province |
varchar(11) varchar(12) |
否 否 |
否 否 |
否 否 |
手机号 省级编号 |
Province |
Varchar(32) |
否 |
否 |
否 |
省级名称 |
City_code City_name |
varchar(12) varchar(32) |
否 否 |
否 否 |
否 否 |
市级编号 市级名称 |
District |
varchar(12) |
否 |
否 |
否 |
区级编号 |
District |
varchar(32) |
否 |
否 |
否 |
区级名称 |
Detail |
varchar(200) |
否 |
否 |
否 |
详细地址 |
Label |
varchar(100) |
否 |
否 |
否 |
标签 |
Is_default |
tinyint(1) |
否 |
否 |
否 |
是否默认 |
Createtime |
datetime |
否 |
否 |
否 |
创建时间 |
Updatetime |
datetime |
否 |
否 |
否 |
更新时间 |
Createuser |
Bigint(20) |
否 |
否 |
否 |
创建者 |
Updateuser |
Bigint(20) |
否 |
否 |
否 |
修改者 |
Is_deleted |
int(11) |
否 |
否 |
否 |
是否删除 |
分类表
字段 |
数据类型 |
主键 |
外键 |
是否为空 |
说明 |
Id |
bigint(20) |
是 |
否 |
否 |
|
Type |
int(11) |
否 |
否 |
否 |
类型 |
Name |
varchar(64) |
否 |
否 |
否 |
名称 |
Sort |
int(11) |
否 |
否 |
否 |
顺序 |
CreateTime UpdateTime |
datetime datetime |
否 否 |
否 否 |
否 否 |
创建时间 更新时间 |
Createuser |
bigint(20) |
否 |
否 |
否 |
创建者 |
Updateuser |
bigint(20) |
否 |
否 |
否 |
修改者 |
菜品表
字段 |
数据类型 |
主键 |
外键 |
是否为空 |
说明 |
Id |
bigint(20) |
是 |
否 |
否 |
|
Name |
varchar(64) |
否 |
否 |
否 |
菜品名称 |
CategoryId |
bigint(20) |
否 |
否 |
否 |
菜品分类ID |
Price |
decimal(10) |
否 |
否 |
否 |
菜品价格 |
Code |
varchar(64) |
否 |
否 |
否 |
商品码 |
Image Descripte |
varchar(200) varchar(400) |
否 否 |
否 否 |
否 否 |
图片 描述信息 |
Status |
int(11) |
否 |
否 |
否 |
状态码 |
Sort |
int(11) |
否 |
否 |
否 |
顺序 |
CreateTime UpdateTime |
datetime datetime |
否 否 |
否 否 |
否 否 |
创建时间 更新时间 |
Createuser |
Bigint(20) |
否 |
否 |
否 |
创建者 |
Updateuser |
Bigint(20) |
否 |
否 |
否 |
修改者 |
Is_deleted |
int(11) |
否 |
否 |
否 |
是否删除 |
口味表
字段 |
数据类型 |
主键 |
外键 |
是否为空 |
说明 |
Id |
bigint(20) |
是 |
否 |
否 |
|
Dish_Id |
bigint(20) |
否 |
否 |
否 |
菜品ID |
Name |
varchar(64) |
否 |
否 |
否 |
口味名称 |
Value |
varchar(500) |
否 |
否 |
否 |
口味数据 |
CreateTime UpdateTime |
datetime datetime |
否 否 |
否 否 |
否 否 |
创建时间 更新时间 |
Createuser |
Bigint(20) |
否 |
否 |
否 |
创建者 |
Updateuser |
Bigint(20) |
否 |
否 |
否 |
修改者 |
Is_deleted |
int(11) |
否 |
否 |
否 |
是否删除 |
员工表
字段 |
数据类型 |
主键 |
外键 |
是否为空 |
说明 |
Id |
bigint(20) |
是 |
否 |
否 |
|
Name |
varchar(32) |
否 |
否 |
否 |
姓名 |
Username |
varchar(32) |
否 |
否 |
否 |
用户名 |
Password |
varchar(64) |
否 |
否 |
否 |
密码 |
Phone |
varchar(11) |
否 |
否 |
否 |
手机号 |
Sex |
varchar(2) |
否 |
否 |
否 |
性别 |
Id_Number |
varchar(18) |
否 |
否 |
否 |
身份证号 |
Status |
Int(11) |
否 |
否 |
否 |
状态 |
CreateTime UpdateTime |
datetime datetime |
否 否 |
否 否 |
否 否 |
创建时间 更新时间 |
Createuser |
Bigint(20) |
否 |
否 |
否 |
创建者 |
Updateuser |
Bigint(20) |
否 |
否 |
否 |
修改者 |
订单表
字段 |
数据类型 |
主键 |
外键 |
是否为空 |
说明 |
Id |
bigint(20) |
是 |
否 |
否 |
|
Number |
varchar(50) |
否 |
否 |
否 |
订单号 |
Status |
Int(11) |
否 |
否 |
否 |
订单状态 |
User_Id |
bigint(20) |
否 |
否 |
否 |
下单用户 |
Address_id |
bigint(20) |
否 |
否 |
否 |
地址ID |
Order_Time CheckTime |
datetime datetime |
否 否 |
否 否 |
否 否 |
下单时间 结账时间 |
Pay_method |
int(11) |
否 |
否 |
否 |
支付方式 |
Amount |
decimal(10) |
否 |
否 |
否 |
实收金额 |
Remark |
varchar(100) |
否 |
否 |
否 |
备注 |
Phone |
varchar(255) |
否 |
否 |
否 |
手机号 |
Address |
varchar(255) |
否 |
否 |
否 |
用户地址 |
User_name |
varchar(255) |
否 |
否 |
否 |
用户名 |
Consignee |
varchar(255) |
否 |
否 |
否 |
收货人 |
订单详情表
字段 |
数据类型 |
主键 |
外键 |
是否为空 |
说明 |
Id |
bigint(20) |
是 |
否 |
否 |
|
Name |
varchar(50) |
否 |
否 |
否 |
名称 |
Image |
varchar(100) |
否 |
否 |
否 |
图片 |
Order_Id |
bigint(20) |
否 |
否 |
否 |
订单ID |
Dish_Id |
bigint(20) |
否 |
否 |
否 |
菜品ID |
Setmeal_Id DishFlavor |
bigint(20) varchar(50) |
否 否 |
否 否 |
否 否 |
套餐ID 口味 |
Number |
int(11) |
否 |
否 |
否 |
数量 |
Amount |
decimal(10) |
否 |
否 |
否 |
金额 |
套餐表
字段 |
数据类型 |
主键 |
外键 |
是否为空 |
说明 |
Id |
bigint(20) |
是 |
否 |
否 |
|
CategoryId |
bigint(20) |
否 |
否 |
否 |
分类ID |
Name |
varchar(64) |
否 |
否 |
否 |
套餐名称 |
Price |
decimal(10) |
否 |
否 |
否 |
套餐价格 |
Status |
Int(11) |
否 |
否 |
否 |
状态 |
Code |
varchar(32) |
否 |
否 |
否 |
编码 |
Descripte |
varchar(512) |
否 |
否 |
否 |
描述信息 |
Image |
varchar(255) |
否 |
否 |
否 |
图片 |
CreateTime UpdateTime |
datetime datetime |
否 否 |
否 否 |
否 否 |
创建时间 更新时间 |
Createuser |
Bigint(20) |
否 |
否 |
否 |
创建者 |
Updateuser |
Bigint(20) |
否 |
否 |
否 |
修改者 |
Is_Delete |
varchar(50) |
否 |
否 |
否 |
是否删除 |
分类表
菜品表
口味表
员工表