基于Spring Boot+MyBatis-Plus的外卖项目

一、绪论

1.1 开发背景

互联网的普及,给人们的生活带来了极大的便利,手机应用软件的飞速发展,使得订餐应用软件在餐饮外卖市场中占有举足轻重的地位。进入21世纪以来,餐饮行业以年均20%的增长速度,成为国民经济中的发展最快的行业之一。随着人们生活水平的不断提高,人们甚至想要不出门就能吃到可口的饭菜一这就是外卖。在我国高校内餐饮行业外卖行业更是发展最快的一个行业,外卖订餐已经成为学生生活中不可缺的一部分,而订餐的方式也随着学生们的要求提高,不断的多样化和成熟化。
订餐应用软件为人们提供方便的订餐服务,通过手机软件,用户可以查看附近的餐馆,了解餐馆的优惠活动,了解餐馆的具体菜价,进而安排餐馆的配送,从而解决足不出户的用餐问题[2]。
目前市场上的外卖公司很多,但基本上饿了么、美团外卖等外卖公司已经掌握了绝大部分的市场。由于业务调整等原因,百度外卖逐渐退出竞争[3]。
影响外卖业务发展的因素有3方面,分别是外卖业务的发展取决于外卖业务的用户使用习惯、外卖业务的入口和场景、外卖技术的发展[4]。谁能把握住口碑,谁就能把握住用户市场。
本项目是基于现有的外卖应用开发的独立平台,可以便利于小商户的日常使用,免于被美团、饿了么等平台操控,可以实现个性化服务定制,让商家的需求能够得到满足。

1.2 开发环境介绍

1.2.1 JDK 1.8

Java Development Kit (JDK)是Java语言的软件开发工具包,它提供了编译、运行和调试Java程序所需的工具和资源。JDK 1.8是Java平台的一个重要版本,于2014年发布。它引入了许多新特性和改进,其中包括Lambda表达式、函数式接口、Stream API、新的日期时间API等,使Java语言在编程范式、性能和易用性方面得到了显著的提升。JDK 1.8在Java开发中广泛应用,是许多Java项目的首选开发环境。

1.2.2 IntelliJ IDEA 2018

IntelliJ IDEA是由JetBrains开发的一款集成开发环境(IDE),专门用于Java、Kotlin和其他相关技术的开发。IntelliJ IDEA提供了强大的代码编辑、自动补全、代码重构、代码检查等功能,使开发者能够更高效地编写、调试和测试代码。IntelliJ IDEA 2018是IntelliJ IDEA系列的一个版本,它于2018年发布,带来了一系列更新和改进,增强了开发体验和性能。IntelliJ IDEA 2018在Java开发中被广泛使用,并受到开发者们的喜爱。

1.2.3 SQLyog

SQLyog是一款用于MySQL数据库管理的图形化工具,由Webyog公司开发。SQLyog提供了直观友好的用户界面,使数据库管理员和开发者能够更轻松地管理MySQL数据库,包括创建、修改、删除数据库和表,执行SQL查询,备份和恢复数据等。SQLyog支持多个MySQL连接,并且具有丰富的数据库管理功能和性能优化工具,使用户能够高效地管理MySQL数据库。SQLyog适用于Windows、Linux和Mac等操作系统,是MySQL数据库管理的重要辅助工具。
综上所述,JDK 1.8作为Java语言的开发环境,提供了Java编译和运行所需的基本工具;IntelliJ IDEA 2018作为一款功能强大的IDE,为Java开发者提供了高效的代码编辑和调试环境;SQLyog则为MySQL数据库的管理提供了图形化的界面和丰富的功能。这三者共同组成了一个高效、便捷的Java开发环境,为Java项目的开发和维护提供了强有力的支持。

二、需求分析

2.1 项目简介

2.1.1 项目类型

本项目是一款基于Spring Boot+MyBatis-Plus的外卖项目,商家可以实现后台的商品以及用户信息和订单信息管理,用户可以实现选餐与下单服务[5]。

2.1.2 项目用法

商家可以登录以后操控系统后台,设置单品和套餐,并且管理用户订单,用户可以在注册登录后,在小程序界面点餐,并且选择相应的产品规格,加入购物车后点击下单,填写相关收货信息后可完成点单[6]。

2.1.3项目特点

在本外卖项目中,本人负责设计和实现用户下单和购物车功能,并在开发过程中秉承高质量的标准,充分满足用户需求。以下是项目中用户下单和购物车功能的特点:
简洁易用的下单流程:用户下单功能经过精心设计,确保了下单流程简洁明了。用户可以轻松选择商品、填写送货信息和支付方式,提升了用户体验,减少下单的时间和操作步骤。
灵活多样的购物车操作:购物车功能允许用户添加、删除和修改商品,同时支持清空购物车,方便用户根据个人喜好和需求进行灵活购物。
安全性与数据一致性:本人在用户下单和购物车功能中考虑了数据的一致性和安全性。对用户订单信息进行严格验证和处理,保障了订单数据的准确性和安全性。
强大的扩展性:用户下单和购物车功能的设计充分考虑了未来的扩展性。代码结构清晰,模块化设计,方便后续功能的扩展和维护。
全面的黑盒测试:本人对用户下单和购物车功能进行了全面的黑盒测试,确保了功能的正确性和稳定性。通过测试用例的执行和结果分析,优化了功能的实现。
与团队协作:在项目开发中,本人与团队成员密切合作,及时分享进展和沟通问题,保持团队的高效协作,共同推进项目的成功实现。
用户下单和购物车功能是外卖项目中的核心模块之一,其高效实现和用户友好的设计为项目的成功推出奠定了坚实基础。这些功能的稳定性和扩展性,将使项目在外卖市场拥有竞争力和吸引力。

