摘要
随着互联网技术发展,传统餐饮行业依赖线下门店经营,存在运营成本高、服务范围受限、信息传播慢等缺点。为解决这些问题,开发了基于SpringBoot的食客商丘在线美食商城系统。系统前端采用Vue技术,后端使用SpringBoot框架,数据库选用MySQL。用户可查看美食、收藏、加入购物车、购买、增减数量,管理订单、点赞收藏评论商品资讯,浏览通知公告。商家可统计销售额、管理美食订单配送售后。管理员负责用户商家资讯商城管理,审核商品资讯,处理订单配送签收。该系统通过线上平台优化餐饮行业运营模式,提升用户体验和商家管理效率,推动餐饮行业数字化转型。
关键词:美食商城系统;SpringBoot;Vue;MySQL
JavaWeb-based springboot eater hill online food mall
Abstract
With the development of Internet technology, the traditional catering industry relies on offline stores, which has shortcomings such as high operating costs, limited service scope, and slow information dissemination. In order to solve these problems, a SpringBoot-based online food mall system was developed. The front-end of the system uses Vue technology, the back-end uses the SpringBoot framework, and the database uses MySQL. Users can view food, favorites, add to cart, purchase, increase or decrease quantity, manage orders, like, favorite, comment on product information, and browse notifications and announcements. Merchants can count sales and manage food order delivery and after-sales. The administrator is responsible for the management of the user's business information mall, reviewing the product information, and processing the delivery and receipt of the order. The system optimizes the operation mode of the catering industry through the online platform, improves the user experience and merchant management efficiency, and promotes the digital transformation of the catering industry.
Key words: food mall system; SpringBoot; Vue; MySQL
目 录
餐饮行业作为民生基础产业,其发展历程贯穿人类社会始终。在传统模式下,餐饮商家依赖实体店铺经营,顾客需亲自到店消费。这种模式下,商家经营受地理位置、营业时间限制,推广渠道有限,多依靠口碑传播,信息传播速度慢、范围窄[1]。随着社会经济快速发展,人们生活节奏加快,消费需求日益多样化,传统餐饮模式难以满足现代消费者对便捷性、多样性和个性化的需求。近年来,互联网技术蓬勃发展,移动支付、物流配送等基础设施不断完善,为餐饮行业转型升级提供了技术支撑。餐饮行业逐渐从线下实体经营向线上线下融合模式转变,线上美食商城应运而生,成为餐饮行业发展的新趋势。
系统构建一个综合性的在线美食商城,为商家与消费者提供高效便捷的交易平台。系统通过整合商家资源,打破地域限制,使消费者能够随时随地浏览、选购美食,满足其多样化需求。系统为商家提供数据分析、订单管理等功能,助力商家精准营销、提升运营效率。系统还设有售后管理模块,保障消费者权益,增强用户信任度。本系统顺应餐饮行业数字化发展趋势,推动传统餐饮模式向现代化、智能化转型,具有重要的现实意义。
国内学者在美食推荐系统及相关领域开展了广泛研究。2024年,张晴、史率和袁宝华在《现代计算机》上发表文章,提出基于协同过滤算法的美食点评系统[2]。该系统采用SpringBoot与Vue.js技术,以前后端分离架构为基础,利用餐饮评价系统中用户的评论数据训练基于模型的协同过滤算法,对用户的评分数据进行预测,最终根据预测评分的高低为不同用户推荐不同的店铺,实现个性化推荐。王亚芳、丘永亮、原波、黄艳丽和张敏娜在《包装工程》上发表研究,针对潮汕牛肉丸进行VI系统设计。该设计采用圆形LOGO突出牛肉丸外形,提取公牛造型元素体现牛肉丸的劲道和新鲜,底色选取中国红,名称设计选取“潮”字彰显地方特色与现代饮食文化融合,“牛”字代表原材料,“丸”字代表产品形状,整体设计突出产品特色,传递民族文化[3]。2022年,李凯在《北京邮电大学》完成硕士论文,提出基于多源融合与用户偏好的美食推荐模型PMFUP。该模型充分利用地理、时间等上下文信息构建用户历史偏好向量,通过多层网络堆叠模型将多源上下文信息进行融合,以更好地学习特定上下文环境下的用户偏好,提高预测用户行为的准确性[4]。李凯还提出基于兴趣漂移发掘的感知推荐模型PRMIDM,使用时序权重衰减函数及动态调整的数据堆结构模拟用户兴趣漂移,引入兴趣感知机制,为美食推荐系统提供了更精准的用户偏好建模方法。这些研究展示了国内在美食推荐系统领域的技术应用与创新,为个性化美食推荐提供了理论与实践基础,推动了美食推荐系统在技术实现和用户体验上的不断进步。
国内研究不仅关注技术实现,还注重文化元素与美食推荐的结合。例如,王亚芳等人的研究通过VI系统设计提升潮汕牛肉丸的品牌形象,将地方文化与美食产品深度融合,为美食推荐系统提供了文化层面的支撑。这种文化与技术相结合的研究思路,为美食推荐系统的发展提供了新的方向。同时,国内学者在多源信息融合、用户偏好建模等方面的研究,也为美食推荐系统的精准性和个性化提供了重要的技术支持。这些研究成果不仅在学术界引起了广泛关注,也在实际应用中展现出良好的前景,为美食推荐系统的发展奠定了坚实的基础。
国外在美食推荐系统及相关领域也有诸多研究。2020年,Tara Fitzpatrick在《Food Management》发表文章,探讨食品服务团队通过巧克力主题快闪店提升销售的策略[5]。该研究展示了餐饮行业在营销与服务创新方面的实践,通过主题快闪店的形式,结合特定的食品主题,吸引消费者参与,从而提升销售业绩。这种创新的营销方式为美食推荐系统提供了新的思路,即通过主题化、个性化的推荐策略,吸引用户关注并提升用户参与度。2016年,《Revista Gerencia y Políticas de Salud》发表研究,分析哥伦比亚生物技术药品销售价格的直接调控对卫生系统成本的影响[6]。虽然该研究并非直接针对美食推荐系统,但其涉及的销售与成本管理理念,为餐饮行业的运营提供了参考。通过分析销售数据和成本结构,餐饮企业可以更好地优化推荐策略,提升运营效率。2013年,《Politics & Government Week》报道了一项专利申请,涉及基于原始商品销售渠道的网络系统和方法,用于订购替换供应品[7]。该技术理念为餐饮行业的供应链管理提供了借鉴,通过网络系统实现供应链的优化和管理,确保餐饮企业能够及时、准确地获取所需食材,从而为美食推荐系统提供更稳定的产品基础。国外学者在用户行为分析、推荐算法优化等方面也有深入研究。一些研究通过分析用户的历史购买行为和偏好,结合地理位置、时间等上下文信息,优化推荐算法,提高推荐的准确性和个性化。这些研究从不同角度反映了国外在餐饮及相关领域的探索与创新,为美食推荐系统的多维度发展提供了借鉴。
国外研究在技术实现和用户体验方面也取得了显著进展。一些研究通过引入机器学习和人工智能技术,提升推荐系统的智能化水平。通过分析用户的行为数据和偏好,系统能够实时调整推荐策略,为用户提供更精准、更个性化的推荐。国外学者还注重推荐系统的可扩展性和适应性,通过优化算法和系统架构,确保推荐系统能够适应不同用户群体和不同场景的需求。这些研究成果不仅在学术界引起了广泛关注,也在实际应用中展现出良好的前景,为美食推荐系统的发展提供了重要的技术支持。
研究开发一个基于SpringBoot的食客商丘在线美食商城系统,以满足现代餐饮行业数字化转型的需求。系统采用前后端分离架构,前端使用Vue技术,后端基于SpringBoot框架,数据库选用MySQL。主要功能包括用户模块,支持美食浏览、收藏、加入购物车、购买及订单管理;商家模块,提供销售额统计、美食管理、订单处理及售后审核;管理员模块,涵盖用户与商家管理、资讯管理、商城管理等功能。通过整合商家资源,打破地域限制,系统为用户提供便捷的美食选购服务,同时为商家提供高效管理工具,提升运营效率。本系统顺应餐饮行业线上线下融合发展趋势,推动传统餐饮模式向智能化、数字化转型,具有重要的现实意义和广阔的应用前景。
Java是一种面向对象的编程语言,最初由Sun Microsystems公司于1995年发布。其核心特性包括跨平台性、高度的抽象性和丰富的类库支持。Java语言通过Java虚拟机(JVM)实现平台无关性,程序可以在不同的操作系统上运行,只要这些操作系统上安装了相应的JVM。这一特性使得Java语言成为开发跨平台应用的理想选择[8]。Java的语法结构与C语言相似,使用类和对象的概念,支持封装、继承和多态等面向对象的基本特性。Java语言提供了异常处理机制、垃圾回收、线程管理和网络编程等功能,这些特性使得Java在处理高并发、大规模分布式系统时表现出色。
在Java的应用开发中,开发者通过编写Java源代码,并通过Java编译器(javac)将其编译为字节码(bytecode),这种字节码由JVM解释或即时编译(JIT)为机器码执行。Java支持广泛的应用开发,包括桌面应用、Web应用、企业级应用以及移动设备应用[9]。Java语言还具有强大的多线程支持,能够方便地进行并发编程。为了提高开发效率,Java提供了丰富的API,包括对数据结构、I/O操作、网络编程、图形用户界面(GUI)等方面的支持。Java生态系统拥有诸如Spring、Hibernate等广泛使用的开发框架,进一步促进了开发者的工作效率。
B/S(Browser/Server)架构是一种网络架构模型,其主要特点是客户端通过浏览器与服务器进行通信,所有的业务逻辑和数据处理都在服务器端完成,客户端仅负责展示数据[10]。B/S架构本质上是一种客户端-服务器模式的变体,它通过将传统的C/S(Client/Server)架构中的客户端功能移到浏览器中,简化了客户端的开发和维护工作。在B/S架构中,用户通过浏览器发送请求,浏览器负责展示从服务器获取的数据,服务器则处理请求并返回响应。该架构避免了安装和配置客户端软件的麻烦,也减少了对客户端硬件的依赖,适合于需要大规模部署和跨平台支持的应用系统。
B/S架构的工作流程通常包括客户端、应用服务器和数据库服务器三个主要组成部分。客户端是指运行在用户设备上的浏览器,它向服务器发起HTTP请求,并接收HTML、CSS和JavaScript等前端资源进行页面渲染。应用服务器负责接收客户端请求、处理业务逻辑并与数据库服务器交互,从而提供所需的数据和服务[11]。数据库服务器则用于存储应用所需的持久化数据,并通过SQL等查询语言提供数据访问接口。B/S架构在开发中常结合Web前端技术(如HTML5、CSS3、JavaScript)和后端开发框架(如Java EE、Spring等)进行开发,支持大规模用户访问、动态页面生成和数据交互等功能。
SpringBoot是基于Spring框架的一个开源Java框架,它简化了Java企业级应用程序的配置和部署过程。SpringBoot通过提供一系列开箱即用的功能和配置,减少了传统Spring应用程序中复杂的XML配置和Bean管理工作,使得开发者能够快速创建独立的、基于Spring的生产级应用程序[12]。SpringBoot的核心特性包括自动配置、嵌入式服务器支持(如Tomcat、Jetty等)和简化的配置文件管理,使得应用程序可以不依赖外部的Web服务器进行部署,直接运行在任何支持JVM的环境中。
SpringBoot框架使得开发者可以专注于业务逻辑,而不必关心底层配置和服务器搭建问题。通过注解驱动的编程方式,SpringBoot能够自动推测应用程序的配置并执行适当的初始化[13]。开发者只需要少量的配置,SpringBoot就能够自动装配所需的组件和依赖,极大地提高了开发效率。SpringBoot还提供了与Spring生态系统中的其他模块(如Spring Data、Spring Security、Spring MVC等)紧密集成的能力,使得开发者能够轻松构建具有高扩展性和高可靠性的企业级应用。SpringBoot应用程序可以通过Spring Boot Starter进行快速构建,也支持Spring Boot Actuator模块进行应用的监控和管理。
Vue.js是一种用于构建用户界面的渐进式JavaScript框架。与传统的单一框架不同,Vue的核心库仅关注视图层,易于引入与现有项目进行整合。Vue的设计理念是“逐步采纳”,即可以逐步地将Vue引入到一个项目中,根据需要使用其功能,而不必一次性将整个框架完全替代掉现有技术栈[14]。Vue主要通过声明式渲染、组件化开发和响应式数据绑定的机制,简化了Web应用的开发过程,使得开发者能够专注于界面和用户交互,而无需关心底层的复杂逻辑。
Vue的核心特性之一是其响应式数据绑定。当数据变化时,Vue会自动更新与该数据相关联的视图,确保数据和视图的一致性。这一机制通过使用虚拟DOM(Virtual DOM)来优化渲染过程,避免了每次数据变化时都直接操作DOM的高性能开销,从而提高了页面渲染的效率。Vue还支持双向数据绑定,开发者可以通过v-model指令实现表单元素的自动同步[15]。组件化是Vue的另一大特性,它将界面划分为独立的小模块,每个模块都包含自己的逻辑和视图。这种方法使得应用的可维护性和扩展性大大提高,同时也方便了团队协作和代码复用。
MySQL是一个开源的关系型数据库管理系统(RDBMS),由Oracle公司维护和支持。MySQL数据库广泛应用于Web开发和企业级应用中,支持SQL(结构化查询语言)来进行数据管理、查询、更新和删除操作。MySQL的核心特性包括支持事务处理、数据一致性、表关联以及高效的数据存储和检索。它能够处理从小型应用到大规模Web系统的数据存储需求,具有较强的可扩展性和高性能[16]。
MySQL数据库通过支持ACID(原子性、一致性、隔离性、持久性)事务特性,确保在多个操作涉及到数据时,能够保持数据的一致性和完整性。MySQL还支持视图、存储过程、触发器等数据库对象,用于增强数据库的功能和灵活性。MySQL支持通过主从复制和分区技术来进行数据备份和高可用性配置,支持海量数据的分布式存储和负载均衡。MySQL的查询优化器能够根据查询语句和数据表结构自动选择最优的执行计划,从而提高查询效率。MySQL广泛应用于各类Web应用、数据仓库、企业管理系统等领域,其高效的性能和强大的功能使其成为企业级应用开发中常用的数据库管理系统之一。
UML用例图是统一建模语言(UML)中的一种行为图,用于描述系统的功能需求及其与外部参与者的交互。用例图通过用例和参与者之间的关系,展示系统提供的服务和功能。用例图的主要元素包括参与者、用例、系统边界和关系,其目的是帮助开发人员和利益相关者理解系统的需求和功能交互。用例图常用于需求分析阶段,明确系统的功能范围。本文将对系统按照角色模块进行需求分析。
用户功能包括查看美食商城信息、收藏美食、将美食加入购物车、购买美食、增减购物车中美食数量;管理订单,删除订单、付款、取消订单、申请售后;对美食上新进行点赞、收藏、评论;浏览通知公告、关于我们、联系方式、网站介绍;浏览资讯并进行点赞、收藏、评论。

