1.1 问题描述

近年来,在我国大力扶持互联网+的发展,互联网也已基本入户人名群众,成为现代人日常生活不可或缺的一部分。与此同时,网络订餐也借此政策不断蓬勃发展。外卖平台是近年来快速发展的一种新型电商平台,随着移动互联网和在线支付技术的普及,外卖平台已经成为人们生活中不可或缺的一部分。外卖平台通过线上点餐、在线支付和配送等服务,为消费者提供了更加便捷、高效和舒适的就餐体验,也为餐饮企业提供了更为广阔的发展空间和商机。目前涌现出来的外卖网络订餐平台有美团,饿了么,KFC宅急送,百度外卖等。在网络上订餐的优势就是便捷和直观,大众可以在丰富的页面上挑选自己喜欢的菜式,同时有了互联网的加持,聚合了附近多家食品店铺的信息,使大众有了更多的选择,也让店家有了更多的生意,促进店铺的发展,同时也让大众能足不出户的情况下,吃到附近的美食,更加的便捷。

在外卖平台快速发展的背景下,如何设计和实现一个高效、稳定、安全、易用的外卖平台,成为业内关注的焦点。在这个背景下,研究外卖平台的设计与实现,对于推动外卖行业的发展、提高用户体验、提高平台运营效率具有重要的意义。

1.2 项目目标

根据2015年国务院总理李克强在《政府工作报告》中提出的“互联网+行动计划”这个论述,从此“互联网+行业”便层出不穷,其中就包括“互联网+餐饮”。在2020年出,全球遭受新冠肺炎,在此影响下,我国网民呈现大幅度上升。据调查报告显示,到目前2020年3月,我国的网民数量已经突破9亿,占了总人口的四分之三。目前我国外卖行业呈现井喷式发展,包括成熟的即时的配送业务、时间效率的不断提高、外卖的优惠力度越来越大且普及范围越来越广。同时在疫情的刺激下,我们的台就抓住了这个时机,大力宣传外卖的好处,同时也推动了外卖行业的发展,因此,在未来很长一段时间里,网络订餐会成为餐饮行业的重要的中坚力量,外卖将成为关键一步。

本系统主要是用于解决在点餐中存在的问题,对需要改进的地方进行系统分析,使点餐的操作过程更简单更流畅。

1.3 项目适用范围

该产品适用于中小型商家提供给顾客点餐服务,同时也适用于需要点餐的顾客,使用该点餐小程序可以更方便快捷的进行点餐。

1.4 涉众

系统设计人员:清晰的描述一个外卖系统的整体规划、模块化设计方案,在保证稳定性的情况下提高可扩展性。

系统开发人员:开发出一整套系统并且完成所有功能的测试。

中小型商家:提供尽可能多的菜品。

个人用户:方便快捷的进行点餐。

2.1 业务需求

2.1.1 业务流程

外卖平台是将外卖点餐通过网络网站和APP将传统管理方式转换为在线上管理,方便快捷地完成外卖业务,并给予安全性保障。以下将展示管理者的部分使用功能、用户的使用的功能。外卖平台系统的总体业务流程如图2.1所示。

 图2.1 总体流程图

2.1.2 业务对象

本系统具有两种权限:用户和管理员。管理员登录系统后台后可以使用所有功能,管理员的功能是最高的,可以对系统所在功能进行查看,修改和删除,包括用户的功能。用户使用前端小程序可以选择相关菜品,套餐下单,添加收货地址等功能。具体来说,这些业务对象需要在外卖平台上进行注册和登录,通过与平台交互进行信息的增删改查、订单处理、支付等操作。平台需要为这些业务对象提供相应的功能。业务对象和功能可以通过系统设计和实现来实现外卖平台的顺畅交互和高效运营,提高用户满意度、商家参与度和骑手配送效率,协助外卖平台实现商业目标。领域模型图如图2.2所示。

 图2.2 领域模型图

2.2 功能性需求

2.2.1 用例概述

外卖平台管理系统可以将功能划分为管理员的使用功能和用户使用的功能。系统用例图如图2.3所示。

 图2.3 系统用例图

用例图中包含了系统主要用例,是系统功能的概述。用例摘要描述如表2.1所示。

