第一章 绪论
1.1 研究背景与意义
1.1.1 研究背景
随着餐饮行业数字化转型的加速,传统咖啡厅在点单、结算、库存管理等环节仍面临效率低、出错率高和人力成本高等问题。传统的人工点单方式易产生排队时间长、操作失误频繁等问题,影响了顾客体验和经营效率。为此,基于Web的智能点单系统逐渐得到应用,能够实现操作简便、实时数据更新和数据可视化,有效提升餐厅管理和顾客体验。
本项目旨在设计一个基于Spring Boot与Vue.js的咖啡厅顾客点单管理系统。系统将包括用户点餐、订单管理、支付集成和后台管理等功能,通过前后端分离架构实现高效的用户交互和数据处理。前端采用Vue 3与Element Plus构建,后端使用Spring Boot与MyBatis Plus,数据存储采用MySQL 8.0,缓存使用Redis。此外,集成了微信支付与支付宝支付接口,提供便捷的支付体验。该系统具备良好的可扩展性和维护性,能够满足中小型咖啡厅的运营需求,为行业的数字化转型提供有效解决方案。
1.1.2 研究意义
(1)实践意义:
提升顾客体验:扫码点餐、自助支付缩短等待时间,图文并茂的菜单提升点餐愉悦感。
优化运营流程:实现点单、支付、后厨同步的自动化流转,减少人为错误,提高整体运营效率。实现精细化管理:通过后台系统,实时监控商品销量、库存状态,为采购和营销决策提供数据支持。降低运营成本:减少对前台点餐人员的依赖,间接降低人力成本。
(2)理论意义:
深化对软件工程、数据库原理、Web开发等核心课程知识的理解与应用。
掌握前后端分离架构的设计理念与实现技术,提升系统设计与整合能力。
培养在复杂项目中分析问题、解决问题的能力,为未来从事软件开发工作打下坚实基础。
1.2 国内外研究现状
1.2.1 国内现状
随着数字化转型的推进,国内的咖啡厅和餐饮行业也开始引入智能化点单管理系统,提升顾客体验和餐厅运营效率。目前,国内不少咖啡厅已经采用了基于Web或移动端的点单系统。国内一些知名咖啡品牌,如星巴克和瑞幸,已经开发并上线了智能点单平台。相关研究多集中在基于移动互联网的点单系统、支付系统和数据分析等方面。例如,基于Spring Boot、Vue等技术栈的点单系统在实际应用中取得了较好的效果,研究者们也探索了如何通过数据分析和用户行为分析来优化点单过程。此外,随着人工智能和大数据技术的发展,部分国内学者开始研究如何通过智能推荐系统提升用户体验和销售效率。
乐猫和朱大凤通过对咖啡厅环境的生动描写,展示了咖啡厅作为一个放松和社交的场所的独特魅力。文中没有涉及具体的技术手段,而是通过环境描写和人物互动,突出了咖啡厅在社交生活中的角色1。何梓玄和高瞩提出了一个面向连锁品牌的智能移动咖啡屋系统设计,旨在解决传统咖啡店咖啡制作和运营智能化不足的问题。通过应用现代信息技术,系统提升了咖啡屋的制作效率与客户体验,为流动餐饮行业提供了优化方案2。孟超想等人分析了高校校园咖啡厅的商业设计,提出通过创新服务和互动设计,提升学生的互动交流及知识拓展,进而提升消费水平和经营效益。此研究为校园咖啡厅的设计和经营方式提供了创新思路3。
1.2.2 国外现状
在国外,尤其是欧美地区,智能餐饮管理系统的发展相对较早。许多咖啡厅、餐馆和零售商已经实现了数字化点单系统的应用,这些系统不仅提高了点单速度,还增强了顾客的互动体验。国外的研究主要集中在如何通过先进的支付接口、云计算、大数据和物联网技术提升餐饮管理效率。例如,利用AI技术进行个性化推荐和订单预测,增强顾客的个性化体验。像美国的Café X和英国的Costa Coffee等品牌已开发出高效的自动化点单系统,支持顾客通过触屏、手机或智能助手下单。此外,国外研究还包括多平台支付集成的研究,如二维码支付、电子钱包和区块链支付系统的探索。
Mitchell等人在对"家长咖啡馆"项目的研究中,采用问卷调查与多元线性回归分析方法,对参与者体验进行量化分析。研究通过同伴学习与自我反思机制,实现了家庭保护因素的强化功能,结果表明年轻家长对该模式认可度较高。该研究验证了咖啡馆式交流空间在促进家庭支持、增强互动沟通方面的有效性,为社交型服务系统设计提供了数据支持4。Tsivolas与Krikorian在研究维也纳亚美尼亚群体时,通过历史分析与文化研究方法,探讨咖啡馆在文化传承与社会交流中的作用。研究表明,咖啡馆作为重要的社会空间,承担了文化传播、群体凝聚及身份认同构建等功能,在现代城市中仍具有重要的文化价值与社会意义5。Fantozzi在对星巴克新型门店设计的研究中,通过案例分析方法,探讨了现代咖啡馆在空间布局与服务模式上的创新。研究指出,通过优化移动点单区域与堂食区域分离设计,实现了用户体验提升与运营效率优化。同时,精简菜单策略增强了产品灵活性,体现了咖啡馆在数字化与消费升级背景下的发展趋势6。
1.2.3 研究方法
本课题采用文献研究与系统设计相结合的方法进行。首先,通过查阅相关文献资料,分析当前餐饮行业点单系统的发展现状与技术特点,为系统设计提供理论依据。其次,结合实际需求,采用面向对象的分析方法对系统功能进行模块划分,并完成数据库结构设计。在系统实现过程中,基于Spring Boot与Vue技术进行前后端分离开发,利用MySQL完成数据存储。同时,通过功能测试对系统各模块进行验证,确保系统的稳定性与可行性。
1.2.4 创新之处
本课题的创新之处在于通过前后端分离的架构设计,结合Spring Boot与Vue.js技术,构建了一个高效且易维护的咖啡厅顾客点单管理系统。系统不仅实现了传统点单的数字化,还通过集成微信支付与支付宝,提升了支付流程的便捷性。此外,系统采用MySQL进行数据存储,并利用Redis缓存技术优化了高并发访问,确保系统的稳定性与响应速度。通过这种方式,本系统有效提升了顾客体验和餐厅管理效率,同时具备良好的可扩展性,能够满足不同规模咖啡厅的实际运营需求,为餐饮行业的数字化转型提供了有力支持。
第二章 相关技术介绍
2.1 Java语言
Java是一种高级编程语言,被广泛使用,具有跨平台性,可以在不同的操作系统上运行。Java通过JVM(Java虚拟机)来实现平台无关性,程序的字节码文件可以在任何安装了JVM的设备上运行,不需要重新编译。Java语言具有面向对象的特点,用类和对象来组织代码,支持封装、继承、多态等基本特性,可以提高程序的可维护性、重用性。Java内存管理采用自动垃圾回收机制,可以很好地控制内存的使用,防止出现内存泄漏以及内存溢出等情况7。Java语法简洁,接近自然语言,降低了学习难度,并且执行效率较高。
Java语言有丰富的标准库,有各种各样的数据结构、网络通信、输入输出、多线程等,可以支持开发者在各个领域的应用开发。Java有很多支持开发的工具、框架,例如Spring框架、Hibernate框架、Apache Struts等。Java也被广泛地应用于企业级开发,在大型系统、分布式系统、Web应用以及移动应用开发等领域。由于Java具有好的生态系统及强大的社区支持,所以它被许多企业选为首选开发语言8。Java相比许多现代编程语言来说稳定性、兼容性好,在技术更新迅速的环境下仍能保持长久的生命力。
2.2 Spring Boot框架
Spring Boot是建立在Spring框架之上的一个开源的Java开发框架,可以简化Java应用的开发和部署过程。通过提供预配置好的、开箱即用的功能,可以让开发者快速地创建出独立的生产级Spring应用。Spring Boot的核心特点之一就是"约定优于配置",即在不需要大量的配置的情况下,框架可以自动推断出合适的默认设置9。该特点很大程度上减少了开发中对于复杂配置文件的依赖,使开发者可以将精力放在业务逻辑的实现上,而不用过多的去考虑底层的细节。
Spring Boot利用内嵌的Servlet容器实现了不需要外部服务器部署的功能,使应用可以打包成独立的可执行JAR文件或者WAR文件进行部署,简化了传统的Web应用开发流程。Spring Boot还提供了丰富的开发工具,包括自动化配置、内置监控、生产环境下的健康检查和应用的日志记录等功能,这些功能都可以使开发者更快地调试、测试并部署应用。Spring Boot支持多种集成,可以和Spring Cloud、数据库、消息队列、缓存等各种技术无缝对接,进一步提高了开发过程中的灵活性以及扩展性10。
2.3 Vue框架
Vue.js是用以创建用户界面的开源JavaScript框架,主要负责视图层的开发。Vue的主要特点有,响应式数据绑定、组件化开发、灵活的模板语法,可以用来开发高效、易于维护的单页面应用(SPA)。Vue的响应式系统能够自动根据数据的变化更新视图,开发者不用自己操作DOM,大大提高了开发效率。Vue的组件化设计把复杂的界面拆解成许多个独立的、可以复用的组件,有利于代码的模块化、重用11。
Vue框架可以和其它库或者现有的项目进行集成,在不影响项目其它部分的情况下,可以对局部进行替换或者扩展。它还有许多开发工具和插件生态,Vue Router来处理应用的路由,Vuex用来做集中式状态管理,这些工具大大提高了大型项目的开发效率和维护性。Vue的设计理念是简洁、灵活,可以适应从小型应用到大型企业级应用的各种需求。利用Vue的虚拟DOM技术,可以提高应用的性能,有效减少不必要地DOM操作,提高界面的更新效率12。Vue的轻量级以及渐进式框架的特性,使它成为前端开发者最常用的一种前端框架。
2.4 MySQL数据库技术
MySQL是关系型数据库管理系统(RDBMS),被广泛地用在Web应用、数据存储、企业级应用以及大数据分析等各个方面。MySQL使用结构化查询语言(SQL)作为和数据库进行交互的标准语言,可以对数据进行存储、查询、更新、删除等操作。MySQL有很强的扩展性,可以满足从小型单机应用到大型分布式系统数据存储需求13。用支持数据的ACID特性来保证数据操作的可靠性、一致性,即原子性、一致性、隔离性、持久性。
MySQL有多种存储引擎,根据不同的应用场景选择不同的存储引擎以满足对事务支持、性能优化、数据完整性等各方面的需求。MySQL还具有很强的索引功能,可以提高数据的查询和检索速度,对大数据量的处理更有优势。随着数据量的增加,MySQL还能使用分区表、复制、分布式架构等方式进行水平或者垂直扩展,来提高数据处理能力以及系统的可用性14。MySQL具有跨平台性,可以运行在不同的操作系统上,可以和各种编程语言以及开发框架集成使用,在不同的应用场景中都能得到应用。
2.5 B/S框架
B/S(浏览器/服务器)架构是Web的基础客户端-服务器架构,它的基本思想是把大部分计算和数据处理任务交给服务器端,客户端则通过浏览器与服务器进行交互。B/S架构的实现不需要特定的操作系统或者客户端软件,只要用户的设备可以运行Web浏览器,就可以访问应用程序。B/S架构有明显的优势就是跨平台支持和部署15。用户不需要安装额外软件就可以在浏览器中使用应用。
B/S架构中客户端的任务比较单一,主要是呈现用户界面、与服务器交互,所有的复杂业务逻辑、数据存储、处理等工作都是服务器端完成的。服务器端一般会用Web服务器、应用服务器来处理客户端的请求,同时利用数据库系统对数据进行存储和管理16。B/S架构具有较好的灵活性,开发者可以较快速地开发和部署Web应用而不用担心各种不同操作系统、不同硬件平台间的兼容问题。B/S结构便于集中管理,所有修改可以在服务器端进行,不需要客户端的操作系统和硬件配置。因此B/S架构在现代Web应用以及云计算环境中得到了广泛的使用。
第三章 系统分析
3.1 可行性分析
3.1.1 技术可行性
所选择的技术栈有高效性、稳定性,Java语言使用Java虚拟机实现跨平台,保证兼容性。Spring Boot框架利用自动配置简化开发过程,Vue框架具有响应式特性和组件化设计从而提高开发效率。MySQL数据库具有快速存取和查询的特点,B/S架构使得客户端硬件需求降低并且提高系统的扩展性。整体技术栈的功能和性能是可行的。
3.1.2 操作可行性
选用的技术栈有成熟的技术工具和完善的文档支持,技术操作简便。Java、Spring Boot,Vue这些框架和MySQL数据库在系统开发、部署过程里面广泛应用,简化了系统的开发过程,前后端分离的设计提高了合作效率,B/S架构降低了系统部署的复杂度。整体操作过程可行。
3.1.3 经济可行性
使用开源的工具来降低软件的运行费用以及许可费。B/S架构减少硬件投资,也缩减了运维成本。开发周期短,项目可以快速上线提供服务,提高经济效益,保证成本和效益的平衡。
3.2 功能需求分析
UML(统一建模语言)用例图是需求分析阶段常用的工具,用图形的方式直观地表示出系统功能需求以及参与者。每个用例图中包含的用例就是系统可以执行的功能,以及与之交互的参与者。用例图帮助开发者和客户之间建立共同理解,确定系统应该提供哪些功能,这些功能又是如何被不同的用户所使用的。本文将对系统按照角色模块进行需求分析。
3.2.1 普通用户功能
(1)注册登录:用户可以通过填写基本信息完成账号注册,并使用注册的账号和密码安全登录系统,以便进行后续的点单及个性化操作。
(2)首页:系统首页为用户展示轮播图、热门咖啡商品、最新资讯及公告信息,方便用户快速了解平台内容和促销活动。
(3.)通知公告:用户可以查看系统发布的通知公告,及时获取咖啡厅的活动信息、优惠政策及重要提示。
(4)文章资讯:用户可以浏览咖啡相关的文章资讯内容,包括咖啡文化、饮品推荐及店铺动态,并支持分类查看和详情阅读。
(5)菜单信息:用户可以查看咖啡商品的详细信息,包括商品描述、图片、价格、销量、库存及分类等,并支持收藏、点赞以及查看下单须知等操作。
(6)商城管理:用户可以在商城模块中浏览商品信息,将商品加入购物车并进行统一结算,查看和管理个人订单信息,包括下单、备注填写及完成支付等操作。
(7)我的账户:用户可以查看和编辑个人账户信息,包括头像、昵称等基础资料,实现个性化管理。
(8)修改密码:用户可以通过验证原密码后修改登录密码,以提升账户安全性。
(9)个人中心:用户可以在个人中心统一查看个人信息、订单数量、收藏记录等数据,实现集中管理。
(10)收藏记录:用户可以查看已收藏的商品列表,并可随时取消收藏或进入商品详情页面。
(11)点赞记录:用户可以查看自己点赞过的商品记录,方便快速找到感兴趣的商品。
(12)评论管理:用户可以对商品进行评论,并查看或删除自己的评论记录,实现互动交流功能。
普通用户用例图如图3-1所示。
图3-1普通用户用例图
3.2.2 管理员功能
(1)登录:管理员通过专用账号登录后台管理系统,对整个平台进行统一管理和维护。
(2)后台数据分析:管理员可以查看系统的运营数据,包括订单数量、销售额及热门商品等统计信息,为决策提供数据支持。
(3)角色管理:管理员可以对系统用户角色进行管理,包括分配管理员和普通用户权限,实现权限控制。
(4)系统管理:管理员可以对系统基础内容进行维护,例如首页轮播图的新增、修改和删除操作。
(5)通知公告管理:管理员可以发布、编辑和删除通知公告内容,以便向用户传达重要信息。
(6)新闻管理:管理员可以对文章资讯进行管理,包括新增、修改、删除以及分类管理,丰富平台内容。
(7)商城管理:管理员可以在商城管理模块中对商品信息、商品分类及用户订单进行统一管理,包括商品的增删改查、分类维护以及订单查看与状态更新等操作。
管理员用例图如下3-2所示。
图3-2 管理员用例图
3.3 非功能需求分析
1.可用性需求
系统的可用性要求系统具有高可用性架构,即系统在用户高并发的时候仍然能够保持稳定运行。系统应具备快速恢复的功能,当发生故障的时候可以迅速地进行自我修复。为了保证用户体验,系统需要有很高的响应速度和很低的延迟,可以在很短的时间内完成用户的请求并给出结果。系统应具有负载均衡的功能,可以将请求分散到不同的服务器上,防止因为单个服务器出现问题而使整个系统瘫痪。
2.可靠性需求
系统可靠性指的是系统长时间运行时可以保持正常的工作状态,不会频繁发生故障或者停机。系统需要有完备的数据备份和恢复机制,可以保证硬件出现故障或者其他灾难性事件的时候,数据不会丢失,并且可以很快恢复到正常的工作状态。系统中的各种服务和组件都应该具备容错能力,在部分组件失效的时候能够自动切换备用服务。
3.安全性需求
会对用户的个人信息、交易记录等其它敏感信息实施保护。系统要使用加密技术对用户传输的数据进行保护,防止数据在传输时被偷盗或被篡改。系统应当实行访问控制,用户可以访问的只能是那些得到授权的对象,不能给没有被授权的人进入系统的机会。系统应该具有身份验证的功能来防止恶意用户冒用别人身份进行操作。为了防止外部攻击,系统要具有防火墙、入侵检测系统等安全防护措施,保证系统的安全。
第四章 系统设计
4.1 系统架构设计
本系统采用基于B/S模式的前后端分离架构设计,后端使用Java语言结合SpringBoot框架完成业务逻辑开发,前端采用Vue框架实现页面展示与交互功能,数据库选用MySQL进行系统数据的统一存储与管理。整个系统主要分为用户端和管理员端两个层次。用户端主要面向普通顾客,完成注册登录、菜单浏览、商品收藏、加入购物车、提交订单、在线支付以及订单查询等操作,为用户提供便捷高效的点单服务。管理员端主要负责系统后台的综合管理,包括商品信息维护、商品分类管理、订单处理、公告发布、资讯管理以及用户信息管理等内容,从而实现对咖啡厅日常运营流程的统一控制。该系统整体结构清晰、功能模块划分明确,不仅有利于系统的开发与后期维护,也能够提升用户操作的便捷性和管理工作的效率,适用于中小型咖啡厅点单管理场景中17。整个系统架构如图4-1所示。
图4-1 系统架构图
4.2 系统结构功能设计
本系统是一个咖啡厅顾客点单管理平台,主要面向普通用户和管理员两种角色。普通用户可以在系统中浏览菜单信息,将自己需要的商品加入购物车,并完成在线下单与支付操作,同时还可以查看公告资讯、收藏商品、点赞商品以及查询个人历史订单信息。管理员主要负责系统后台的整体维护与管理,包括商品信息管理、商品分类维护、订单列表处理、公告发布以及资讯内容更新等功能。对于订单业务,管理员能够对订单各个环节进行统一管理,包括查看订单详情、修改订单状态和处理用户订单信息。系统通过清晰的功能模块划分,实现了前台点单购物流程与后台综合管理流程的有效结合,不仅能够满足用户便捷点单的需求,也能够提升咖啡厅日常运营管理的效率。系统功能结构图如图4-2所示。