图3-1 用户用例图
商家功能包括查看销售额统计,统计销售数量、销售金额;管理美食,增删改查美食信息、查看评论;管理订单列表,增删改查订单信息;管理订单配送,增删改查配送信息;处理订单售后,查看售后申请、进行审核。
商家用例图如图3-2所示。

图3-2 商家用例图
管理员功能包括对用户进行增删改查操作;对商家进行增删改查操作及审核;对资讯进行增删改查操作,查看资讯评论;对商城进行增删改查操作,查看评论、被回复内容,进行审核、配送、签收操作;对商品上新进行增删改查操作,查看评论。
管理员用例图如图3-3所示。

图3-3 管理员用例图
1.可用性需求
系统必须具备高可用性,以确保其在各种使用场景下能够稳定运行。为满足可用性要求,系统应当具备自恢复能力和冗余机制,避免因单点故障而导致的服务中断。具体而言,系统的部署架构应支持负载均衡和集群配置,通过多个实例的协作提高整体系统的可用性。系统应提供详尽的监控与告警机制,能够实时追踪系统运行状态,及时发现潜在问题并触发自动恢复操作或通知管理员。在用户体验方面,系统需要提供清晰的错误提示信息,并能够在发生异常时通过回滚操作或其他容错机制,保证用户的操作不受到严重影响。
2.可靠性需求
可靠性要求系统在长时间运行中保持稳定,能够有效应对各种可能的故障和压力。系统设计应支持高可用的数据库架构,采用数据库主从复制、分片等技术以实现数据的可靠存储与访问。应用层应具备容错能力,在面对硬件故障、网络中断等意外情况时,能够保持系统的正常服务或在故障恢复后迅速恢复数据和业务流程。系统应具备日志记录功能,能够全面记录操作过程和异常信息,从而为问题追踪与系统优化提供数据支持。系统的可靠性还需要通过压力测试和稳定性测试来验证,确保在大规模用户访问及高并发场景下能够正常运行,不发生崩溃或数据丢失现象。
3.安全性需求
系统的安全性需求必须得到高度重视,确保系统和用户数据的保密性、完整性和可用性。为实现数据安全,系统应采用加密技术,特别是在用户认证、敏感数据传输和存储过程中,采用SSL/TLS协议进行加密通信,确保数据在传输过程中不被窃取或篡改。系统应支持用户身份验证与授权管理,采用如OAuth、JWT等安全机制防止未授权访问。访问控制应细化到资源级别,确保不同角色的用户只能访问其权限范围内的功能。为了防止恶意攻击,系统还应加强对常见攻击方式(如SQL注入、XSS攻击、CSRF攻击等)的防护,通过输入验证、输出转义、会话管理等技术措施提高系统的安全性。系统应定期进行安全审计与漏洞扫描,及时发现并修补可能的安全漏洞,保障系统的长期安全运营。
系统采用当前主流的SpringBoot和Vue.js开发框架,具备良好的技术基础。这些技术已被广泛应用于多种商业项目,具备成熟的文档和社区支持,便于开发获取必要的资源与解决方案。个人拥有丰富的相关技术经验,能够有效应对潜在技术挑战。所需的软硬件资源易于获取,且具备良好的兼容性,降低了技术实现的难度。
系统具备直观友好的用户界面,支持简便的导航和功能访问,极大地提升了用户的使用体验。系统提供了自定义的工作流程和角色权限管理,使不同层级的用户能够快速上手,完成各自的任务。。
系统所使用的软件为开源技术,降低了使用费用,同时硬件成本较低,使得整体初始投入相对合理,具备较高性价比。因此,系统在经济上是完全可行的。
用户在系统中登录后,进入“我的订单”页面。系统显示所有订单列表,用户可选择特定订单进行操作。点击“删除订单”,系统提示确认,用户确认后订单从数据库删除;点击“付款”,系统跳转至支付页面,用户完成支付流程后,订单状态更新为“已付款”;点击“取消订单”,系统提示原因,用户填写后订单状态更新为“已取消”;点击“申请售后”,填写问题描述,系统生成售后申请并通知商家或管理员处理。如图3-4所示。