表2.1 用例摘要描述

用例标识(UC)

用例名称

摘要描述

1

注册

用户进行注册,申请系统使用权限。

2

登录系统

用户可以通过账号密码登录系统。

3

个人中心

用户可以通过前端程序更改自己的相关信息。

4

订单信息

用户通过程序进行下单并查看自己的订单。

5

订单管理

管理员可以对订单进行管理。

6

菜品管理

管理员可以添加菜品信息。

7

套餐管理

管理员可以管理套餐信息

8

数据管理

管理员在数据管理管理用户数据,营业数据,订单数据等。

9

用户管理

管理员可以对用户进行管理。

2.2.2 用例描述

(1)注册用例

用户进行系统注册,申请系统使用权限。注册用例描述如表2.2所示。

 表2.2 注册用例

用例标识

1

用例名称

用户进行系统注册,申请系统使用权限。

参与者

用户。

前置条件

新用户

用例概述

用户可以在系统中获取饮食相关信息。

基本事件流

  1. 用户在登录页面点击注册用户
  2. 输入用户名等信息
  3. 点击注册
  4. 注册成功

备选事件流

备注

(2)查看订单信息用例

用户可以通过系统查看外卖订单。查看外卖订单用例描述如表2.3所示。

 表2.3 查看订单用例

用例标识

4

用例名称

查看外卖订单。

参与者

用户。

前置条件

已经以用户身份登录。

用例概述

用户可以在系统中查看订单养相关信息。

基本事件流

  1. 用户在登录页面成功登录账号。
  2. 用户点击我的订单按钮。
  3. 点击订单信息。

备选事件流

备注

3.2.1 功能结构

根据前期的系统需求调研,确定的本系统主要包括个人中心、员工管理、分类管理、菜品管理等功能模块,系统功能结构图如图3.1所示。

 图3.1 系统功能结构图

3.3.1 概念结构设计

ER 图中主要包含管理员、用户二个实体。管理员添加菜品信息,套餐信息,修改员工信息,取消订单。用户提交订单信息。ER图如图3.3所示。

 图3.3 系统ER图

4.1.1 分类管理功能模块的实现

管理员对所有菜品、套餐分类的信息可以进行管理,可以查询菜品、套餐分类信息,也可以新增、修改、删除菜品、套餐分类信息,菜品、套餐分类管理如图4.1所示。

 图4.1 分类管理界面

实现代码如下。

@RestController

@RequestMapping("/admin/category")

@Slf4j

@Api(tags = "分类管理")

public class CategoryController {

    @Autowired

    private CategoryService categoryService;

  /**

     * 分类信息分页查询

     *

     * @param categoryPageQueryDTO 查询页数,记录数,分类类型,分类的名称

     * @return PageResult 分类集合,总记录数

     */

    @GetMapping("/page")

    @ApiOperation("分类信息分页查询")

    public R<PageResult> page(CategoryPageQueryDTO categoryPageQueryDTO) {

        log.info("分类信息分页查询:{}", categoryPageQueryDTO);

        PageResult page = categoryService.pageQuery(categoryPageQueryDTO);

        return R.success(page);

 }

 /**

     * 修改分类

管理员对所有菜品的信息可以进行管理,可以查询菜品信息,也可以新增、修改、删除菜品信息,菜品管理如图4.2所示。

 图4.2 菜品管理界面

实现代码如下。

  /**

     * 添加菜品

     *

     * @param dishDTO 分类id,菜品描述,口味,菜品id,菜品图片路径,菜品名称,菜品价格,菜品状态

     * @return success

    @PostMapping

    @ApiOperation("新增菜品")

    public R<String> save(@RequestBody DishDTO dishDTO) {

        log.info("添加菜品:{}", dishDTO);

        dishService.save(dishDTO);

        cleanCache("dish_"+dishDTO.getCategoryId());

        return R.success("菜品添加成功");

    }

    /**

     * 菜品信息分页查询

     *

     * @param dishPageQueryDTO 页数,每页记录数,菜品名称,分类id,菜品售卖状态

     * @return PageResult 总页数,菜品对象

     */

    @GetMapping("/page")

    @ApiOperation("菜品信息分页查询")