2.2 需求分析

2.2.1 购物车功能需求

(1)添加商品:用户可以将商品添加到购物车中。添加商品时,需要选择商品的数量和其他相关选项(如规格、口味等)。
(2)删除商品:用户可以从购物车中删除不需要的商品。在购物车中选择商品,并进行删除操作,确认后商品将从购物车中移除。
(3)修改商品数量:用户可以修改购物车中商品的数量。购物车中显示商品数量,用户可以手动输入修改或通过增加/减少按钮来调整数量。
(4)查看购物车:用户可以随时查看购物车中的商品列表和详细信息。购物车界面应展示商品名称、数量、单价、小计等信息。
(5)清空购物车:用户可以一键清空购物车,将所有商品从购物车中移除。
(6)购物车合计:购物车页面应显示购物车中所有商品的总价,便于用户了解订单总额。
(7)购物车状态保存:购物车中的商品应在用户登录状态下保存,用户可以在下次登录时继续查看之前添加的商品。
(8)下单操作:用户在购物车页面可以选择下单操作,进入订单确认页面,并填写相关送货信息和支付方式。

2.2.2 用户下单功能需求

(1)确认订单:用户在购物车页面可以选择确认订单,进入订单确认页面,检查订单信息的准确性。
(2)填写送货信息:用户需要在订单确认页面填写送货信息,包括送货地址、联系电话等。
(3)提交订单:用户确认订单信息无误后,可以提交订单,生成订单编号,表示订单已下单。
(4)订单状态跟踪:用户可以在移动端或后台管理系统中查看订单状态,包括待支付、已支付、配送中、已完成等状态。

三、系统设计

3.1 概要设计

项目分别为外卖后台管理系统和前端小程序,其中,后台管理系统分为6个大模块,分别是登录管理、员工信息管理、分类管理、菜品管理、套餐管理和订单管理模块,在外卖小程序部分,分为用户、菜品展示和订单模块。
在这里插入图片描述在这里插入图片描述

3.2 详细设计

外卖后台管理系统的用例图
在这里插入图片描述(1)新增菜品:管理员可以在菜品管理页面点击新增菜品按钮,在弹出的表单中填写相关菜品信息,包括菜品名称、价格、描述、分类等,然后点击确认按钮完成新增操作。其中,由于涉及到菜品图片的上传,所以新增菜品需要设计到文件上传下载功能。
(2)修改菜品信息:管理员可以在菜品管理页面点击某个菜品的修改按钮,进入菜品修改页面,可以修改菜品的各项信息,如菜品名称、价格、描述、分类等,然后点击确认按钮完成修改操作。
(3)删除菜品:管理员可以在菜品管理页面选择需要删除的菜品,点击删除按钮,系统会提示确认删除的操作,管理员确认后,菜品将从系统中删除,同时相关的菜品信息也会被删除。
(4)停售/启售菜品:管理员可以在菜品管理页面选择需要停售/启售的菜品,点击停售/启售按钮,系统会提示确认停售/启售的操作,管理员确认后,菜品将变成停售/启售状态。
(5)菜品展示:用户登录成功后跳转到系统首页,在首页需要根据分类来展示菜品和套餐。如果菜品设置了口味信息需要展示[选择规格]按钮,否则显示[+]按钮。

3.3 数据表设计

菜品表
在这里插入图片描述

菜品口味表

在这里插入图片描述

四、系统实现

4.1 菜品管理模块

管理员在新增菜品页面输入必填项并上传图片内容后,可以选择保存并新增菜品,或者取消操作,或者保存并继续添加菜品。这个过程就是在新增菜品页面发送ajax请求,请求服务端获取菜品分类数据并展示到下拉框中;页面发送请求进行图片上传,请求服务端将图片保存到服务器;页面发送请求进行图片下载,将上传的图片进行回显;点击保存按钮,发送ajax请求,将菜品相关数据以json形式提交到服务端。
在这里插入图片描述在这里插入图片描述

4.2 菜品展示

用户登录成功后跳转到系统首页,在首页需要根据分类来展示菜品和套餐。如果菜品设置了口味信息需要展示[选择规格]按钮,否则显示[+]按钮。
在这里插入图片描述

4.3 购物车模块

当用户登录成功后,可以在每个菜品旁点击选择规格后加入商品到购物车
在这里插入图片描述

4.4 地址簿模块

用户点击地址管理按钮后,页面自动发送ajax请求,传递用户id,查询当前用户的所有地址
在这里插入图片描述

