一、系统需求分析
1.1 项目背景
随着互联网和移动互联网技术的发展,外卖行业迅速崛起。近年来,外卖行业的规模不断扩大,成为餐饮行业的重要组成部分。根据最新的数据显示,截至2023年,全球外卖市场规模已经达到1.2万亿美元,其中中国市场占据了相当大的份额。
新冠疫情的爆发对外卖行业产生了巨大的冲击,但也促进了外卖行业的快速发展。在疫情期间,外卖成为了人们主要的就餐方式之一,根据艾瑞咨询发布的数据显示,2020年中国外卖用户规模达到了6.2亿人,同比增长了25.8%。同时,外卖行业也在不断创新和发展,推出了多种新的服务模式,如社区团购、生鲜配送等,为消费者提供更加便捷的服务。
外卖行业的快速增长和发展,为餐饮行业带来了新的机遇和挑战。外卖项目的出现,既满足了人们对于方便、快捷的餐饮服务需求,也为餐厅提供了一种新的经营模式,增加了营收来源。同时,外卖行业也促进了餐饮行业的数字化转型,提升了餐饮服务的效率和质量。
然而,外卖行业也面临着一些问题和需要解决的难题。例如,外卖平台的佣金比例过高,给餐饮企业带来了压力和负担;外卖配送的时效和质量也存在一定的问题,需要进一步改进和优化;同时,外卖行业也面临着对于食品安全和环境保护等方面的监管和管理要求。
因此,针对外卖行业的项目开发,需要充分考虑行业的特点和问题,结合最新的技术和管理手段,实现外卖平台的高效、安全和可持续发展。例如,可以采用H5、Vue.js等技术,构建一个高效、稳定、安全和易用的外卖平台系统,满足餐饮企业和消费者的需求,促进外卖行业的健康发展。
1.2 项目介绍
本项目(真也外卖)是专门为餐厅、饭店定制的一款软件产品,包括系统管理后台和移动端应用两部分。其中系统管理后台主要提供给餐饮内部员工使用,可以对餐厅的菜品、套餐、订单进行管理和维护。移动端应用主要提供给消费者使用,可以在线浏览菜品、添加购物车、下单等。
二、系统相关技术
2.1 H5
H5是一种基于HTML5技术的移动端开发方式,又称为“Html5游戏”或“Html5应用程序”。它通过使用HTML5、CSS3和JavaScript等Web前端技术,可以实现跨平台的移动应用程序开发,支持在多种设备和操作系统上运行。H5应用程序可以通过浏览器访问,也可以通过封装后的应用程序在移动设备上安装和运行。H5技术已经广泛应用于游戏、电商、社交、金融等领域。
2.2 Vue.js
Vue.js是一款流行的JavaScript框架,用于构建用户界面。它是一款轻量级的框架,具有简单易学、灵活、高效等特点。Vue.js采用了MVVM(Model-View-ViewModel)架构模式,将视图(View)和模型(Model)分离,通过ViewModel实现它们之间的双向数据绑定。Vue.js具有许多特性,如组件化、指令、模板、路由、状态管理等,可以帮助开发者更加高效地构建交互式的Web应用程序。Vue.js也有丰富的生态系统,包括Vue Router、Vuex、Vue CLI等工具和库,可以帮助开发者更好地管理和构建Vue.js应用程序。
2.3 Element-UI
Element-UI是一款基于Vue.js框架的UI组件库,提供了丰富的UI组件和交互式操作,可以帮助开发者快速构建漂亮、易用的Web应用程序。Element-UI提供了诸如按钮、表单、弹窗、导航、布局等常用的UI组件,同时还提供了数据可视化组件、富文本编辑器、日期选择器等高级组件,可以满足各种复杂的业务需求。除此之外,Element-UI还提供了丰富的主题定制和国际化支持,可以根据项目需要进行自定义配置。Element-UI的设计风格简洁、美观,易于使用和定制,因此在Vue.js社区中得到了广泛的应用。
2.4 Spring MVC
Spring MVC是一款基于Java的Web框架,用于构建基于MVC(Model-View-Controller)架构的Web应用程序。Spring MVC提供了一套完整的Web开发框架,包括控制器、模型、视图等组件,可以帮助开发者更加高效地构建Web应用程序。Spring MVC的核心思想是将请求和响应分离,通过控制器将请求转发到相应的业务逻辑处理器,然后将处理结果返回给视图,最终呈现给用户。Spring MVC还提供了丰富的特性,如数据绑定、表单处理、文件上传、拦截器、异常处理等,可以帮助开发者更好地处理Web应用程序中的常见问题。Spring MVC也有丰富的生态系统,包括Spring Boot、Spring Security、Spring Data等工具和库,可以帮助开发者更好地管理和构建Spring MVC应用程序。
2.5 Spring Boot
Spring Boot是Spring框架的一个扩展,它简化了Spring应用程序的开发和部署过程。Spring Boot采用“约定优于配置”的设计理念,提供了一套自动化配置机制,可以减少开发人员的配置工作量。同时,Spring Boot还提供了一些常用的功能模块,例如Web应用程序、数据访问、安全性等,可以快速构建出一个可运行的、高度可定制的Spring应用程序。
2.6 Lombok
Lombok是一个Java库,它通过注解的方式简化了Java类的编写,可以减少Java类中的样板代码,提高代码的可读性和可维护性。Lombok提供了一些注解,例如@Data、@Getter、@Setter、@ToString等,可以自动生成Java类的getter、setter、toString等方法。此外,Lombok还提供了一些其他的注解,例如@Builder、@AllArgsConstructor、@NoArgsConstructor等,可以自动生成Java类的构造方法。Lombok的使用非常简单,只需要在Java类上添加相应的注解即可
2.7 MySQL
MySQL是一款关系型数据库管理系统,由瑞典MySQL AB公司开发。MySQL是一种开源软件,基于客户端-服务器模型,支持多用户、多线程的操作。MySQL广泛应用于Web应用程序的开发,例如电子商务网站、社交媒体网站等。MySQL提供了一些常用的功能模块,例如数据存储、数据查询、事务处理、安全性等,可以满足大部分应用程序的需求。MySQL也支持多种编程语言的接口,例如Java、Python、PHP等,可以方便地与其他应用程序进行集成。
2.8 Mybatis Plus
Mybatis Plus是Mybatis的增强工具,它简化了Mybatis的开发过程,提供了一些常用的功能模块,例如分页、逻辑删除、自动填充等。Mybatis Plus提供了一些注解和API,可以方便地进行CRUD操作,减少了开发人员的重复工作量。此外,Mybatis Plus还提供了代码生成器,可以根据数据库表结构自动生成Java代码,提高了开发效率。Mybatis Plus是一款开源软件,可以与Spring Framework、Spring Boot等框架进行集成,广泛应用于Java Web应用程序的开发。
2.9 Maven
Maven是一款基于Java的项目管理工具,由Apache软件基金会开发。Maven可以自动化构建、测试和部署Java项目,管理项目依赖关系和版本控制,统一管理项目的构建过程,提高了项目的可维护性和可重复性。Maven使用XML文件来描述项目的构建过程,通过插件机制可以扩展其功能,例如生成文档、打包发布等。Maven还提供了一些命令行工具和API,可以方便地与其他工具进行集成。Maven是一款开源软件,广泛应用于Java项目的开发和管理。
三、系统总体设计
3.1 项目技术选型
总体基于SpringBoot + MybatisPlus进行开发,使用MySQL数据库进行数据存储,使用git和maven进行版本控制和项目管理。
3.2 功能架构
3.3 系统角色功能分配
- 后台系统管理员:登录后台管理系统,拥有后台系统中的所有操作权限
- 后台系统普通员工:登录后台管理系统,对菜品、套餐、订单等进行管理
- C端用户:登录移动端应用,可以浏览菜品、添加购物车、设置地址、在线下单等
3.4 项目功能清单
3.4.1 前台功能
3.4.2 后台功能
3.5 UI界面
前台界面:
后台界面:
3.6 数据库设计
数据库设计共为十一张表,分别为:
员工表(employee)、用户表(user)、地址簿表(address_book)、菜品表(dish)、
订单表(orders)、菜品口味表(dish_flavor)、套餐表(setmeal)、
套餐菜品关系表(setmeal_dish)、购物车表(shopping_cart)、
订单详情表(order_detail)、分类表(category)。
其中套餐为菜品的各类组合,套餐和菜品的关系由setmeal_dish表来维系,菜品包括不同口味,由dish_flavor表来维系,一个订单可能包括多个内容(即菜品或套餐),这些内容由order_detail表来维系,order表则记录每次付钱后的订单。
序号 | 表名 | 说明 |
1 | employee | 员工表 |
2 | category | 菜品和套餐分类表 |
3 | dish | 菜品表 |
4 | setmeal | 套餐表 |
5 | setmeal_dish | 套餐菜品关系表 |
6 | dish_flavor | 菜品口味关系表 |
7 | user | 用户表(C端) |
8 | address_book | 地址簿表 |
9 | shopping_cart | 购物车表 |
10 | orders | 订单表 |
11 | order_detail | 订单明细表 |