图3-4用户订单管理流程图
商家登录系统,进入“美食管理”页面。点击“新增美食”,填写名称、价格、图片等信息,系统将美食信息存入数据库并显示在商城页面;点击“修改美食”,选择目标美食,编辑信息后保存,系统更新数据库记录;点击“删除美食”,选择目标美食,系统提示确认后删除记录;点击“查看评论”,系统显示该美食的所有用户评论,商家可据此优化产品。如图3-5所示。

图3-5商家美食管理流程图
管理员登录系统,进入“用户管理”页面。系统展示用户列表,管理员可搜索特定用户。点击“新增用户”,输入账号、密码等信息,系统创建新用户记录;点击“修改用户”,选择目标用户,编辑信息后保存,系统更新用户数据;点击“删除用户”,选择目标用户,系统提示确认后删除用户记录;点击“查看用户详情”,系统展示用户订单、行为等信息,管理员据此进行管理决策。如图3-6所示。

图3-6 管理员用户管理流程图
管理员登录系统,进入“资讯管理”页面。点击“新增资讯”,输入标题、内容、图片等信息,系统将资讯发布至商城首页;点击“修改资讯”,选择目标资讯,编辑内容后保存,系统更新资讯信息;点击“删除资讯”,选择目标资讯,系统提示确认后删除记录;点击“查看评论”,系统显示该资讯的所有用户评论,管理员可据此优化内容或处理不当言论。如图3-7所示。