六、系统测试

6.1 测试说明

系统测试是为了尽可能多地发现系统中已知和未知的错误,以验证系统的安全性和健壮性,通过系统测试,可以提高系统的可靠性、稳定性和安全性,减少系统故障和数据损失的风险,本人采用黑盒测试对该系统进行测试。
黑盒测试是从一种从软件外部对软件实施的测试。其基本观点是:任何程序都可以看作是从输入定义域到输出值域的映射,这种观点将被测程序看作一个打不开的黑盒,黑盒里面的内容(实现)是完全不知道的。因无法看到盒子中的内容,所以不知道软件是如何实现的,也不关心黑盒里面的结构,只关心软件的输入数据和输出结果。检测软件功能能否按照需求规格说明书的规定正常工作,是否有功能遗漏;检测是否有人机交互错误,是否有数据结构和外部数据库访问错误,是否能恰当地接收数据并保持外部信息(如数据库或文件)等的完整性;检测行为、性能等特性是否满足要求等;检测程序初始化和终止方面的错误等。

6.2 测试总结

综上所述,分类管理测试的结果显示,该系统较为成功。在功能性、界面、易用性和性能方面均没有发现问题。经过上述测试,各个模块均展现出正常的功能,性能指标也达到了预定要求,整体效果符合预期。本次测试充分验证了基于Spring Boot+MyBatis-Plus的外卖系统的高可用性、可扩展性和安全性等关键性能指标,证明了该系统在实际应用中具有很高的价值和可行性。管理员可以方便地进行分类信息的查询、展示、分页浏览和修改操作。用户可以轻松的进行对自己地址的管理。系统的界面设计也符合用户的期望,易于使用和操作。
综合考虑,该分类管理模块和地址簿模块经过测试,能够满足预期的功能需求,并且在性能方面表现出令人满意的水平。因此,可以得出结论该系统在分类管理和地址簿管理方面的表现是成功的。

七、总结与展望

随着互联网和物流行业的快速发展,传统的线下门店购买方式开始改变,外卖成为越来越多人的消费选择。外卖利用互联网提供的机遇蓬勃发展,但迅猛成长的同时也存在一系列问题,应当在逐渐饱和化的市场下立足自身优势,不断深化产品和服务,做到多元化、专业化和客户差异化,提高服务品质,推进外卖模式的优化升级。
该外卖管理系统的开发和设计从用户的需求的角度出发,通过了解用户的需求开发出具有较高的实用价值的外卖管理系统。本系统主要分为两大模块:后台管理模块、移动端模块,通过该系统的应用,可以满足外卖管理工作的高效化和网络化的需求,提高外卖的工作质量与效率。

八、源码获取

大家点赞、收藏、关注、评论啦 ,私信获取联系方式

  • 13
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
当使用MyBatis Plus编写购物车功能时,您可以按照以下步骤进行操作: 1. 创建购物车表 首先,您需要创建一个购物车表来存储购物车中的商品信息。可以使用以下SQL语句创建购物车表: ```sql CREATE TABLE shopping_cart ( id INT PRIMARY KEY AUTO_INCREMENT, user_id INT, product_id INT, quantity INT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, FOREIGN KEY (user_id) REFERENCES users(id), FOREIGN KEY (product_id) REFERENCES products(id) ); ``` 2. 创建实体类 根据购物车表的结构,创建一个购物车实体类。可以使用类似以下代码创建购物车实体类: ```java import com.baomidou.mybatisplus.annotation.TableName; @TableName("shopping_cart") public class ShoppingCart { private Long id; private Long userId; private Long productId; private Integer quantity; // getters and setters } ``` 3. 创建Mapper接口 创建一个Mapper接口来操作购物车表。可以使用以下代码作为参考: ```java import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; @Mapper public interface ShoppingCartMapper extends BaseMapper<ShoppingCart> { // 可以在需要的情况下自定义查询方法 } ``` 4. 使用Mapper进行CRUD操作 在您的服务类或控制器中,注入`ShoppingCartMapper`对象,并使用它进行CRUD操作。可以使用以下代码示例: ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class ShoppingCartService { private final ShoppingCartMapper shoppingCartMapper; @Autowired public ShoppingCartService(ShoppingCartMapper shoppingCartMapper) { this.shoppingCartMapper = shoppingCartMapper; } // 添加商品到购物车 public void addToCart(ShoppingCart shoppingCart) { shoppingCartMapper.insert(shoppingCart); } // 更新购物车中的商品数量 public void updateQuantity(ShoppingCart shoppingCart) { shoppingCartMapper.updateById(shoppingCart); } // 从购物车中删除商品 public void deleteFromCart(Long cartId) { shoppingCartMapper.deleteById(cartId); } // 根据用户ID查询购物车列表 public List<ShoppingCart> getCartByUserId(Long userId) { QueryWrapper<ShoppingCart> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("user_id", userId); return shoppingCartMapper.selectList(queryWrapper); } } ``` 请根据您的具体业务需求进行相应的调整和扩展。这只是一个简单的示例,您可以根据实际情况进行更多的操作和逻辑处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

听夜雨声烦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值