    public R<PageResult> page(DishPageQueryDTO dishPageQueryDTO) {

        log.info("菜品信息分页查询:{}", dishPageQueryDTO);

        PageResult pageResult = dishService.page(dishPageQueryDTO);

        return R.success(pageResult);

    }

用户进入微信程序后,进入主页,通过挑选合适的菜品,套餐加入购物车下单提交,用户下单界面如图4.4所示。

 图4.4 用户下单界面

实现代码如下。

  /**

     * 用户下单

     *

     * @param ordersSubmitDTO 订单购买信息

     * @return  订单信息(订单id,金额,订单号,下单时间)

    @PostMapping("/submit")

    @ApiOperation("用户下单")

    public R<OrderSubmitVO> submit(@RequestBody OrdersSubmitDTO ordersSubmitDTO) {

        log.info("用户下单:{}", ordersSubmitDTO);

        OrderSubmitVO orderSubmitVO = orderService.submitOrder(ordersSubmitDTO);

        return R.success(orderSubmitVO);

    }

参考文献

[1]吴文涵,谢雨卿,谈欣等.基于微信小程序和外卖柜的外卖平台[J].电子制作,2022,30(11):51-54+97.

[2]张小康.基于外卖平台的算法控制与对抗问题研究[J].数字技术与应用,2021,39(04):98-100.

[3]匡少华,丁昊,赵正平.基于Javaweb的大学生食堂外卖平台的设计与实现[J].信息与电脑(理论版),2020,32(01):91-94.

[4]李浩.外卖模式中美有别[J].现代企业文化(上旬),2018(08):70-71.

[5]官锐,吴恋,韦一雄等.基于微信平台的家庭主妇家常菜点餐外卖平台[J].电脑知识与技术,2018,14(11):58-59+61.DOI:10.14004/j.cnki.ckt.2018.1201.56(07):34-67

[6]杨柳.基于标签的外卖平台用户画像研究[D].华中师范大学,2016(23):60-98.

[7]杜冬雨,杜梓辉,韩泽荣.试析以提升经济效率为目的的LBS外卖平台设计思路[J].山西农经,2018(10):141-142.

[8]陈智峰. A餐饮外卖平台营销策略研究[D].广东工业大学,2022(122):123-61.

[9]Qu Xiaona. Application of Java Technology in Dynamic Web Database Technology[J]. Journal of Physics: Conference Series,2021,1744(4):142-23.

[10]. Automatic Extraction of Dependencies between Web Components and Database Resources in Java Web Applications[J]. Journal of information and communication convergence engineering,2019,17(2):231-23.

目  录

摘  要 I

Abstract II

第1章 项目概述 1

1.1 问题描述 1

1.2 项目目标 1

1.3 项目适用范围 1

1.4 涉众 2

第2章 需求分析 3

2.1 业务需求 3

2.1.1 业务流程 3

2.1.2 业务对象 3

2.2 功能性需求 4

2.2.1 用例概述 4

2.2.2 用例描述 5

2.3 非功能性需求 8

2.4 运行环境 8

第3章 系统设计 10

3.1 技术路线 10

3.2 软件体系结构设计 10

3.2.1 功能结构 10

3.2.2 系统架构 10

3.3 数据库设计 11

3.3.1 概念结构设计 11

3.3.2 表的详细设计 12

3.4 用例实现 14

3.4.1 用户登录用例实现 14

3.4.2 用户查询订单用例实现 15

3.4.3 管理菜品用例实现 15

3.4.4 管理套餐信息用例实现 16

3.5 对象设计 17

3.5.1 模块设计 17

3.5.2 业务实体类的设计 17

3.5.3 业务处理类的设计 18

3.5.4 类的描述 20

第4章 系统实现 22

4.1 核心功能实现 22

4.1.1 分类管理功能模块的实现 22

4.1.2 菜品管理功能模块的实现 23

4.1.3 套餐管理功能模块的实现 24

4.1.4 用户下单功能模块的实现 25

4.2 关键技术难点与解决方案 26

第5章 系统测试 28

5.1 功能测试 28

5.2 非功能测试 29

5.3 测试总结 29

第6章 结论与展望 31

参考文献 32

致  谢 33

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