概要设计 - HelloYu/Restaurant-Management-System GitHub Wiki
总体设计
登录模块
用户通过浏览器或者手机APP登录系统,系统根据验证结果返回相关信息。如果认证成功,会根据用户的角色信息,跳转到不同的界面。
员工管理
添加员工模块
管理员输入员工基本信息,提交添加请求,服务器收到请求信息,调用用户模型操作数据库。
编辑员工模块
管理员编辑完员工信息,提交编辑请求,服务器收到请求信息,调用用户模型更新数据库。
删除员工模块
管理员删除某员工,提交删除请求,服务器收到请求信息,调用用户模型,根据ID进行删除。
菜品管理
添加菜品模块
管理员输入菜品名称和价格,提交添加菜品请求,服务器收到请求信息,调用菜品模型向数据库插入菜品信息。
编辑菜品模块
管理员编辑完菜品信息,提交编辑请求,服务器收到请求信息,调用菜品模型更新数据库。
删除菜品模块
管理员删除某菜品,提交删除请求,服务器收到请求信息,调用菜品模型,根据ID进行删除。
订单管理
实时订单有二种状态:处理中,未处理。根据不同的状态在订单管理界面中呈现不同的状态。服务员可以对未处理的订单进行取消操作。
实时订单处理系统
此子系统使用WebSocket与客户端建立长连接,当订单状态更新,服务器将最新的订单信息推送到客户端。
订单拆分
服务器会根据服务员提供的订单信息,如果订单内有多个菜品,会对订单进行拆分,相同菜品会分发给同一个厨师进行处理。
订单分发
拆分后根据厨师队列中,各个厨师当前的处理菜品数量来进行分发。会使用订单的单独ID进行绑定。
数据字典
用户
名称 | 键 | 类型 |
---|---|---|
用户名 | username | String |
密码 | password | String |
角色 | role | String |
菜品
名称 | 键 | 类型 |
---|---|---|
菜品名 | menu_name | String |
菜金 | menu_price | Number |
实时订单
名称 | 键 | 类型 |
---|---|---|
桌号 | table_id | Number |
服务员Id | waiter_id | String |
状态 | status | Number |
订单菜品总数 | menu_number | Number |
被拆分多少份 | apart_number | Number |
价格 | price | Number |
历史订单
名称 | 键 | 类型 |
---|---|---|
服务员Id | waiter_id | String |
订单菜品总数 | menu_number | Number |
厨师数组 | chiefs | Object |
价格 | order_price | Number |