springboot跨境电商管理系统97102-计算机课程设计、毕业设计
第一章 绪论
1.1 研究背景与意义
1.1.1 研究背景
近年来,国际贸易环境持续变化,跨境电子商务逐渐成为连接全球消费者与海外商家的重要渠道。越来越多的企业通过线上平台将商品销往海外市场,同时也有大量消费者倾向于购买境外优质产品[1]。在这一背景下,传统电商管理模式难以满足复杂物流及跨国支付等实际需求。跨境电商涉及的业务环节较多,包括商品展示、订单处理、促销活动、普通用户管理以及售后服务等,若缺乏统一高效的管理工具,容易导致运营效率低下、信息不同步、普通用户体验不佳等问题。因此,构建一个结构清晰、功能完整、易于维护的管理系统,有助于规范业务流程、提升服务质量和降低运营成本。当前主流的Java开发框架如SpringBoot凭借其快速开发、内嵌服务器、自动配置等优势,为构建此类系统提供了可靠的技术支撑,也为解决跨境电商业务中的实际管理难题提供了可行路径。
1.1.2 研究意义
跨境电商在推动国际贸易便利化和促进消费多元化方面发挥着重要作用。随着消费者对海外商品需求的增长,相关企业在运营过程中面临商品管理复杂、订单处理繁琐、多币种结算困难、物流信息不透明以及普通用户服务标准不一等挑战。一个结构合理、功能完善的管理系统能够有效整合商品、订单、普通用户、促销、售后等核心业务模块,提升整体运营效率与服务一致性。基于成熟技术框架构建的管理平台,不仅有助于降低系统开发与维护成本,还能为商家提供稳定可靠的操作环境,减少人为失误,加快业务响应速度[2]。同时,规范化的后台管理机制支持权限分级与操作留痕,增强数据安全性与管理可控性。对于中小型跨境企业而言,此类系统在优化资源配置、改善普通用户体验、拓展国际市场等方面具有实际应用价值,也为后续功能扩展与业务迭代奠定基础。
1.2 国内外研究现状
1.2.1 国内现状
在国内,基于SpringBoot构建电商类管理系统的实践已较为广泛,部分研究与项目聚焦于跨境电商场景下的业务整合与技术实现[3]。如“跨境通”电商平台后台系统采用SpringBoot结合MyBatis架构,实现了多语言商品管理与国际订单处理功能,支持对接海外物流接口,在实际运营中提升了订单履约效率。又如“海购管家”系统利用SpringBoot与Redis缓存机制优化了高并发下的商品浏览与购物车操作,其权限模块基于RBAC模型设计,满足多角色协同管理需求。此外,“全球优选商城”在SpringBoot基础上集成JWT认证与多币种结算逻辑,完成了从普通用户下单到跨境支付、售后申请的闭环流程,并通过模块化设计增强了系统可维护性。这些实践表明,SpringBoot凭借其开发效率高、生态成熟、部署便捷等优势,已成为国内构建跨境电商管理系统的重要技术选择,相关成果为同类系统的功能设计与技术选型提供了参考路径[4]。
1.2.2 国外现状
在国外,跨境电商平台的技术架构多以微服务和云原生为导向,SpringBoot因其轻量级、模块化和与Spring生态的高度兼容性,被广泛应用于电商系统开发中[5]。Shopify虽以Ruby on Rails起家,但其部分第三方插件及内部管理工具已逐步引入SpringBoot构建的微服务模块,用于处理国际订单同步与库存协调。Magento作为开源电商平台,在企业定制化场景中常与SpringBoot后端服务集成,实现如多币种定价、跨境税务计算等复杂业务逻辑。此外,WooCommerce在扩展高阶功能时,也有开发者采用SpringBoot搭建独立的管理后台,用于集中管控多国商品信息与促销策略。这些实践体现出SpringBoot在国外跨境电商技术栈中的灵活适配能力,尤其在需要快速迭代、对接第三方国际服务(如支付网关、物流追踪)的场景下展现出良好稳定性与开发效率。国外研究更侧重于系统解耦、安全合规及全球化部署,为跨境电商管理系统的架构设计提供了多样化思路[6]。
第二章 相关技术介绍
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 功能需求分析
3.2.1 普通用户功能
普通用户则通过前端界面访问首页获取推荐内容,查阅通知公告与新闻资讯,浏览商品信息;在商城管理中可操作个人购物车、查看和管理订单、维护多个国际收货地址、领取与使用优惠券;参与平台发布的促销活动;在我的账户中修改基本信息;个人中心整合了个人首页、订单物流追踪、收藏与点赞记录、以及对已发布评论的管理,形成完整的用户交互闭环。整个系统依托SpringBoot构建,兼顾功能完整性与跨境业务特性,满足平台运营与消费者使用需求。普通用户用例图如图3-1所示。
图3-1普通用户用例图
3.2.2 管理员功能
管理员通过后台首页可全面掌握平台运行状态,并对系统用户进行增删改查及权限分配;促销活动管理模块支持创建与维护各类营销策略;系统管理涵盖轮播图配置,用于控制前端展示内容;通知公告管理实现信息统一发布;资源管理包括新闻资讯及其分类的维护,便于内容组织;商城管理是核心业务模块,涵盖商品信息录入与维护、商品分类管理、订单全生命周期跟踪(含订单列表、配送状态更新、售后处理)、优惠券规则设定等;权限管理采用角色分级机制,确保操作安全与职责分离。管理员用例图如下3-2所示。
图3-2 管理员用例图
3.3 非功能需求分析
1.可用性需求
系统的可用性要求系统具有高可用性架构,即系统在普通用户高并发的时候仍然能够保持稳定运行。系统应具备快速恢复的功能,当发生故障的时候可以迅速地进行自我修复。为了保证普通用户体验,系统需要有很高的响应速度和很低的延迟,可以在很短的时间内完成普通用户的请求并给出结果。系统应具有负载均衡的功能,可以将请求分散到不同的服务器上,防止因为单个服务器出现问题而使整个系统瘫痪。
2.可靠性需求
系统可靠性指的是系统长时间运行时可以保持正常的工作状态,不会频繁发生故障或者停机。系统需要有完备的数据备份和恢复机制,可以保证硬件出现故障或者其他灾难性事件的时候,数据不会丢失,并且可以很快恢复到正常的工作状态。系统中的各种服务和组件都应该具备容错能力,在部分组件失效的时候能够自动切换备用服务。
3.安全性需求
系统会对普通用户的个人信息、账户信息等其它敏感信息实施保护。系统要使用加密技术对普通用户传输的数据进行保护,防止数据在传输时被偷盗或被篡改。系统应当实行访问控制,普通用户可以访问的只能是那些得到授权的对象,不能给没有被授权的人进入系统的机会。系统应该具有身份验证的功能来防止恶意普通用户冒用别人身份进行操作。为了防止外部攻击,系统要具有防火墙、入侵检测系统等安全防护措施,保证系统的安全。
第四章 系统设计
4.1 系统架构设计
该系统采用经典的单体架构设计,使用Java语言和SpringBoot框架,前端使用Vue框架,数据库使用MySQL实现本地化数据存储。整个系统分为普通用户层和管理层这两部分。本系统采用的是B/S开发模式,可以提高系统的开发维护效率以及普通用户使用的便利性,适合用在小规模的基础应用场合中[17]。整个系统架构如图4-1所示。
图4-1 系统架构图
4.2 系统结构功能设计
系统主要面向普通用户和管理员这两种角色。管理员可通过后台首页监控平台运行状态,管理用户账号与角色权限;配置促销活动、轮播图、通知公告及新闻资讯等内容;在商城管理模块中维护商品信息、分类体系,处理订单全流程(包括配送与售后),并管理优惠券发放与使用规则;权限管理模块保障系统操作的安全性与规范性。普通用户可浏览首页、公告与资讯,查看商品详情;在个人商城空间中管理购物车、订单、收货地址和优惠券;参与促销活动;通过我的账户更新个人信息;个人中心集中展示订单物流、收藏、点赞及评论记录,形成完整的跨境购物体验。系统基于SpringBoot构建,结构清晰,功能覆盖跨境电商核心业务场景。系统功能结构图如图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.3.4 订单配送管理流程设计
突出订单支付状况和配送追踪,未支付订单进入等待支付循环,支付之后安排配送,包括打包、物流发出和签收判断,使用循环结构保证未签收订单持续跟踪派送,最终完成订单。此流程保证配送的连续性以及普通用户满意度。订单配送管理流程图如下图4-6所示。
图4-6订单配送管理流程图。
4.4 数据库设计
在数据库设计时,用E-R图来转换概念模型,从而得到具体的数据库结构。在此阶段要确定每一个数据表的字段类型、约束条件以及表与表之间的关系,给物理设计提供依据。然后会进一步分析优化数据存储方案来保证系统高效性、可扩展性[18]。
4.4.1 E-R图设计
E-R图即实体与关系图,是用图形化的手段对数据进行建模的一种方法,用图形化的手段来表达出实体、属性以及实体间的关系。利用图示化的方式来分析和设计数据库结构,确定数据之间的联系,方便以后数据库的开发和管理。下面给出系统的全局E-R图和单个实体ER图。系统全局E-R图如图4-7所示。
图4-7系统E-R图
普通用户账户实体主要包括普通用户id、普通用户名、昵称、密码等。实体属性图如图4-8所示。
图4-8普通用户账户实体属性图
普通用户实体主要包括普通用户id、普通用户id、姓名、手机号码等。实体属性图如图4-9所示。
图4-9普通用户实体属性图
商品类型实体包含商品类型id、商品名称、商品描述、上级分类id等。实体属性图如图4-10所示。
图4-10商品类型实体属性图
商品信息实体有商品信息id、标题、商品分类、原价、卖价等。实体属性图如图4-11所示。
图4-11商品信息实体属性图
购物车实体主要包括购物车id、普通用户id、商品id、标题等。实体属性图如图4-12所示。
图4-12购物车实体属性图
订单实体主要包括订单id、订单号、买家id、商品id等。实体属性图如图4-13所示。
图4-13订单实体属性图
物流配送实体有物流配送id、订单号、配送订单、商品名称等。实体属性图如下图4-14所示。
图4-14物流配送实体属性图
订单售后实体有订单售后id、订单id、订单号、买家id等。实体属性图如下图4-15所示。
图4-15订单售后实体属性图
4.4.2 数据库表设计
数据库表设计就是按照业务需求,确定数据库表结构、字段类型和表间关系。用规范化的设计来保证数据的完整性、一致性、效率,避免冗余数据,为之后的数据查询、存储、维护提供清晰的框架[19]。以下为系统的数据库表设计。
表 4-1-access_token(登陆访问时长)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | token_id | int | 是 | 是 | 临时访问牌ID | |
| 2 | token | varchar | 64 | 否 | 否 | 临时访问牌 |
| 3 | info | text | 65535 | 否 | 否 | 信息 |
| 4 | maxage | int | 是 | 否 | 最大寿命:默认2小时 | |
| 5 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 6 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 7 | user_id | int | 是 | 否 | 用户编号 |
表 4-2-address(收货地址)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | address | varchar | 255 | 是 | 否 | 地址 |
| 2 | address_id | int | 是 | 是 | 收货地址 | |
| 3 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 4 | default | tinyint | 是 | 否 | 默认判断 | |
| 5 | name | varchar | 32 | 否 | 否 | 姓名 |
| 6 | phone | varchar | 13 | 否 | 否 | 手机 |
| 7 | postcode | varchar | 8 | 否 | 否 | 邮编 |
| 8 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 9 | user_id | mediumint | 是 | 否 | 用户ID |
表 4-3-article(文章)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | article_id | mediumint | 是 | 是 | 文章id | |
| 2 | title | varchar | 125 | 是 | 是 | 标题 |
| 3 | type | varchar | 64 | 是 | 否 | 文章分类 |
| 4 | hits | int | 是 | 否 | 点击数 | |
| 5 | praise_len | int | 是 | 否 | 点赞数 | |
| 6 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 7 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 8 | source | varchar | 255 | 否 | 否 | 来源 |
| 9 | url | varchar | 255 | 否 | 否 | 来源地址 |
| 10 | tag | varchar | 255 | 否 | 否 | 标签 |
| 11 | content | longtext | 4294967295 | 否 | 否 | 正文 |
| 12 | img | varchar | 255 | 否 | 否 | 封面图 |
| 13 | description | text | 65535 | 否 | 否 | 文章描述 |
表 4-4-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-5-auth(用户权限管理)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | auth_id | int | 是 | 是 | 授权ID | |
| 2 | user_group | varchar | 64 | 否 | 否 | 用户组 |
| 3 | mod_name | varchar | 64 | 否 | 否 | 模块名 |
| 4 | table_name | varchar | 64 | 否 | 否 | 表名 |
| 5 | page_title | varchar | 255 | 否 | 否 | 页面标题 |
| 6 | path | varchar | 255 | 否 | 否 | 路由路径 |
| 7 | parent | varchar | 64 | 否 | 否 | 父级菜单 |
| 8 | parent_sort | int | 是 | 否 | 父级菜单排序 | |
| 9 | position | varchar | 32 | 否 | 否 | 位置 |
| 10 | mode | varchar | 32 | 是 | 否 | 跳转方式 |
| 11 | add | tinyint | 是 | 否 | 是否可增加 | |
| 12 | del | tinyint | 是 | 否 | 是否可删除 | |
| 13 | set | tinyint | 是 | 否 | 是否可修改 | |
| 14 | get | tinyint | 是 | 否 | 是否可查看 | |
| 15 | field_add | text | 65535 | 否 | 否 | 添加字段 |
| 16 | field_set | text | 65535 | 否 | 否 | 修改字段 |
| 17 | field_get | text | 65535 | 否 | 否 | 查询字段 |
| 18 | table_nav_name | varchar | 500 | 否 | 否 | 跨表导航名称 |
| 19 | table_nav | varchar | 500 | 否 | 否 | 跨表导航 |
| 20 | option | text | 65535 | 否 | 否 | 配置 |
| 21 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 22 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-6-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-7-code_token(验证码)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | code_token_id | int | 是 | 是 | 验证码ID | |
| 2 | token | varchar | 255 | 否 | 否 | 令牌 |
| 3 | code | varchar | 255 | 否 | 否 | 验证码 |
| 4 | expire_time | timestamp | 是 | 否 | 失效时间 | |
| 5 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 6 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-8-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-9-comment(评论)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | comment_id | int | 是 | 是 | 评论ID | |
| 2 | user_id | int | 是 | 是 | 评论人ID | |
| 3 | reply_to_id | int | 是 | 否 | 回复评论ID | |
| 4 | content | longtext | 4294967295 | 否 | 否 | 内容 |
| 5 | nickname | varchar | 255 | 否 | 否 | 昵称 |
| 6 | avatar | varchar | 255 | 否 | 否 | 头像地址 |
| 7 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 8 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 9 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 10 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 11 | source_id | int | 是 | 否 | 来源ID | |
| 12 | hidden | tinyint | 否 | 否 | 是否隐藏 | |
| 13 | sticky | tinyint | 否 | 否 | 是否置顶 |
表 4-10-commodity_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 | commodity_information_id | int | 是 | 是 | 商品信息ID | |
| 15 | create_by | int | 是 | 否 | 创建用户ID | |
| 16 | create_time | datetime | 是 | 否 | 创建时间 | |
| 17 | list_status | smallint | 否 | 否 | 上架状态(0:下架;1上架) | |
| 18 | purchase_instructions | varchar | 64 | 否 | 否 | 购买须知 |
| 19 | sku | longtext | 4294967295 | 否 | 否 | 规格 |
| 20 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-11-coupon(优惠券)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | coupon_id | int | 是 | 是 | 优惠券ID | |
| 2 | coupon_user_id | int | 否 | 否 | 优惠券用户ID | |
| 3 | coupon_user_auth | varchar | 255 | 否 | 否 | 优惠券用户 |
| 4 | coupon_name | varchar | 255 | 否 | 否 | 优惠券名称 |
| 5 | coupon_price | int | 否 | 否 | 优惠券价格 | |
| 6 | coupon_price1 | int | 否 | 否 | 优惠券券后价格 | |
| 7 | coupon_time | varchar | 255 | 否 | 否 | 优惠券时间 |
| 8 | coupon_type | varchar | 255 | 否 | 否 | 优惠券类型 |
| 9 | create_time | timestamp | 否 | 否 | 创建时间 | |
| 10 | update_time | timestamp | 否 | 否 | 更新时间 |
表 4-12-coupon_user(用户优惠券)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | coupon_id | int | 否 | 否 | 优惠券ID | |
| 2 | coupon_user_id | int | 否 | 否 | 用户优惠券ID | |
| 3 | create_time | datetime | 否 | 否 | 创建时间 | |
| 4 | id | int | 是 | 是 | 用户优惠券ID | |
| 5 | is_use | int | 否 | 否 | 是否使用 | |
| 6 | user_id | int | 否 | 否 | 用户ID |
表 4-13-goods(商品信息)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 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 | 否 | 否 | 添加人 | |
| 24 | list_status | smallint | 否 | 否 | 上架状态(0:下架;1上架) |
表 4-14-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-15-hits(用户点击)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | hits_id | int | 是 | 是 | 点赞ID | |
| 2 | user_id | int | 是 | 否 | 点赞人 | |
| 3 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 4 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 5 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 6 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 7 | source_id | int | 是 | 否 | 来源ID |
表 4-16-logistics_delivery(物流配送)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | contact_name | varchar | 255 | 否 | 否 | 联系人名字 |
| 2 | courier_detail | longtext | 4294967295 | 否 | 否 | 配送详情 |
| 3 | courier_id | int | 否 | 否 | 配送员ID | |
| 4 | courier_name | varchar | 255 | 否 | 否 | 配送员名字 |
| 5 | courier_type | int | 是 | 否 | 配送方式(1:商家配送,2:其他配送) | |
| 6 | create_time | datetime | 是 | 否 | 创建时间 | |
| 7 | delivery_number | varchar | 30 | 否 | 否 | 配送订单 |
| 8 | delivery_status | varchar | 64 | 否 | 否 | 配送状态 |
| 9 | logistics_delivery_id | int | 是 | 是 | 物流配送ID | |
| 10 | merchant_id | int | 否 | 否 | 商家id | |
| 11 | order_number | varchar | 64 | 否 | 否 | 订单号 |
| 12 | ordinary_users | int | 否 | 否 | 普通用户 | |
| 13 | product_name | varchar | 64 | 否 | 否 | 商品名称 |
| 14 | purchase_quantity | varchar | 64 | 否 | 否 | 购买数量 |
| 15 | recommend | int | 是 | 否 | 智能推荐 | |
| 16 | shipping_address | varchar | 64 | 否 | 否 | 收货地址 |
| 17 | signing_status | varchar | 64 | 否 | 否 | 签收状态 |
| 18 | the_date_of_issuance | date | 否 | 否 | 发货日期 | |
| 19 | total_transaction_amount | double | 否 | 否 | 交易总额 | |
| 20 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-17-message_inform(通知记录)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | inform_id | int | 是 | 是 | 通知ID | |
| 2 | user_id | int | 是 | 是 | 通知人ID | |
| 3 | title | varchar | 255 | 否 | 否 | 标题 |
| 4 | state | varchar | 255 | 否 | 否 | 状态 |
| 5 | type | varchar | 64 | 否 | 否 | 分类 |
| 6 | content | varchar | 255 | 否 | 否 | 内容 |
| 7 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 8 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-18-notice(公告)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | content | longtext | 4294967295 | 否 | 否 | 正文 |
| 2 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 3 | notice_id | mediumint | 是 | 是 | 公告ID | |
| 4 | title | varchar | 125 | 是 | 否 | 标题 |
| 5 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-19-order(订单)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 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 | desc | varchar | 64 | 否 | 否 | 取消订单原因 |
表 4-20-order_after_sale(订单售后)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | after_state | varchar | 16 | 否 | 否 | 售后状态:未审核,未通过,已通过 |
| 2 | after_state_reply | varchar | 255 | 否 | 否 | 售后回复 |
| 3 | content_desc | varchar | 255 | 否 | 否 | 售后内容 |
| 4 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 5 | goods_id | mediumint | 是 | 否 | 商品id | |
| 6 | imgs | varchar | 1000 | 否 | 否 | 售后凭证 |
| 7 | merchant_id | mediumint | 是 | 否 | 商家ID | |
| 8 | num | int | 是 | 否 | 数量 | |
| 9 | order_after_sale_id | int | 是 | 是 | 订单售后ID | |
| 10 | order_id | int | 是 | 否 | 订单ID | |
| 11 | order_number | varchar | 64 | 否 | 否 | 订单号 |
| 12 | price | double | 是 | 否 | 价格 | |
| 13 | price_ago | double | 是 | 否 | 原价 | |
| 14 | price_count | double | 是 | 否 | 总价 | |
| 15 | state | varchar | 16 | 是 | 否 | 订单状态:待付款,待发货,待签收,已签收,待退款,已退款,已拒绝,已完成 |
| 16 | title | varchar | 255 | 否 | 否 | 商品标题 |
| 17 | type | varchar | 255 | 否 | 否 | 售后类型 |
| 18 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 19 | user_id | int | 是 | 否 | 买家ID |
表 4-21-praise(点赞)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | praise_id | int | 是 | 是 | 点赞ID | |
| 2 | user_id | int | 是 | 是 | 点赞人 | |
| 3 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 4 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 5 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 6 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 7 | source_id | int | 是 | 否 | 来源ID | |
| 8 | status | tinyint | 是 | 否 | 点赞状态:1为点赞,0已取消 | |
| 9 | img | varchar | 255 | 否 | 否 | |
| 10 | title | varchar | 255 | 否 | 否 |
表 4-22-promotional_activities(促销活动)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | activity_content | longtext | 4294967295 | 否 | 否 | 活动内容 |
| 2 | activity_date | date | 否 | 否 | 活动日期 | |
| 3 | activity_intensity | varchar | 64 | 否 | 否 | 活动力度 |
| 4 | activity_title | varchar | 64 | 否 | 否 | 活动标题 |
| 5 | collect_len | int | 是 | 否 | 收藏数 | |
| 6 | comment_len | int | 是 | 否 | 评论数 | |
| 7 | cover_image | varchar | 255 | 否 | 否 | 封面图片 |
| 8 | create_by | int | 是 | 否 | 创建用户ID | |
| 9 | create_time | datetime | 是 | 否 | 创建时间 | |
| 10 | praise_len | int | 是 | 否 | 点赞数 | |
| 11 | promotional_activities_id | int | 是 | 是 | 促销活动ID | |
| 12 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-23-regular_user(普通用户)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | regular_user_id | int | 是 | 是 | 普通用户ID | |
| 2 | user_name | varchar | 64 | 否 | 否 | 用户姓名 |
| 3 | user_gender | varchar | 64 | 否 | 否 | 用户性别 |
| 4 | contact_phone | varchar | 16 | 否 | 否 | 联系电话 |
| 5 | examine_state | varchar | 16 | 是 | 否 | 审核状态 |
| 6 | user_id | int | 是 | 否 | 用户ID | |
| 7 | create_time | datetime | 是 | 否 | 创建时间 | |
| 8 | create_by | int | 是 | 否 | 创建用户ID | |
| 9 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-24-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-25-upload(文件上传)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | upload_id | int | 是 | 是 | 上传ID | |
| 2 | name | varchar | 64 | 否 | 否 | 文件名 |
| 3 | path | varchar | 255 | 否 | 否 | 访问路径 |
| 4 | file | varchar | 255 | 否 | 否 | 文件路径 |
| 5 | display | varchar | 255 | 否 | 否 | 显示顺序 |
| 6 | father_id | int | 否 | 否 | 父级ID | |
| 7 | dir | varchar | 255 | 否 | 否 | 文件夹 |
| 8 | type | varchar | 32 | 否 | 否 | 文件类型 |
表 4-26-user(用户账户)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 | |||
|---|---|---|---|---|---|---|---|---|---|
| 1 | avatar | varchar | 255 | 否 | 否 | 头像地址 | |||
| 2 | create_time | timestamp | 是 | 否 | 创建时间 | ||||
| 3 | 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-27-user_group(用户组)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 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.1 用户注册
普通用户在访问系统首页后,可选择点击“注册”按钮,进入相应的注册页面。在该页面中,用户需完成所有注册信息必填项,点击页面下方的“注册”按钮。系统在接收到表单数据并完成验证后,若信息无误,将提示注册成功,并在自动跳转至系统的登录界面,以便用户立即进行登录操作。注册界面如下图所示。图5-1就是用户注册界面。
图5-1用户注册界面
5.1.2 用户登录
用户在登录界面点击“登录”按钮后,需输入用户名、密码以及验证码以完成身份验证操作。系统在前端会自动对所输入信息进行有效性校验,同时检查该用户是否已通过后台审核流程。若审核通过且信息无误,则系统将允许用户成功登录并跳转至相应的功能界面;反之页面会弹出相应的提示信息,提醒用户重新输入或检查相关信息的正确性。用户登录页面如图5-2所示。
图5-2用户登录界面
5.1.3 商品信息
普通用户在商品信息首页或者分类入口点击之后进入到商品列表页面。页面显示商品信息,可以上下滑动浏览,也可以通过搜索来找到商品。点击任何一个商品卡片都会跳转到该商品的详情页查看。商品信息页面如图5-3所示。
图5-3商品信息界面
5.1.4 我的购物车
普通用户在商品详情页选择商品的规格、数量,然后点击加入购物车就会把商品保存下来。普通用户随时可以进入购物车页面查看自己已经选择的商品清单。我的购物车的操作界面如图5-4所示。
图5-4我的购物车操作界面
5.1.5 我的订单
普通用户进入“我的订单”页面可以查看所有以前的订单。订单按照状态分类显示,普通用户可以点击任一订单查看详细信息,普通用户可以根据订单状态进行相应的操作。我的订单界面如图5-5所示。
图5-5 我的订单界面
5.1.6 促销活动
普通用户可以查看促销活动列表,浏览当前正在进行的各类促销活动,点击进入活动专区以享受专属折扣或领取赠品;同时支持对活动进行点赞、收藏、按条件排序,并可发表评论参与互动。促销活动界面如5-6所示。
图5-6 促销活动界面
5.2 管理员功能
5.2.1 系统用户
管理员可管理所有用户信息,包括对普通用户和管理员等用户信息增改删查操作,支持审核、封禁、权限设置等功能。图5-7给出的是系统用户界面。
图5-7系统用户界面
5.2.2 商品信息
管理员在上面的页面上对商品信息进行管理。管理员可以查看商品列表,对商品信息进行审核,审核通过的商品上架,不通过的商品下架或者要求修改。管理员也可以编辑、下架或者删除已经上架的商品。商品信息界面如5-8所示。
图5-8商品信息界面
5.2.3 分类列表
管理员在这个模块里对商品分类体系进行管理。管理员可以查看到当下的分类树形结构,能够实现新增类别,修改类别名称与描述,改变类目排序,删除不需要的分类等操作,所有的修改都即刻生效,会同时反映在页面上。分类列表界面如图5-9所示。
图5-9 分类列表界面
5.2.4 订单列表
管理员进入订单列表管理页面可以查看系统生成所有的订单。管理员根据订单号、状态等条件筛选订单,点击订单可以查看订单详情。管理员对订单状态流转进行处理,即确认付款、标记发货等。订单列表界面如图5-10所示。
图5-10 订单列表界面
5.2.5 订单配送
管理员在这个页面跟踪管理订单物流配送情况。给已发货订单填写快递单号和物流公司,系统同步更新物流状态。管理员可以查看配送员信息及签收情况,对异常订单可以进行跟踪。订单配送系统界面图5-11所示。
图5-11 订单配送界面
5.2.6 订单售后
管理员在这里处理普通用户提交的订单售后服务申请。查看审核通过或者拒绝申请。对于通过的售后,管理员可以进行退款或者换货等后续的操作,并且更新处理状态。订单售后界面如图5-12所示。
图5-12 订单售后界面
5.2.7 系统管理
管理员点击“系统管理-轮播图管理”菜单,可以对前台展示的轮播图进行设置,系统管理界面如图5-13所示。
图5-13系统管理界面
5.2.8 通知公告管理
管理员点击“通知公告管理”这个菜单,可以对系统中的通知公告进行管理,包括通知公告的增删改查等操作。通知公告管理界面如图5-14所示。
图5-14通知公告管理界面
**
**
第六章 系统测试
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-6 商城管理测试用例表
| 测试项 | 测试目的 | 测试步骤 | 预期结果 | 实际结果 |
|---|---|---|---|---|
| 商品信息发布 | 验证表单提交与数据入库 | 填写完整的商品信息并提交发布 | 系统提示发布成功,后台数据库生成相应商品记录 | 一致 |
| 必填项校验 | 检查前端表单验证规则 | 在发布时遗漏必填信息并提交 | 系统阻止提交并高亮提示未填写的必填项 | 符合预期 |
| 发布后状态 | 确认发布后商品的初始状态 | 发布成功后查看已发布商品列表 | 新发布的商品以“待审核”或“已上架”的预设状态显示 | 测试成功 |
测试结论
对系统进行全面的功能、性能、安全等各方面的测试,以保证软件在各种环境下都能达到预期的效果。发现问题后已经进行相应的修复或者提出改进建议。经过测试,软件基本达到设计要求,性能稳定,没有出现重大缺陷,证明了系统的功能性、稳定性、兼容性。
更多推荐



所有评论(0)