图3-7管理员资讯管理流程图
系统采用SpringBoot 框架开发,该系统分为VIEW层、Controller层、Model层、DAO层和持久化数据存储层,VIEW层支持电脑浏览器访问系统。VIEW 层与 Controller 层紧密结合并系协同工作,共同完成前台页面的数据展示;Controller层为控制层,通过接收前端请求的参数进行业务处理,返回指定的路径或数据;Model层主要是服务层,用于业务逻辑处理;DAO 和持久化层,主要用于访问数据库和持久化数据[17]。整个系统架构如图4-1所示。

图4-1 系统架构图
本系统为食客商丘在线美食商城,具备丰富功能。用户可查看美食详情、收藏喜爱美食、加入购物车、调整数量并完成购买,还能管理订单、删除订单、付款、取消订单、申请售后,同时可对美食上新点赞、收藏、评论,浏览通知公告、资讯并进行互动。商家可查看销售额统计,管理美食信息、订单列表、订单配送及订单售后。管理员则负责用户管理、商家管理与审核,资讯管理,商城管理与审核,商品上新管理等功能。系统满足用户、商家与管理员多角色需求,实现美食推荐、交易与管理一体化服务。
系统功能结构图如图4-2所示。

图4-2 系统功能结构图
在进行数据库设计时,概念设计帮助明确系统的整体结构和需求。在这一阶段,需要确定实体、属性以及它们之间的关系,为后续的数据库表设计奠定基础。接下来,将深入探讨数据库表设计的具体细节,实现更高效的数据存储和管理。
概念设计是数据库设计的第一步,其主要目标是对系统的数据需求进行全面的理解和抽象[18]。在这一阶段,通过建立实体-关系模型(ER模型)来识别系统中的关键实体、属性及其相互关系。概念设计的输出是一个清晰的ER图,作为后续数据库表设计的基础。以下将展示系统的全局E-R图以及各个实体的属性图。
系统全局E-R图如图4-3所示。

图4-3 系统E-R图
商品信息实体图如图4-4所示。

图4-4商品信息实体图
购物车实体图如图4-5所示。

图4-5 购物车实体图
订单实体图如图4-6所示。

图4-6 订单实体图
商品上新实体图如图4-7所示。

图4-7 商品上新实体图
用户实体图如图4-8所示。

图4-8 用户实体图
商家实体图如图4-9所示。

图4-9 商家实体图
管理员实体图如图4-10所示。