图4-2 系统功能结构图
4.3 系统流程设计
4.3.1 查看商品列表流程设计
该流程图展示了用户请求商品列表的完整路径,其中会先判断商品是否存在,如果有商品会展示列表,用户还可以继续查看商品详情,如果没有商品信息会给出无商品提示。本流程保证商品信息正确显示,体验连续。商品列表流程图如图4-3所示。
图4-3查看商品列表流程图。
4.3.2 加入购物车流程设计
流程的重点就是库存的判断,用户选择商品之后需要确认库存是否充足,库存足够时加入到购物车里并更新,库存不足时提示用户无法添加,保证购物流程的准确性以及库存管理的合理性。该图用从下到上的流程布局清楚地显示决策分支。购物车流程图如图4-4所示。
图4-4加入购物车流程图。
4.3.3 购买商品流程设计
包含订单确认、支付环节,用户在购物车里确认订单信息后选择支付方式,流程根据支付是否成功来判断订单是否生成,支持线上支付和货到付款两种支付方式,支付失败时可以重试,保证购买流程的完整性、灵活性。采用水平布局,保证决策节点清楚明了。购买商品流程图如图4-5所示。
图4-5购买商品流程图。
4.4 数据库设计
在数据库设计时,用E-R图来转换概念模型,从而得到具体的数据库结构。在此阶段要确定每一个数据表的字段类型、约束条件以及表与表之间的关系,给物理设计提供依据。然后会进一步分析优化数据存储方案来保证系统高效性、可扩展性18。
4.4.1 E-R图设计
E-R图即实体与关系图,是用图形化的手段对数据进行建模的一种方法,用图形化的手段来表达出实体、属性以及实体间的关系。利用图示化的方式来分析和设计数据库结构,确定数据之间的联系,方便以后数据库的开发和管理。下面给出系统的全局E-R图和各实体的属性图。
系统全局E-R图如图4-6所示。
图4-6系统E-R图
用户账户实体主要包括用户id、用户名、昵称、密码等。实体属性图如图4-7所示。
图4-7用户账户实体属性图
普通用户实体主要包括普通用户id、用户id、姓名、手机号码等。实体属性图如图4-8所示。
图4-8普通用户实体属性图
商品类型实体包含商品类型id、商品名称、商品描述、上级分类id等。实体属性图如图4-9所示。
图4-9商品类型实体属性图
商品信息实体有商品信息id、标题、商品分类、原价、卖价等。实体属性图如图4-10所示。
图4-10商品信息实体属性图
购物车实体主要包括购物车id、用户id、商品id、标题等。实体属性图如图4-11所示。
图4-11购物车实体属性图
订单实体主要包括订单id、订单号、买家id、商品id等。实体属性图如图4-12所示。
图4-12订单实体属性图
4.4.2 数据库表设计
数据库表设计就是按照业务需求,确定数据库表结构、字段类型和表间关系。用规范化的设计来保证数据的完整性、一致性、效率,避免冗余数据,为之后的数据查询、存储、维护提供清晰的框架19。以下为系统的数据库表设计。
用户账户表主要用来保存系统用户的账号信息。主要是用户id、用户名、昵称、密码、手机号码、邮箱等。表4-1如下所示。
表 4-1-access_token(登陆访问时长)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 2 | info | text | 65535 | 否 | 否 | 信息 |
| 3 | maxage | int | 是 | 否 | 最大寿命:默认2小时 | |
| 4 | token | varchar | 64 | 否 | 否 | 临时访问牌 |
| 5 | token_id | int | 是 | 是 | 临时访问牌ID | |
| 6 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 7 | user_id | int | 是 | 否 | 用户编号 |
表 4-2-article(文章)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | article_id | mediumint | 是 | 是 | 文章id | |
| 2 | content | longtext | 4294967295 | 否 | 否 | 正文 |
| 3 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 4 | description | text | 65535 | 否 | 否 | 文章描述 |
| 5 | hits | int | 是 | 否 | 点击数 | |
| 6 | img | varchar | 255 | 否 | 否 | 封面图 |
| 7 | praise_len | int | 是 | 否 | 点赞数 | |
| 8 | source | varchar | 255 | 否 | 否 | 来源 |
| 9 | tag | varchar | 255 | 否 | 否 | 标签 |
| 10 | title | varchar | 125 | 是 | 是 | 标题 |
| 11 | type | varchar | 64 | 是 | 否 | 文章分类 |
| 12 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 13 | url | varchar | 255 | 否 | 否 | 来源地址 |
表 4-3-article_type(文章分类)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 2 | description | varchar | 255 | 否 | 否 | 描述 |
| 3 | display | smallint | 是 | 否 | 显示顺序 | |
| 4 | father_id | smallint | 是 | 否 | 上级分类ID | |
| 5 | icon | text | 65535 | 否 | 否 | 分类图标 |
| 6 | name | varchar | 16 | 是 | 否 | 分类名称 |
| 7 | type_id | smallint | 是 | 是 | 分类ID | |
| 8 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 9 | url | varchar | 255 | 否 | 否 | 外链地址 |
表 4-4-auth(用户权限管理)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | add | tinyint | 是 | 否 | 是否可增加 | |
| 2 | auth_id | int | 是 | 是 | 授权ID | |
| 3 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 4 | del | tinyint | 是 | 否 | 是否可删除 | |
| 5 | field_add | text | 65535 | 否 | 否 | 添加字段 |
| 6 | field_get | text | 65535 | 否 | 否 | 查询字段 |
| 7 | field_set | text | 65535 | 否 | 否 | 修改字段 |
| 8 | get | tinyint | 是 | 否 | 是否可查看 | |
| 9 | mod_name | varchar | 64 | 否 | 否 | 模块名 |
| 10 | mode | varchar | 32 | 是 | 否 | 跳转方式 |
| 11 | option | text | 65535 | 否 | 否 | 配置 |
| 12 | page_title | varchar | 255 | 否 | 否 | 页面标题 |
| 13 | parent | varchar | 64 | 否 | 否 | 父级菜单 |
| 14 | parent_sort | int | 是 | 否 | 父级菜单排序 | |
| 15 | path | varchar | 255 | 否 | 否 | 路由路径 |
| 16 | position | varchar | 32 | 否 | 否 | 位置 |
| 17 | set | tinyint | 是 | 否 | 是否可修改 | |
| 18 | table_name | varchar | 64 | 否 | 否 | 表名 |
| 19 | table_nav | varchar | 500 | 否 | 否 | 跨表导航 |
| 20 | table_nav_name | varchar | 500 | 否 | 否 | 跨表导航名称 |
| 21 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 22 | user_group | varchar | 64 | 否 | 否 | 用户组 |
表 4-5-cart(购物车)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | cart_id | int | 是 | 是 | 购物车ID | |
| 2 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 3 | description | varchar | 255 | 否 | 否 | 描述 |
| 4 | goods_id | mediumint | 是 | 是 | 商品id | |
| 5 | img | varchar | 255 | 是 | 否 | 图片 |
| 6 | norms | varchar | 64 | 否 | 否 | 规格 |
| 7 | num | int | 是 | 否 | 数量 | |
| 8 | price | double | 是 | 否 | 单价 | |
| 9 | price_ago | double | 是 | 否 | 原价 | |
| 10 | price_count | double | 是 | 否 | 总价 | |
| 11 | state | int | 是 | 否 | 状态:使用中,已失效 | |
| 12 | title | varchar | 64 | 否 | 否 | 标题 |
| 13 | type | varchar | 64 | 是 | 否 | 商品分类 |
| 14 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 15 | user_id | int | 是 | 否 | 用户ID |
表 4-6-code_token(验证码)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | code | varchar | 255 | 否 | 否 | 验证码 |
| 2 | code_token_id | int | 是 | 是 | 验证码ID | |
| 3 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 4 | expire_time | timestamp | 是 | 否 | 失效时间 | |
| 5 | token | varchar | 255 | 否 | 否 | 令牌 |
| 6 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-7-collect(收藏)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | collect_id | int | 是 | 是 | 收藏ID | |
| 2 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 3 | img | varchar | 255 | 否 | 否 | 封面 |
| 4 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 5 | source_id | int | 是 | 否 | 来源ID | |
| 6 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 7 | title | varchar | 255 | 否 | 否 | 标题 |
| 8 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 9 | user_id | int | 是 | 是 | 收藏人ID |
表 4-8-comment(评论)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | avatar | varchar | 255 | 否 | 否 | 头像地址 |
| 2 | comment_id | int | 是 | 是 | 评论ID | |
| 3 | content | longtext | 4294967295 | 否 | 否 | 内容 |
| 4 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 5 | hidden | tinyint | 否 | 否 | 是否隐藏 | |
| 6 | nickname | varchar | 255 | 否 | 否 | 昵称 |
| 7 | reply_to_id | int | 是 | 否 | 回复评论ID | |
| 8 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 9 | source_id | int | 是 | 否 | 来源ID | |
| 10 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 11 | sticky | tinyint | 否 | 否 | 是否置顶 | |
| 12 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 13 | user_id | int | 是 | 是 | 评论人ID |
表 4-9-goods(商品信息)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | content | longtext | 4294967295 | 否 | 否 | 正文 |
| 2 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 3 | customize_field | text | 65535 | 否 | 否 | 自定义字段 |
| 4 | description | varchar | 255 | 否 | 否 | 描述 |
| 5 | goods_id | mediumint | 是 | 是 | 产品ID | |
| 6 | hits | int | 是 | 否 | 点击量 | |
| 7 | img | text | 65535 | 否 | 否 | 封面图:用于显示于产品列表页 |
| 8 | img_1 | text | 65535 | 否 | 否 | 主图1 |
| 9 | img_2 | text | 65535 | 否 | 否 | 主图2 |
| 10 | img_3 | text | 65535 | 否 | 否 | 主图3 |
| 11 | img_4 | text | 65535 | 否 | 否 | 主图4 |
| 12 | img_5 | text | 65535 | 否 | 否 | 主图5 |
| 13 | inventory | int | 是 | 否 | 商品库存 | |
| 14 | list_status | smallint | 否 | 否 | 上架状态(0:下架;1上架) | |
| 15 | price | double | 是 | 否 | 卖价 | |
| 16 | price_ago | double | 是 | 否 | 原价 | |
| 17 | sales | int | 是 | 否 | 销量 | |
| 18 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 19 | source_id | int | 是 | 否 | 来源ID | |
| 20 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 21 | title | varchar | 125 | 否 | 否 | 标题 |
| 22 | type | varchar | 64 | 是 | 否 | 商品分类 |
| 23 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 24 | user_id | int | 否 | 否 | 添加人 |
表 4-10-goods_type(商品类型)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 2 | desc | varchar | 255 | 否 | 否 | 描述 |
| 3 | father_id | smallint | 是 | 否 | 上级分类ID | |
| 4 | icon | varchar | 255 | 否 | 否 | 图标 |
| 5 | name | varchar | 255 | 否 | 否 | 商品名称 |
| 6 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 7 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 8 | type_id | int | 是 | 是 | 商品分类ID | |
| 9 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-11-hits(用户点击)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 2 | hits_id | int | 是 | 是 | 点赞ID | |
| 3 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 4 | source_id | int | 是 | 否 | 来源ID | |
| 5 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 6 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 7 | user_id | int | 是 | 否 | 点赞人 |
表 4-12-menu_information(菜单信息)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | cart_content | longtext | 4294967295 | 否 | 否 | 正文 |
| 2 | cart_description | varchar | 255 | 否 | 否 | 描述 |
| 3 | cart_img | text | 65535 | 否 | 否 | 封面图 |
| 4 | cart_img_1 | text | 65535 | 否 | 否 | 主图1 |
| 5 | cart_img_2 | text | 65535 | 否 | 否 | 主图2 |
| 6 | cart_img_3 | text | 65535 | 否 | 否 | 主图3 |
| 7 | cart_img_4 | text | 65535 | 否 | 否 | 主图4 |
| 8 | cart_img_5 | text | 65535 | 否 | 否 | 主图5 |
| 9 | cart_inventory | int | 是 | 否 | 商品库存 | |
| 10 | cart_price | double | 是 | 否 | 卖价 | |
| 11 | cart_price_ago | double | 是 | 否 | 原价 | |
| 12 | cart_title | varchar | 125 | 否 | 否 | 标题 |
| 13 | cart_type | varchar | 64 | 是 | 否 | 商品分类 |
| 14 | create_by | int | 是 | 否 | 创建用户ID | |
| 15 | create_time | datetime | 是 | 否 | 创建时间 | |
| 16 | list_status | smallint | 否 | 否 | 上架状态(0:下架;1上架) | |
| 17 | menu_information_id | int | 是 | 是 | 菜单信息ID | |
| 18 | ordering_instructions | text | 65535 | 否 | 否 | 下单须知 |
| 19 | sku | longtext | 4294967295 | 否 | 否 | 规格 |
| 20 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-13-message_inform(通知记录)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | content | varchar | 255 | 否 | 否 | 内容 |
| 2 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 3 | message_inform_id | int | 是 | 是 | 通知ID | |
| 4 | state | varchar | 255 | 否 | 否 | 状态 |
| 5 | title | varchar | 255 | 否 | 否 | 标题 |
| 6 | type | varchar | 64 | 否 | 否 | 分类 |
| 7 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 8 | user_id | int | 是 | 是 | 通知人ID |
表 4-14-notice(公告)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | content | longtext | 4294967295 | 否 | 否 | 正文 |
| 2 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 3 | notice_id | mediumint | 是 | 是 | 公告ID | |
| 4 | title | varchar | 125 | 是 | 否 | 标题 |
| 5 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-15-order(订单)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | contact_address | varchar | 255 | 否 | 否 | 收件地址 |
| 2 | contact_email | varchar | 125 | 否 | 否 | 联系人邮箱 |
| 3 | contact_name | varchar | 32 | 否 | 否 | 联系人姓名 |
| 4 | contact_phone | varchar | 11 | 否 | 否 | 联系人手机 |
| 5 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 6 | delivery_state | varchar | 16 | 否 | 否 | 发货状态:未配送,已配送 |
| 7 | desc | varchar | 64 | 否 | 否 | 取消订单原因 |
| 8 | description | varchar | 255 | 否 | 否 | 描述 |
| 9 | goods_id | mediumint | 是 | 是 | 商品ID | |
| 10 | img | varchar | 255 | 否 | 否 | 商品图片 |
| 11 | merchant_id | mediumint | 是 | 否 | 商家ID | |
| 12 | norms | varchar | 255 | 否 | 否 | 规格 |
| 13 | num | int | 是 | 否 | 数量 | |
| 14 | order_id | int | 是 | 是 | 订单ID | |
| 15 | order_number | varchar | 64 | 否 | 否 | 订单号 |
| 16 | postal_code | varchar | 9 | 否 | 否 | 邮政编码 |
| 17 | price | double | 是 | 否 | 价格 | |
| 18 | price_ago | double | 是 | 否 | 原价 | |
| 19 | price_count | double | 是 | 否 | 总价 | |
| 20 | remark | text | 65535 | 否 | 否 | 订单备注 |
| 21 | state | varchar | 16 | 是 | 否 | 订单状态:待付款,待发货,待签收,已签收,待退款,已退款,已拒绝,已完成 |
| 22 | title | varchar | 255 | 否 | 否 | 商品标题 |
| 23 | type | varchar | 64 | 是 | 否 | 商品分类 |
| 24 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 25 | user_id | int | 是 | 否 | 买家ID |
表 4-16-praise(点赞)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 2 | img | varchar | 255 | 否 | 否 | |
| 3 | praise_id | int | 是 | 是 | 点赞ID | |
| 4 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 5 | source_id | int | 是 | 否 | 来源ID | |
| 6 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 7 | status | tinyint | 是 | 否 | 点赞状态:1为点赞,0已取消 | |
| 8 | title | varchar | 255 | 否 | 否 | |
| 9 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 10 | user_id | int | 是 | 是 | 点赞人 |
表 4-17-regular_user(普通用户)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | contact_phone | varchar | 16 | 否 | 否 | 联系电话 |
| 2 | create_by | int | 是 | 否 | 创建用户ID | |
| 3 | create_time | datetime | 是 | 否 | 创建时间 | |
| 4 | examine_state | varchar | 16 | 是 | 否 | 审核状态 |
| 5 | regular_user_id | int | 是 | 是 | 普通用户ID | |
| 6 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 7 | user_gender | varchar | 64 | 否 | 否 | 用户性别 |
| 8 | user_id | int | 是 | 否 | 用户ID | |
| 9 | user_name | varchar | 64 | 否 | 否 | 用户姓名 |
表 4-18-slides(轮播图)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | content | varchar | 255 | 否 | 否 | 内容 |
| 2 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 3 | hits | int | 是 | 否 | 点击量 | |
| 4 | img | varchar | 255 | 否 | 否 | 轮播图 |
| 5 | slides_id | int | 是 | 是 | 轮播图ID | |
| 6 | title | varchar | 64 | 否 | 否 | 标题 |
| 7 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 8 | url | varchar | 255 | 否 | 否 | 链接 |
表 4-19-upload(文件上传)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | dir | varchar | 255 | 否 | 否 | 文件夹 |
| 2 | display | varchar | 255 | 否 | 否 | 显示顺序 |
| 3 | father_id | int | 否 | 否 | 父级ID | |
| 4 | file | varchar | 255 | 否 | 否 | 文件路径 |
| 5 | name | varchar | 64 | 否 | 否 | 文件名 |
| 6 | path | varchar | 255 | 否 | 否 | 访问路径 |
| 7 | type | varchar | 32 | 否 | 否 | 文件类型 |
| 8 | upload_id | int | 是 | 是 | 上传ID |
表 4-20-user(用户账户)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|----|-------------|-----------|-----|------|------|------------|------|-------|-------|
| 1 | avatar | varchar | 255 | 否 | 否 | 头像地址 |
| 2 | create_time | timestamp | | 是 | 否 | 创建时间 |
| 3 | email | varchar | 64 | 否 | 否 | 邮箱 |
| 4 | email_state | smallint | | 是 | 否 | 邮箱认证:(0未认证 | 1审核中 | 2已认证) |
| 5 | login_time | timestamp | | 否 | 否 | 上次登录时间 |
| 6 | nickname | varchar | 16 | 否 | 否 | 昵称 |
| 7 | open_id | varchar | 255 | 否 | 否 | 针对获取用户信息字段 |
| 8 | password | varchar | 64 | 是 | 否 | 密码 |
| 9 | phone | varchar | 11 | 否 | 否 | 手机号码 |
| 10 | phone_state | smallint | | 是 | 否 | 手机认证:(0未认证 | 1审核中 | 2已认证) |
| 11 | state | smallint | | 是 | 否 | 账户状态:(1可用 | 2异常 | 3已冻结 | 4已注销) |
| 12 | user_group | varchar | 32 | 否 | 否 | 所在用户组 |
| 13 | user_id | int | | 是 | 是 | 用户ID |
| 14 | username | varchar | 16 | 是 | 否 | 用户名 |
表 4-21-user_group(用户组)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 2 | description | varchar | 255 | 否 | 否 | 描述 |
| 3 | display | smallint | 是 | 否 | 显示顺序 | |
| 4 | group_id | mediumint | 是 | 是 | 用户组ID | |
| 5 | name | varchar | 16 | 是 | 否 | 名称 |
| 6 | register | smallint | 否 | 否 | 注册位置 | |
| 7 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 8 | source_id | int | 是 | 否 | 来源ID | |
| 9 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 10 | update_time | timestamp | 是 | 否 | 更新时间 |
第五章 系统实现
5.1 普通用户功能
5.1.1 注册登录
用户可以通过填写基本信息完成账号注册,并使用注册的账号和密码安全登录系统,以便进行后续的点单及个性化操作。界面图所示。
图5-1 注册登录界面
5.1.2 首页
系统首页为用户展示轮播图、热门咖啡商品、最新资讯及公告信息,方便用户快速了解平台内容和促销活动。界面图所示。
图5-2 首页界面
5.1.3 文章资讯
用户可以浏览咖啡相关的文章资讯内容,包括咖啡文化、饮品推荐及店铺动态,并支持分类查看和详情阅读。界面图所示。
图5-3文章资讯界面
5.1.4 菜单信息
用户可以查看咖啡商品的详细信息,包括商品描述、图片、价格、销量、库存及分类等,并支持收藏、点赞以及查看下单须知等操作。界面图所示。
图5-4 菜单信息界面
5.1.5 商城管理
用户可以在商城模块中浏览商品信息,将商品加入购物车并进行统一结算,查看和管理个人订单信息,包括下单、备注填写及完成支付等操作。界面图所示。
图5-5 商城管理界面
5.1.6 个人中心
个人中心用户可以在个人中心统一查看个人信息、订单数量、收藏记录等数据,实现集中管理。界面图所示。
图5-6 个人中心界面
5.2 管理员功能
5.2.1 后台数据分析
管理员可以查看系统的运营数据,包括订单数量、销售额及热门商品等统计信息,为决策提供数据支持。界面图所示。
图5-7 后台数据分析界面
5.2.2 角色管理
管理员可以对系统用户角色进行管理,包括分配管理员和普通用户权限,实现权限控制。界面图所示。
图5-8 角色管理界面
5.2.3 系统管理
管理员可以对系统基础内容进行维护,例如首页轮播图的新增、修改和删除操作。界面图所示。
图5-9 系统管理界面
5.2.4 通知公告管理
管理员可以发布、编辑和删除通知公告内容,以便向用户传达重要信息。界面图所示。
图5-10通知公告管理界面
5.2.5 新闻管理
管理员可以对文章资讯进行管理,包括新增、修改、删除以及分类管理,丰富平台内容。界面图所示。
图5-11 新闻管理界面
5.2.6 商城管理
管理员可以在商城管理模块中对商品信息、商品分类及用户订单进行统一管理,包括商品的增删改查、分类维护以及订单查看与状态更新等操作。界面图所示。
图5-12 商城管理界面
第六章 系统测试
6.1 测试目的
测试的主要目的就是通过系统测试和验证,使软件或者系统满足设计需求和功能要求,可以稳定、安全地运行。测试的主要目的就是发现并修复潜在的缺陷或者问题,提高系统的质量与性能,减少实际使用中出现的故障率。用单元测试、集成测试、功能测试、性能测试等各种测试手段,对软件在不同环境下兼容性、可用性进行测试。测试还可以用来验证系统的安全性,防止出现数据泄露或者系统崩溃的问题。用全方位的测试提高用户使用的顺畅度,提高客户满意度,降低开发完成后维护成本。因此,测试过程不但是软件开发的重要环节,也是保证软件产品质量、满足用户需求的重要步骤。
6.2 测试方法
测试方法是保证软件或者系统质量的重要手段,一般根据测试的目标和需求不同选择不同的测试策略。常见的测试方法有黑盒测试、白盒测试、灰盒测试、回归测试、性能测试。
黑盒测试主要考察软件功能是否正常,而不是其内部结构。测试人员用输入数据去验证软件是否符合预期的需求,可以用于功能测试、接口测试。白盒测试主要是对系统内部结构进行验证,测试人员根据对代码的了解,对系统的逻辑、控制流、数据流等进行详细的测试,代码的每一个路径、每一个语句都被覆盖,从而发现潜在的逻辑错误或者性能瓶颈。灰盒测试把黑盒和白盒测试的优点结合起来,在部分了解系统内部结构的基础上,既重视系统功能,又重视系统安全性和集成性20。
回归测试是指软件修改或者更新之后,重新测试已经完成的功能,新版本没有引入新的缺陷或者问题。性能测试主要是对系统在不同的负载、压力下进行测试,查看响应时间、并发处理能力等主要性能指标。
采用上述测试方法可以有效地对软件的功能、性能、稳定性进行测试,最终交付给用户一个满足其需求、质量好的软件。
6.3 测试内容
检验商品列表功能的稳定性以及数据的准确性,主要测试列表加载速度、商品信息显示完整性、数据筛选排序响应逻辑。商品列表查看测试见表6-1。
表6-1查看商品列表测试用例表
| 测试项 | 测试目的 | 测试步骤 | 预期结果 | 实际结果 |
|---|---|---|---|---|
| 列表数据加载 | 检验后端数据返回及前端渲染 | 访问商品列表页面 | 页面迅速加载并完整展示预设商品信息 | 一致 |
| 分类筛选 | 验证按类别过滤商品的功能 | 选择特定商品分类进行浏览 | 列表仅显示对应分类下的商品,且信息正确 | 一致 |
| 价格排序 | 检查排序算法的准确性 | 对商品列表按价格从低到高排序 | 商品顺序严格按照价格升序排列 | 符合预期 |
对加入购物车功能进行验证,主要是对库存校验机制的正确性、商品信息的同步性、操作后购物车状态的即时更新进行验证。加入购物车测试见表6-2。
表6-2加入购物车测试用例表
| 测试内容 | 测试步骤 | 预期结果 | 实际结果 |
|---|---|---|---|
| 库存充足时添加 | 选取有库存的商品执行添加操作 | 系统提示添加成功,购物车中商品数量与总价相应增加 | 符合预期 |
| 库存不足时添加 | 选取零库存或数量不足的商品执行添加操作 | 系统提示库存不足并拒绝添加,购物车内容保持不变 | 测试成功 |
| 商品信息准确性 | 将商品加入购物车后核对信息 | 购物车中显示的商品规格、单价与商品详情页完全一致 | 一致 |
从购物车创建、订单生成整条链路入手,对订单信息聚合是否正确、付款状态转换是否正确、付款失败处理是否合理进行测试,检验端到端的流程。购买商品测试如表6-3所示。
表6-3购买商品测试用例表
| 模块名称 | 测试内容 | 操作 | 预期结果 | 实际结果 | 结论 |
|---|---|---|---|---|---|
| 订单确认 | 生成订单信息 | 从购物车提交生成订单 | 订单页面准确汇总商品、金额、收货地址等信息 | 符合预期 | 通过 |
| 支付跳转 | 支付方式选择与跳转 | 选择线上支付并提交 | 系统正确跳转至支付网关界面 | 符合预期 | 通过 |
| 支付失败处理 | 模拟支付失败场景 | 在支付网关中断支付流程 | 系统返回订单页面并显示支付失败提示,允许重新支付 | 测试成功 | 通过 |
为了保证用户可以查看交易历史,对查看我的订单功能进行测试,验证订单列表的加载、不同状态订单分类展示以及订单详情显示。查看我的订单测试结果如表6-4所示。
表6-4查看我的订单测试用例表
| 序号 | 测试功能 | 测试步骤 | 预期结果 | 实际结果 |
|---|---|---|---|---|
| 1 | 订单列表加载 | 用户进入我的订单页面 | 系统成功加载该用户所有历史订单的简明列表 | 符合预期 |
| 2 | 状态分类展示 | 切换查看不同状态的订单(如待付款、待发货等) | 列表准确筛选并显示对应状态的订单 | 一致 |
| 3 | 订单详情查看 | 点击列表中的任一订单 | 页面跳转并展示该订单的完整详细信息 | 测试成功 |
为了检验用户发布商品信息流程的可靠性,对商城管理功能进行测试,主要针对商品信息表单提交、数据存储、发布后状态更新这三个方面展开测试。商城管理测试如表6-5所示。
表6-5商城管理测试用例表
| 测试项 | 测试目的 | 测试步骤 | 预期结果 | 实际结果 |
|---|---|---|---|---|
| 商品信息发布 | 验证表单提交与数据入库 | 填写完整的商品信息并提交发布 | 系统提示发布成功,后台数据库生成相应商品记录 | 一致 |
| 必填项校验 | 检查前端表单验证规则 | 在发布时遗漏必填信息并提交 | 系统阻止提交并高亮提示未填写的必填项 | 符合预期 |
| 发布后状态 | 确认发布后商品的初始状态 | 发布成功后查看已发布商品列表 | 新发布的商品以"待审核"或"已上架"的预设状态显示 | 测试成功 |
测试结论
对系统进行全面的功能、性能、安全等各方面的测试,以保证软件在各种环境下都能达到预期的效果。发现问题后已经进行相应的修复或者提出改进建议。经过测试,软件基本达到设计要求,性能稳定,没有出现重大缺陷,证明了系统的功能性、稳定性、兼容性。