图4-10管理员实体图
这一阶段的重点是将概念模型转换为实际的数据库结构,包括表的创建、字段的定义及数据类型的选择。每个实体通常对应于数据库中的一张表,而实体的属性则转化为表的列[19]。以下是系统的数据库表设计展示。
表4-1商品信息表
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | goods_id | mediumint | 是 | 是 | 产品ID | |
| 2 | title | varchar | 125 | 否 | 否 | 标题 |
| 3 | img | text | 65535 | 否 | 否 | 封面图 |
| 4 | description | varchar | 255 | 否 | 否 | 描述 |
| 5 | price_ago | double | 是 | 否 | 原价 | |
| 6 | price | double | 是 | 否 | 卖价 | |
| 7 | sales | int | 是 | 否 | 销量 | |
| 8 | inventory | int | 是 | 否 | 商品库存 | |
| 9 | type | varchar | 64 | 是 | 否 | 商品分类 |
| 10 | hits | int | 是 | 否 | 点击量 | |
| 11 | content | longtext | 4294967295 | 否 | 否 | 正文 |
| 12 | img_1 | text | 65535 | 否 | 否 | 主图1 |
| 13 | img_2 | text | 65535 | 否 | 否 | 主图2 |
| 14 | img_3 | text | 65535 | 否 | 否 | 主图3 |
| 15 | img_4 | text | 65535 | 否 | 否 | 主图4 |
| 16 | img_5 | text | 65535 | 否 | 否 | 主图5 |
| 17 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 18 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 19 | customize_field | text | 65535 | 否 | 否 | 自定义字段 |
| 20 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 21 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 22 | source_id | int | 是 | 否 | 来源ID | |
| 23 | user_id | int | 否 | 否 | 添加人 |
表4-2购物车表
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | cart_id | int | 是 | 是 | 购物车ID | |
| 2 | title | varchar | 64 | 否 | 否 | 标题 |
| 3 | img | varchar | 255 | 是 | 否 | 图片 |
| 4 | user_id | int | 是 | 否 | 用户ID | |
| 5 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 6 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 7 | state | int | 是 | 否 | 状态 | |
| 8 | price | double | 是 | 否 | 单价 | |
| 9 | price_ago | double | 是 | 否 | 原价 | |
| 10 | price_count | double | 是 | 否 | 总价 | |
| 11 | num | int | 是 | 否 | 数量 | |
| 12 | goods_id | mediumint | 是 | 是 | 商品id | |
| 13 | type | varchar | 64 | 是 | 否 | 商品分类 |
| 14 | description | varchar | 255 | 否 | 否 | 描述 |
表4-3订单表
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | order_id | int | 是 | 是 | 订单ID | |
| 2 | order_number | varchar | 64 | 否 | 否 | 订单号 |
| 3 | goods_id | mediumint | 是 | 是 | 商品ID | |
| 4 | title | varchar | 255 | 否 | 否 | 商品标题 |
| 5 | img | varchar | 255 | 否 | 否 | 商品图片 |
| 6 | price | double | 是 | 否 | 价格 | |
| 7 | price_ago | double | 是 | 否 | 原价 | |
| 8 | num | int | 是 | 否 | 数量 | |
| 9 | price_count | double | 是 | 否 | 总价 | |
| 10 | norms | varchar | 255 | 否 | 否 | 规格 |
| 11 | type | varchar | 64 | 是 | 否 | 商品分类 |
| 12 | contact_name | varchar | 32 | 否 | 否 | 联系人姓名 |
| 13 | contact_email | varchar | 125 | 否 | 否 | 联系人邮箱 |
| 14 | contact_phone | varchar | 11 | 否 | 否 | 联系人手机 |
| 15 | contact_address | varchar | 255 | 否 | 否 | 收件地址 |
| 16 | postal_code | varchar | 9 | 否 | 否 | 邮政编码 |
| 17 | user_id | int | 是 | 否 | 买家ID | |
| 18 | merchant_id | mediumint | 是 | 否 | 商家ID | |
| 19 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 20 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 21 | description | varchar | 255 | 否 | 否 | 描述 |
| 22 | state | varchar | 16 | 是 | 否 | 订单状态 |
| 23 | remark | text | 65535 | 否 | 否 | 订单备注 |
| 24 | delivery_state | varchar | 16 | 否 | 否 | 发货状态 |
| 25 | vip_discount | double | 否 | 否 | 折扣 |
表4-4商品上新表
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | new_product_on_sale_id | int | 是 | 是 | 商品上新ID | |
| 2 | add_new_number | varchar | 64 | 否 | 否 | 上新编号 |
| 3 | product_name | varchar | 64 | 否 | 否 | 商品名称 |
| 4 | product_poster | varchar | 255 | 否 | 否 | 商品海报 |
| 5 | expected_to_be_listed | date | 否 | 否 | 预计上架 | |
| 6 | price_referenceyuan | double | 否 | 否 | 价格参考/元 | |
| 7 | merchant_name | varchar | 64 | 否 | 否 | 商家名称 |
| 8 | merchant_users | int | 否 | 否 | 商家用户 | |
| 9 | product_introduction | longtext | 4294967295 | 否 | 否 | 商品介绍 |
| 10 | hits | int | 是 | 否 | 点击数 | |
| 11 | praise_len | int | 是 | 否 | 点赞数 | |
| 12 | collect_len | int | 是 | 否 | 收藏数 | |
| 13 | comment_len | int | 是 | 否 | 评论数 | |
| 14 | create_time | datetime | 是 | 否 | 创建时间 | |
| 15 | update_time | timestamp | 是 | 否 | 更新时间 |
表4-5用户表
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | user_id | int | 是 | 是 | 用户ID | |
| 2 | state | smallint | 是 | 否 | 账户状态 | |
| 3 | user_group | varchar | 32 | 否 | 否 | 所在用户组 |
| 4 | login_time | timestamp | 是 | 否 | 上次登录时间 | |
| 5 | phone | varchar | 11 | 否 | 否 | 手机号码 |
| 6 | phone_state | smallint | 是 | 否 | 手机认证 | |
| 7 | username | varchar | 16 | 是 | 否 | 用户名 |
| 8 | nickname | varchar | 16 | 否 | 否 | 昵称 |
| 9 | password | varchar | 64 | 是 | 否 | 密码 |
| 10 | | varchar | 64 | 否 | 否 | 邮箱 |
| 11 | email_state | smallint | 是 | 否 | 邮箱认证 | |
| 12 | avatar | varchar | 255 | 否 | 否 | 头像地址 |
| 13 | open_id | varchar | 255 | 否 | 否 | 针对获取用户信息字段 |
| 14 | create_time | timestamp | 是 | 否 | 创建时间 |
表4-6商家表
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | merchant_users_id | int | 是 | 是 | 商家用户ID | |
| 2 | merchant_name | varchar | 64 | 否 | 否 | 商家名称 |
| 3 | responsible_personnel | varchar | 64 | 否 | 否 | 负责人员 |
| 4 | contact_information | varchar | 16 | 否 | 否 | 联系方式 |
| 5 | examine_state | varchar | 16 | 是 | 否 | 审核状态 |
| 6 | user_id | int | 是 | 否 | 用户ID | |
| 7 | create_time | datetime | 是 | 否 | 创建时间 | |
| 8 | update_time | timestamp | 是 | 否 | 更新时间 |
表4-7管理员表
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | group_id | mediumint | 是 | 是 | 用户组ID | |
| 2 | display | smallint | 是 | 否 | 显示顺序 | |
| 3 | name | varchar | 16 | 是 | 否 | 名称 |
| 4 | description | varchar | 255 | 否 | 否 | 描述 |
| 5 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 6 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 7 | source_id | int | 是 | 否 | 来源ID | |
| 8 | register | smallint | 否 | 否 | 注册位置 | |
| 9 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 10 | update_time | timestamp | 是 | 否 | 更新时间 |
用户在美食商城页面浏览美食信息,点击“收藏”按钮将喜欢的美食加入收藏夹,点击“加入购物车”按钮将美食加入购物车,并可在购物车页面调整数量或删除商品。美食商城界面如图5-1所示。

图5-1 美食商城界面
用户进入“我的订单”页面,选择订单进行删除、付款、取消或申请售后操作。系统根据用户操作更新订单状态并提示操作结果。我的订单界面如图5-2所示。

图5-2 我的订单界面
用户在商品上新页面浏览新上架的美食,点击“点赞”“收藏”或“评论”按钮对美食进行互动操作,系统实时更新点赞、收藏和评论数量。商品上新界面如图5-3所示。

图5-3 商品上新界面
用户浏览通知公告页面,查看网站公告、关于我们、联系方式及网站介绍等内容。通知公告界面如图5-4所示。

图5-4 通知公告界面
用户在资讯浏览页面浏览资讯内容,点击“点赞”“收藏”或“评论”按钮对资讯进行互动操作,系统实时更新点赞、收藏和评论数量。资讯浏览界面如图5-5所示。

图5-5 资讯浏览界面
商家登录系统后,进入“销售额统计”页面,查看销售数量和销售金额的统计数据,系统以图表形式展示销售额趋势。销售额统计界面如图5-6所示。

图5-6 销售额统计界面
商家在“美食管理”页面对美食信息进行增删改查操作,点击“查看评论”按钮可查看用户对美食的评论内容。美食管理界面如图5-7所示。

图5-7 美食管理界面
商家在“订单列表”页面对订单进行增删改查操作,管理订单状态,点击订单可查看订单详情。订单列表界面如图5-8所示。

图5-8 订单列表界面
商家在“订单配送”页面对配送信息进行增删改查操作,跟踪配送进度,点击配送单可查看配送详情。订单配送界面如图5-9所示。

图5-9 订单配送界面
商家在“订单售后”页面查看售后申请,点击“审核”按钮对售后申请进行处理,系统记录审核结果。订单售后界面如图5-10所示。

图5-10 订单售后界面
管理员登录系统后,进入“用户管理”页面,对用户信息进行增删改查操作,点击用户可查看用户详情及操作记录。用户管理界面如图5-11所示。

图5-11 用户管理界面
管理员在“商家管理”页面对商家信息进行增删改查操作,点击“审核”按钮对商家进行审核,系统记录审核状态。商家管理界面如图5-12所示。

图5-12 商家管理界面
管理员在“资讯管理”页面对资讯进行增删改查操作,点击“查看评论”按钮查看用户对资讯的评论内容。资讯管理界面如图5-13所示。

图5-13 资讯管理界面
管理员在“商城管理”页面对商城信息进行增删改查操作,点击“查看评论”“查看被回复”按钮查看相关内容,点击“审核”“配送”“签收”按钮进行相应操作。商城管理界面如图5-14所示。

图5-14 商城管理界面
管理员在“商品上新”页面对新上架商品进行增删改查操作,点击“查看评论”按钮查看用户对商品的评论内容。商品上新管理界面如图5-15所示。

图5-15 商品上新管理界面
测试的主要目的是确保系统的功能和性能满足预期的需求,同时识别和修复潜在的缺陷。通过系统测试,可以验证各个功能模块的正确性和稳定性,确保系统在不同使用场景下的表现符合设计要求。测试目的包括确认系统功能的完整性、验证数据处理的准确性、评估系统的性能和安全性。测试还可以提高用户满意度,保证用户在使用系统时获得流畅和可靠的体验。通过全面的测试,可以降低后期维护成本,减少系统上线后出现故障的风险,从而保障系统的长期稳定运行。
在本系统中,测试方法主要依赖于测试用例的设计与执行。测试用例是根据系统需求文档编写的,覆盖所有功能模块及其边界情况。每个测试用例包含输入数据、预期结果和实际结果的对比,以验证系统的功能是否按预期工作。
常见的测试用例包括功能测试用例、边界测试用例和异常测试用例[20]。功能测试用例针对系统的各项功能进行验证;边界测试用例则侧重于输入数据的边界条件,验证系统在极端情况下是否能够稳定运行;异常测试用例则用于验证系统在处理错误输入或异常情况时的反应。本文选择功能测试用例进行系统测试。
在测试执行过程中,记录每个用例的执行结果,并根据实际结果与预期结果的对比,判断系统是否存在缺陷。通过系统化的测试用例执行,可以有效提高测试的覆盖率和效率,为系统的最终上线提供保障。
美食商城功能测试用例表是用来验证用户在美食商城中浏览美食、收藏美食、加入购物车、购买美食以及增减购物车中美食数量的功能是否正常运行。美食商城功能测试用例表如表6-1所示。
表6-1美食商城功能测试用例表
| 测试项 | 测试用例 | 预期结果 | 结论 |
| 美食浏览功能测试 | 打开美食商城页面;浏览不同分类的美食信息 | 页面正常显示各类美食信息,无报错或加载失败 | 与预期结果一致 |
| 收藏功能测试 | 打开美食详情页面;点击“收藏”按钮;查看收藏夹 | 美食成功加入收藏夹,收藏夹中显示该美食信息 | 与预期结果一致 |
| 加入购物车功能测试 | 打开美食详情页面;点击“加入购物车”按钮;查看购物车 | 美食成功加入购物车,购物车中显示该美食信息及数量 | 与预期结果一致 |
| 购买功能测试 | 打开购物车页面;点击“结算”按钮;完成支付流程 | 购买成功,订单生成,购物车清空 | 与预期结果一致 |
| 增减数量功能测试 | 打开购物车页面;修改购物车中美食的数量;点击“更新”按钮 | 购物车中美食数量更新成功,总价自动计算并显示 | 与预期结果一致 |
| 购物车删除功能测试 | 打开购物车页面;选择购物车中的某件商品;点击“删除”按钮 | 购物车中该商品被成功删除,页面更新显示 | 与预期结果一致 |
我的订单功能测试用例表是用来验证用户在“我的订单”页面进行删除订单、付款、取消订单及申请售后操作的功能是否正常运行。我的订单功能测试用例表如表6-2所示。
表6-2我的订单功能测试用例表
| 测试项 | 测试用例 | 预期结果 | 结论 |
| 删除订单功能测试 | 登录用户账户;进入“我的订单”页面;选择一个订单;点击“删除订单”按钮 | 订单被成功删除,页面提示删除成功 | 与预期结果一致 |
| 付款功能测试 | 登录用户账户;进入“我的订单”页面;选择一个未付款订单;点击“付款”按钮;完成支付流程 | 订单状态更新为“已付款”,页面提示支付成功 | 与预期结果一致 |
| 取消订单功能测试 | 登录用户账户;进入“我的订单”页面;选择一个未付款订单;点击“取消订单”按钮 | 订单状态更新为“已取消”,页面提示取消成功 | 与预期结果一致 |
| 申请售后功能测试 | 登录用户账户;进入“我的订单”页面;选择一个已完成订单;点击“申请售后”按钮;填写售后申请信息并提交 | 售后申请成功提交,页面提示申请成功 | 与预期结果一致 |
商品上新功能测试用例表是用来验证用户在商品上新页面进行点赞、收藏及评论操作的功能是否正常运行。商品上新功能测试用例表如表6-3所示。
表6-3商品上新功能测试用例表
| 测试项 | 测试用例 | 预期结果 | 结论 |
| 点赞功能测试 | 登录用户账户;进入商品上新页面;选择一个商品;点击“点赞”按钮 | 商品点赞数增加1,页面提示点赞成功 | 与预期结果一致 |
| 收藏功能测试 | 登录用户账户;进入商品上新页面;选择一个商品;点击“收藏”按钮 | 商品成功加入收藏夹,收藏夹中显示该商品信息 | 与预期结果一致 |
| 评论功能测试 | 登录用户账户;进入商品上新页面;选择一个商品;点击“评论”按钮;输入评论内容并提交 | 商品评论成功提交,页面显示评论内容及评论者信息 | 与预期结果一致 |
通知公告功能测试用例表是用来验证用户在通知公告页面浏览网站公告、关于我们、联系方式及网站介绍等功能是否正常运行。通知公告功能测试用例表如表6-4所示。
表6-4通知公告功能测试用例表
| 测试项 | 测试用例 | 预期结果 | 结论 |
| 公告浏览功能测试 | 登录用户账户;进入通知公告页面;查看网站公告内容 | 网站公告内容正常显示,无报错或加载失败 | 与预期结果一致 |
| 关于我们功能测试 | 登录用户账户;进入通知公告页面;查看“关于我们”内容 | “关于我们”内容正常显示,无报错或加载失败 | 与预期结果一致 |
| 联系方式功能测试 | 登录用户账户;进入通知公告页面;查看“联系方式”内容 | “联系方式”内容正常显示,无报错或加载失败 | 与预期结果一致 |
| 网站介绍功能测试 | 登录用户账户;进入通知公告页面;查看“网站介绍”内容 | “网站介绍”内容正常显示,无报错或加载失败 | 与预期结果一致 |
资讯浏览功能测试用例表是用来验证用户在资讯浏览页面进行点赞、收藏及评论操作的功能是否正常运行。资讯浏览功能测试用例表如表6-5所示。
表6-5资讯浏览功能测试用例表
| 测试项 | 测试用例 | 预期结果 | 结论 |
| 资讯点赞功能测试 | 登录用户账户;进入资讯浏览页面;选择一条资讯;点击“点赞”按钮 | 资讯点赞数增加1,页面提示点赞成功 | 与预期结果一致 |
| 资讯收藏功能测试 | 登录用户账户;进入资讯浏览页面;选择一条资讯;点击“收藏”按钮 | 资讯成功加入收藏夹,收藏夹中显示该资讯信息 | 与预期结果一致 |
| 资讯评论功能测试 | 登录用户账户;进入资讯浏览页面;选择一条资讯;点击“评论”按钮;输入评论内容并提交 | 资讯评论成功提交,页面显示评论内容及评论者信息 | 与预期结果一致 |
商家销售额统计功能测试用例表是用来验证商家在销售额统计页面查看销售数量和销售金额的功能是否正常运行。商家销售额统计功能测试用例表如表6-6所示。
表6-6商家销售额统计功能测试用例表
| 测试项 | 测试用例 | 预期结果 | 结论 |
| 销售数量统计功能测试 | 登录商家账户;进入“销售额统计”页面;查看销售数量统计图表 | 销售数量统计图表正确显示,数据准确无误 | 与预期结果一致 |
| 销售金额统计功能测试 | 登录商家账户;进入“销售额统计”页面;查看销售金额统计图表 | 销售金额统计图表正确显示,数据准确无误 | 与预期结果一致 |
经过系统全面的功能测试、性能测试和可靠性测试,本系统在测试环境下运行良好,功能模块均按照设计要求实现,核心功能表现稳定,未发现严重功能缺陷或阻塞性问题。所有关键测试用例均通过,覆盖率达到预期目标,验证了系统的功能性、稳定性和兼容性。
研究开发的食客商丘在线美食商城系统,通过整合现代信息技术与餐饮行业需求,实现了用户、商家与管理员多角色的高效互动与管理。系统采用SpringBoot框架与Vue前端技术,构建了稳定、高效的运行架构,为用户提供美食浏览、收藏、购物车管理、订单操作等功能,满足了用户多样化的美食消费需求。同时,系统为商家提供了销售额统计、美食管理、订单处理等功能,助力商家优化运营策略,提升管理效率。管理员则可通过用户管理、商家管理、资讯管理等功能,保障系统的正常运行与内容质量。在开发过程中,团队注重用户体验与系统稳定性,通过多轮测试与优化,确保系统功能完善、操作便捷。该系统的成功开发,不仅为食客商丘地区的餐饮行业提供了数字化转型的解决方案,也为其他地区的餐饮行业信息化发展提供了可借鉴的经验。
系统的推广与应用前景广阔。随着互联网技术的不断发展与消费者需求的持续变化,餐饮行业的数字化转型已成为必然趋势。系统通过线上平台打破了传统餐饮模式的地域限制,拓展了商家的经营空间与市场范围。系统的个性化推荐功能能够精准满足用户的美食偏好,提升用户满意度与忠诚度。在此之后系统将进一步优化算法,提升推荐精度;拓展功能模块,如增加社交互动、美食评价等功能,增强用户粘性;加强与第三方平台的合作,实现资源共享与优势互补。此外,系统还将持续关注用户反馈与市场动态,及时更新与优化,以适应不断变化的市场需求,推动餐饮行业的持续发展与创新。
- 张晓莹,李靖,段艳慧,等.全国著名美食服务系统[J].北京测绘,2022,36(03):238-242.
- 张晴,史率,袁宝华.基于协同过滤算法的美食点评系统研究[J].现代计算机,2024,30(22):217-220+225.
- 王亚芳,丘永亮,原波,等.潮牛丸——潮汕美食文化VI系统设计[J].包装工程,2024,45(14):483.
- 李凯.基于项目特征与用户偏好的美食推荐系统的设计与实现[D].北京邮电大学,2022.
- Fitzpatrick T .Food service team at Holy Redeemer Health System tempts, boosts sales with sweet all-chocolate pop-up[J].Food Management,2020,
- Savings in the Health System due to the Direct Regulation of the Sale Prices of Biotechnological Medicines in Colombia[J].Revista Gerencia y Políticas de Salud,2016,15(31):
- Patents; Agency Reviews Patent Application Approval Request for "Web-Based System and Method for Selling a Replacement Supply Item Based on the Sales Channel of the Original Item"[J].Politics & Government Week,2013,
- 冯志林.Java EE程序设计与开发实践教程[M].机械工业出版社:202105.353.
- 尹应荆.JAVA编程语言在计算机软件开发中的应用[J].石河子科技,2023,(05):45-47.
- 刘江涛,王亮亮,吴庆茹,等.基于B/S模式的铁路勘测设计案例信息化管理系统设计与实现[J].铁路计算机应用,2021,30(03):32-35.
- 张丹丹,李弘.基于B/S架构的办公管理系统设计与开发[J].铁路通信信号工程技术,2024,21(09):44-48+106.
- 王志亮,纪松波.基于SpringBoot的Web前端与数据库的接口设计[J].工业控制计算机,2023,36(03):51-53.
- 熊永平.基于SpringBoot框架应用开发技术的分析与研究[J].电脑知识与技术,2021,15(36):76-77.
- 赵媛.基于Vue的Web系统前端性能优化分析[J].电脑编程技巧与维护,2024,(09):44-46.
- 秦冬.浅析Vue框架在前端开发中的应用[J].信息与电脑(理论版),2024,36(13):61-63.
- 李艳杰.MySQL数据库下存储过程的综合运用研究[J].现代信息科技,2023,7(11):80-82+88.
- 陈倩怡,何军.Vue+Springboot+MyBatis技术应用解析[J].电脑编程技巧与维护,2020,(01):14-15+28.
- 周晓玉,崔文超.基于Web技术的数据库应用系统设计[J].信息与电脑(理论版),2023,35(09):189-191.
- 马艳艳,吴晓光.计算机软件与数据库的设计策略分析[J].电子技术,2024,53(05):104-105.
- 李俊萌.计算机软件测试技术与开发应用策略分析[J].信息记录材料,2023,24(03):50-52.
在本项目的实施过程中,许多人给予了我无私的支持和帮助,令我深感感谢。
我要衷心感谢我的指导老师。不仅在项目的初期提供了宝贵的建议,还在整个过程中给予了我细致入微的指导。专业知识和严谨态度始终激励着我,让我在遇到困难时能够保持信心,继续前行。每一次的讨论都让我对项目有了更深刻的理解,帮助我克服了许多技术难题。
我也要感谢参与用户测试的同学们。你们的反馈和建议为我们系统的优化提供了重要的参考,帮助我们更好地理解用户需求。正是因为有了你们的参与,我们才能够不断改进,提升系统的用户体验。感谢所有支持我的家人和朋友。你们的理解与鼓励让我在项目的紧张时刻始终能够保持积极的心态,成为我前进的动力。每当我遇到挑战时,想到你们的支持,我就能够重新振作,继续努力。最后,我要感谢所有在我职业发展过程中给予帮助的人。每一次的交流与分享都让我受益匪浅,拓宽了我的视野,让我在这条道路上走得更加坚定。
项目的完成不仅是我个人努力的结果,更是许多人共同支持与协作的成果。在此,我再次向所有关心和支持我的人表达衷心的感谢。希望未来我们能够继续携手,共同创造更多的价值和成就。
点赞+收藏+关注 →私信领取本源代码、数据库
关注博主下篇更精彩
一键三连!!!
一键三连!!!
一键三连!!!
感谢一键三连!!!
9646

被折叠的 条评论
为什么被折叠?



