第一章 引言
1.1 研究背景与意义
随着乡村振兴战略的深入推进和数字经济的快速发展,农产品电商已成为推动农业现代化、促进农民增收的重要途径。安徽省作为农业大省,拥有众多具有地域特色的优质农产品,如黄山毛峰、砀山酥梨、六安瓜片、宣城火腿等,具备良好的产业基础和品牌潜力。然而,受限于传统销售模式信息不对称、流通渠道单一、营销能力薄弱等问题,许多优质农产品"藏在深闺人未识",难以高效对接全国消费市场。
与此同时,消费者对绿色、健康、原产地特色农产品的需求持续增长,对购物体验的便捷性、服务的智能化以及信息的透明度提出了更高要求。在此背景下,构建一个集商品展示、智能推荐、在线交易、客户服务与数据管理于一体的区域性特色农产品电商平台,成为推动"皖美"农产品走出安徽、走向全国的关键举措。
本系统的设计与实现具有重要的社会、经济与技术意义:一方面,通过搭建数字化销售平台,有效助力安徽特色农产品拓宽销路、提升品牌影响力,切实服务乡村振兴战略和农民增收;另一方面,以AI客服、个性化推荐、全流程订单管理等功能优化用户体验,增强消费信任,推动传统农业向信息化、智能化转型;同时,系统采用Vue与Node.js等主流技术构建前后端分离架构,融合权限管理、数据分析与智能交互等模块,不仅满足实际应用需求,也为农业电商领域的教学、科研与工程实践提供了可复用的技术范式和示范案例。
1.2 国内外研究现状
近年来,随着互联网技术的快速发展和"互联网+农业"战略的深入推进,农产品电商平台在全球范围内迅速兴起,国内外在该领域的研究与实践均取得了显著进展。
在国外,发达国家已构建起高度成熟、智能化的农产品电商体系。以美国、荷兰、日本等为代表,其平台普遍深度融合物联网、大数据、区块链和人工智能等先进技术,实现从生产溯源、智能分拣、冷链物流到精准营销的全链条数字化管理。例如,美国的Farmers Business Network(FBN)利用大数据分析为农户提供市场定价与销售建议;荷兰通过智能温室与电商平台联动,实现花卉、果蔬的全球高效配送。此外,国外平台高度重视用户体验与服务生态,普遍配备智能客服、个性化推荐和透明化供应链系统,显著提升了交易效率与用户黏性。
在国内,农产品电商发展迅猛,已成为推动农村经济转型的重要力量。国家层面持续推进"数商兴农""快递进村"等工程,阿里、京东、拼多多等大型平台纷纷布局农产品上行通道,涌现出"淘宝村""产地仓""直播助农"等创新模式。在技术应用方面,越来越多的区域性农产品电商平台开始采用Vue、React、Spring Boot、Node.js等现代Web开发框架,集成用户管理、订单处理、数据分析和内容资讯等功能模块。然而,当前多数中小型平台仍存在功能同质化、智能化程度不足、个性化服务能力弱等问题,尤其在AI交互、精准推荐和经营决策支持等方面与国际先进水平尚有差距。同时,针对地方特色农产品的垂直化、品牌化电商平台仍有较大发展空间。
综上所述,尽管国内外在农产品电商领域已取得丰富成果,但面向特定区域、聚焦地方特色、融合智能服务与数据驱动的精细化电商平台仍亟需深入探索。本系统立足安徽地域特色,结合前沿Web技术与用户需求,旨在填补这一实践空白,为区域性农产品数字化销售提供可复制、可推广的解决方案。
1.3 研究内容与方法
本研究聚焦于"基于Vue+Node的皖美特色农产品网售系统"的设计与实现,旨在构建一个支持多角色协同、功能完备、交互友好的区域性农产品电商平台。系统面向消费者、商家和管理员三类用户,涵盖注册登录、农产品展示与筛选、个性化推荐、购物车与订单管理、AI客服、新闻资讯、公告栏、个人中心及后台管理等核心模块,形成从商品展示、在线交易到售后服务的完整业务闭环。
在技术架构上,采用前后端分离模式:前端基于Vue 3框架,结合Element Plus组件库实现响应式界面;后端使用 Node.js(Express)构建RESTful API,数据持久化依托 MySQL数据库。系统集成智能化服务,包括基于规则匹配的AI客服模块、依据用户行为的个性化推荐机制,以及面向商家与管理员的可视化数据分析看板,提升平台的服务能力与决策支持水平。安全方面,通过JWT实现身份认证,并采用基于角色的访问控制(RBAC)模型,确保不同用户权限隔离与数据安全。
研究综合运用文献研究法梳理国内外农产品电商发展现状与技术路径,采用面向对象分析与设计(OOAD)方法完成系统建模,利用 UML 工具绘制用例图、类图等;开发过程遵循敏捷迭代原则,分模块实现并持续集成;最终通过功能测试、接口验证与用户体验评估,对系统稳定性、可用性与性能进行综合检验。该研究为地方特色农产品的数字化营销提供了可落地的技术方案,兼具实践价值与示范意义。
第二章 相关技术和理论知识
2.1 Node.JS开发语言
Node.js是一个开源的JavaScript运行环境,它能够在服务器端执行JavaScript代码1。Node.js采用事件驱动和非阻塞I/O模型,使其在处理高并发时展现出优越的性能和吞吐量,特别适合构建网络应用。这种运行环境允许开发者使用JavaScript编写服务器端的脚本,从而使得前后端的开发语言保持一致,简化了开发流程。Node.js的非阻塞I/O模型意味着它在处理输入输出操作时不会阻塞程序的其他部分,这大大提高了程序的效率,尤其是在处理大量并发连接时2。事件驱动的架构使得Node.js能够以轻量级的方式处理多个并发任务,这使得它在构建实时的、需要快速响应的应用程序时,如聊天应用、在线游戏和实时数据流处理等场景中,具有显著的优势。
2.2 MySQL数据库
MySQL是一种广泛使用的开源关系型数据库管理系统(RDBMS),其稳定性、可靠性和卓越性能使其成为众多应用程序的首选数据库3。MySQL支持标准SQL语法,并提供丰富的功能和特性,如事务处理、触发器和存储过程等,以满足开发者对数据管理和操作的需求。MySQL具有良好的可扩展性,支持主从复制、分布式架构和集群部署,适用于各种规模和负载的应用场景4。作为一个开源项目,MySQL拥有庞大的用户社区和活跃的开发者社区,为用户提供了丰富的文档、教程和支持资源。总之,MySQL是一款可靠、强大且灵活的关系型数据库管理系统**。**通过其卓越性能和可扩展性,帮助开发者高效地管理和操作数据,并得到了广大用户的认可和应用5。
2.3 Vue技术
Vue是一种渐进式JavaScript框架,专注于构建用户界面。Vue采用组件化的开发模式,允许开发者将应用程序拆分为独立的、可重用的组件,从而提高了开发效率和代码的可维护性6。框架的核心库专注于视图层,支持数据绑定和DOM操作,提供了简洁的API。Vue的虚拟DOM机制提升了应用的性能,减少了实际DOM操作的次数。
Vue支持双向数据绑定,能够自动更新视图与模型之间的变化。开发者可以通过Vue的指令系统,简化数据展示和事件处理。Vue还支持路由管理和状态管理,使得开发复杂单页面应用变得更加容易7。借助Vue的生态系统,开发者能够使用多种工具和库来扩展功能,满足不同的业务需求。Vue在前端开发中逐渐成为主流选择,受到广泛关注和应用。
2.4 B/S模式
B/S(Browser/Server)架构,即浏览器/服务器架构,是一种现代的应用程序架构模式。这种架构模式的主要特点在于它将用户端的大部分处理工作转移到了浏览器端,这样一来,就大大简化了客户端的部署和维护工作。在本系统中,用户通过浏览器访问服务管理平台,而所有的后端业务逻辑和数据管理则完全由服务器端来处理,这样不仅提高了系统的运行效率,还形成了高效的数据交互模式。
2.5 Node.jsScript脚本语言
Node.jsScript是一种被广泛采用的脚本语言,它在前端开发领域中扮演着至关重要的角色。这种语言特别擅长与HTML和CSS这两种标记语言和样式表语言相结合,从而能够创建出具有动态效果和用户交互功能的网页。在当前这个项目中,Node.jsScript不仅仅局限于前端的应用,它还被用来与Express框架的后端API进行有效的交互和数据交换8。
第三章 系统分析
3.1 需求调研分析
为精准把握"皖美特色农产品网售系统"的功能定位与用户期望,本研究通过问卷调查、深度访谈与竞品分析等方式,对消费者、商家及管理员三类核心用户展开需求调研。调研结果显示:消费者关注农产品的地域特色、品质信息与购物流程便捷性,期望平台提供清晰的商品详情、智能筛选、个性化推荐及7×24小时AI客服服务,并能及时获取新闻资讯与平台公告;商家用户作为本地农产品经营者,亟需操作简便的后台系统,用于商品发布、订单处理、物流跟踪、售后管理及销售数据查看,同时重视平台资质审核机制以保障公平竞争环境;管理员则需全面掌控平台运行,包括用户权限管理、内容审核(公告、新闻、轮播图)、商品与订单监管以及整体运营数据监控,强调系统的稳定性、安全性与可维护性。
基于调研反馈,系统功能需求被系统化归纳为三大板块:面向消费者的前端功能模块(涵盖注册登录、农产品浏览与购买、推荐中心、AI客服、资讯公告、个人中心及商城管理);面向商家的后台管理模块(支持商品、分类、订单、配送、售后及数据分析);以及面向管理员的全局管控模块(包含角色管理、系统配置、内容维护与数据可视化)。此次需求调研有效厘清了各角色的核心诉求与业务流程,为系统架构设计与功能实现提供了明确、可靠的依据。
3.2 系统可行性分析
3.2.1 技术可行性
在技术可行性方面,选择使用Node.js作为开发语言,结合相应的框架,以实现系统的功能需求。Node.js作为一种高效的服务器端JavaScript运行环境,具备非阻塞I/O和高并发处理能力,非常适合开发高性能的网络应用。作为Node.js的Web框架,提供了简洁且灵活的开发接口,能够帮助快速搭建和扩展Web应用,使得系统的设计和实现更加高效和便捷。结合的轻量级开发模式,进一步提升系统的技术可行性。
3.2.2 经济可行性
系统开发采用开源技术栈,降低了软件授权与工具采购成本。Node.js和相应的框架简化了开发流程,缩短了项目周期,减少了人力投入。此外,借助云计算资源部署系统,可根据实际需求灵活调整服务器配置,进一步降低硬件成本。总体而言,该方案在经济上具有较高性价比。
3.2.3 操作可行性
在操作可行性方面,本系统设计注重用户体验,采用了直观易用的界面设计,并提供详细的帮助文档支持,确保用户可以轻松上手使用各项功能。无论是用户还是后台管理员,都能通过简洁明了的操作流程完成信息查询和管理等任务。因此,从用户操作的角度来看,本系统具备良好的操作可行性。
3.3 系统功能分析
3.3.1 功能性分析
皖美特色农产品网售系统划分为了前端模块和后端模块两大部分。
前端消费者用户模块:
(1)注册登录:在皖美特色农产品网售系统中,用户可通过简洁的界面完成注册与登录操作。注册时,用户填写基本信息并提交即可创建账户;登录时,输入用户名和密码后即可快速进入系统。
(2)首页:首页展示轮播图、公告栏、新闻资讯、农产品、AI客服等功能导航栏。
(3)公告栏:用户可通过公告栏及时查看系统维护、功能更新、服务调整及重要提示等通知信息,确保获取最新平台动态和操作指引。
(4)新闻资讯:用户可通过新闻资讯模块浏览与特色农产品相关的最新行业动态、品牌发展和政策信息。支持按类别筛选、关键词搜索及多维度排序,方便快速获取感兴趣的内容,同时可对资讯文章进行点赞、收藏、分享和评论操作。
(5)农产品:用户可通过"农产品"功能浏览各类特色农产品,支持按分类、价格、销量等条件筛选与排序;点击商品可查看高清图片、价格、库存、规格等详情,并可加入购物车或立即购买。同时在推荐中心智能推送个性化农产品,帮助用户快速发现感兴趣的商品,提升选购效率与体验。
(6)商城管理:商城管理模块主要为用户提供包括我的购物车、我的订单、我的地址等商城管理子功能,实现增改删查等基础管理操作,包括管理和购买购物车商品;确认订单信息,取消或支付订单,或进行商品售后申请。
(7)AI客服:AI客服模块能帮助用户快速获取所需信息,用户通过AI客服,能像和真人对话一样,快速、便捷地解决购物过程中遇到的各种问题,提升购物流畅度和满意度。
(8)个人账户:用户可以在个人账户中查看并管理自己的个人信息。包括个人资料、修改密码等。
(9)个人中心:用户可通过"个人中心"查看个人信息、管理订单配送状态,浏览收藏记录、点赞内容和评论记录,实现对自身购物行为的集中管理和便捷操作。。
前、后端 商家用户模块:
(1)登录:商家用户注册后需等管理员在后台进行审核后,才能使用账号密码登录系统进行操作。
(2)AI客服(前端):商家用户可登录系统前端回复顾客的商品咨询信息,解决顾客在购物过程中的问题。
(2)数据分析(后端):商家用户可通过"数据分析"功能查看自身商品的销售金额统计和销售类型分布情况,掌握经营数据与销售趋势,辅助优化商品管理与营销策略。同时可浏览系统公告和店铺运营相关信息,及时了解平台动态。
(3)公告栏管理(后端):商家用户点击可查看公告栏信息,查看系统维护、功能更新、服务调整及重要提示等通知信息,确保获取最新平台动态和操作指引。
(4)商城管理(后端):商家用户可管理自己的商城信息,提供包括农产品、分类列表、订单列表、订单配送和订单售后等商城管理子功能。支持商家用户发布、下架农产品,对农产品进行分类,负责处理订单售后,更新配送信息,跟踪订单配送和签收情况。
后端管理员模块:
(1)登录:管理员可通过登录页面输入账号、密码和验证码,快速访问后台管理系统。
(2)数据分析:管理员可通过"数据分析"功能查看系统运营关键指标。点击个人头像,管理员可以进入个人信息页面,在这里可以查看和修改自己的姓名、联系方式等信息。此外,管理员还可以在个人信息页面修改登录密码,以确保账户安全。
(3)角色管理:系统中包含多种用户角色,包括管理员、消费者和商家用户,管理员可以对这些用户进行添加、删除和查询操作,并查看每个用户的详细信息。
(4)系统管理:管理员点击可查看轮播图列表和轮播图添加;如需添加新的轮播图,点击"轮播图添加",上传图片,输入标题和链接,点击"确认"按钮进行添加,同时可对轮播图进行增删改查。
(5)公告栏管理:当管理点击"公告栏管理"时,可查看公告栏列表和公告栏添加;加新的公告栏信息,点击"公告栏添加",输入标题和正文,点击"确认"按钮进行添加。同时可对公告栏信息删改查。
(6)新闻管理:管理员可通过"新闻管理"功能统一维护平台的新闻资讯及其分类:一方面可对资讯分类进行增删改操作,构建清晰的内容结构;另一方面可发布、编辑、删除或上下架具体新闻资讯,支持设置标题、分类归属、封面图、正文内容及发布时间,实现对农产品相关新闻和动态的高效组织与管理。
(7)商城管理:管理员通过商城管理功能能够高效地进行商品和订单的综合管理。这包括在农产品中编辑商品、利用分类列表对农产品归类整理、查看并处理订单列表中的顾客订单,以及通过订单配送模块跟踪物流状态和处理订单售后等服务。
(8)通知发布:管理员点击可查看通知列表,如需添加新的通知信息,点击右侧"新增"钮,输入通知标题、通知内容,选择通知方式和接收人,点击"提交"按钮即可发布新的通知。
3.3.2 非功能性分析
皖美特色农产品网售系统的非功能性需求比如皖美特色农产品网售系统的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等,具体可以表示在如下3-1表格中:
表3-1皖美特色农产品网售系统非功能需求表
| 安全性 | 主要指皖美特色农产品网售系统数据库的安装,数据库的使用和密码的设定必须合乎规范。 |
|---|---|
| 可靠性 | 可靠性是指皖美特色农产品网售系统能够安装用户的指示进行操作,经过测试,可靠性90%以上。 |
| 性能 | 性能是影响皖美特色农产品网售系统占据市场的必要条件,所以性能最好要佳才好。 |
| 可扩展性 | 比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。 |
| 易用性 | 用户只要跟着皖美特色农产品网售系统的页面展示内容进行操作,就可以了。 |
| 可维护性 | 皖美特色农产品网售系统开发的可维护性是非常重要的,经过测试,可维护性没有问题 |
3.4 系统用例分析
皖美特色农产品网售系统的完整UML用例图分别是图3-1、3-2、3-3。
消费者用户角色用例如下图所示。

皖美特色农产品网售系统消费者用户角色用例图
商家用户角色用例图如下图所示。

皖美特色农产品网售系统商家用户角色用例图
管理员角色用例如下图所示。

皖美特色农产品网售系统管理员角色用例图
3.5 系统总体流程设计
3.5.1 数据开发流程
系统开发流程的主要步骤,从需求分析到系统完成的全过程。流程包括需求分析、总体设计(结构、功能、数据)、详细设计(模块、编码)、模块整合与调用,以及测试、扩展和完善,最终完成系统的开发。本系统的开发流程如下图所示

系统开发流程图
3.5.2 用户登录流程
用户输入用户名和密码后,系统先检查输入是否为空,再验证用户名是否存在,若存在则通过用户名获取密码并校验。若密码正确则登录成功,否则提示密码错误。若用户名不存在或无法登录,提示用户操作无效。如下图所示。

登录流程图
3.5.3 系统操作流程
用户首先进入系统登录界面,输入用户名和密码后,系统验证信息是否正确。若验证失败,返回登录界面重新输入,若验证成功,则进入功能界面,执行相应功能处理后结束操作流程。操作流程如下图所示。

系统操作流程图
3.5.4 添加信息流程
管理员可以添加信息,用户添加可以自己权限内的信息,输入信息后,要想利用这个软件来进行系统的安全管理,首先需要登录到该软件中。添加信息流程如下图所示。

添加信息流程图
3.5.5 修改信息流程
用户首先选择需要修改的记录,输入修改后的数据,系统判断输入数据是否合法。若数据不合法,提示重新输入,若数据合法,则将修改后的数据写入数据库,完成操作后流程结束。修改信息流程图如下图所示。

修改信息流程图
3.5.6 删除信息流程
用户选择需要删除的记录后,系统判断是否确认删除。若未确认,返回选择环节,若确认删除,则更新数据库,删除对应记录,完成操作后流程结束。删除信息流程图如下图所示。

删除信息流程图
第四章 系统设计
本章主要讨论的内容包括皖美特色农产品网售系统的功能模块设计、数据库系统设计。
4.1 系统架构设计
本皖美特色农产品网售系统从架构上分为三层:表现层(UI)、业务逻辑层(BLL)以及数据层(DL)。

皖美特色农产品网售系统架构设计图
表现层(UI):也称为用户界面层,它负责与用户进行直接的交互。一个优秀的UI设计能够显著提升用户的体验,确保用户在使用皖美特色农产品网售系统时感到舒适和便捷。为了确保良好的兼容性,UI界面设计需要适应不同版本的平台和各种屏幕尺寸的分辨率。此外,UI交互功能必须合理设计,确保用户的操作能够得到相应的反馈和结果,这要求表现层与业务逻辑层之间保持良好的通信和协同工作。
业务逻辑层(BLL):这一层主要处理皖美特色农产品网售系统的数据和业务逻辑。当用户通过表现层提交数据时,业务逻辑层会接收这些数据,进行处理,并将结果传递给数据层进行存储或查询。同时,当系统需要从数据层读取数据时,业务逻辑层会处理这些数据,并将其传递给表现层进行展示。
数据层(DL):虽然本皖美特色农产品网售系统的数据存储在服务端的MySQL数据库中,但数据层仍然作为一个独立的部分存在。它的主要功能是存储和管理皖美特色农产品网售系统的数据。数据层与MySQL数据库进行交互,执行数据的增、删、改、查等操作,确保数据的完整性和安全性。
这三个层次相互独立但又紧密协作,共同构成了皖美特色农产品网售系统的完整架构。通过合理的分层设计,可以提高系统的可维护性、可扩展性和可重用性,为用户提供更好的服务和体验。
4.2 系统模块设计
在上一章节中主要对系统的功能性需求和非功能性需求进行分析,并且根据需求分析了本皖美特色农产品网售系统中的用例。那么接下来就要开始对本皖美特色农产品网售系统的架构、主要功能和数据库开始进行设计。皖美特色农产品网售系统根据前面章节的需求分析得出,皖美特色农产品网售系统的功能模块图如下图所示。

皖美特色农产品网售系统功能模块图
4.3 数据库设计
数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。
4.3.1 数据库概念结构设计
下面是整个皖美特色农产品网售系统中主要的数据库表总E-R实体关系图。
编辑
皖美特色农产品网售系统总E-R关系图
4.3.2 数据库逻辑结构设计
通过上一小节中皖美特色农产品网售系统中总E-R关系图上得出一共需要创建多个数据表。在此主要罗列几个主要的数据库表结构设计。
表 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-agricultural_products(农产品)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | agricultural_products_id | int | 是 | 是 | 农产品ID | |
| 2 | product_origin | varchar | 64 | 否 | 否 | 产品产地 |
| 3 | business_user | int | 否 | 否 | 商家用户 | |
| 4 | merchant_name | varchar | 64 | 否 | 否 | 商家名称 |
| 5 | business_address | varchar | 64 | 否 | 否 | 商家地址 |
| 6 | merchant_mobile_phone | varchar | 16 | 否 | 否 | 商家手机 |
| 7 | hits | int | 是 | 否 | 点击数 | |
| 8 | comment_len | int | 是 | 否 | 评论数 | |
| 9 | recommend | int | 是 | 否 | 智能推荐 | |
| 10 | cart_title | varchar | 125 | 否 | 否 | 标题 |
| 11 | cart_img | text | 65535 | 否 | 否 | 封面图 |
| 12 | cart_description | varchar | 255 | 否 | 否 | 描述 |
| 13 | cart_price_ago | double | 是 | 否 | 原价 | |
| 14 | cart_price | double | 是 | 否 | 卖价 | |
| 15 | cart_inventory | int | 是 | 否 | 商品库存 | |
| 16 | cart_type | varchar | 64 | 是 | 否 | 商品分类 |
| 17 | cart_content | longtext | 4294967295 | 否 | 否 | 正文 |
| 18 | cart_img_1 | text | 65535 | 否 | 否 | 主图1 |
| 19 | cart_img_2 | text | 65535 | 否 | 否 | 主图2 |
| 20 | cart_img_3 | text | 65535 | 否 | 否 | 主图3 |
| 21 | cart_img_4 | text | 65535 | 否 | 否 | 主图4 |
| 22 | cart_img_5 | text | 65535 | 否 | 否 | 主图5 |
| 23 | list_status | smallint | 否 | 否 | 上架状态(0:下架;1上架) | |
| 24 | sku | longtext | 4294967295 | 否 | 否 | 规格 |
| 25 | create_time | datetime | 是 | 否 | 创建时间 | |
| 26 | create_by | int | 是 | 否 | 创建用户ID | |
| 27 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-4-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-5-article_type(文章分类)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | type_id | smallint | 是 | 是 | 分类ID | |
| 2 | display | smallint | 是 | 否 | 显示顺序 | |
| 3 | name | varchar | 16 | 是 | 否 | 分类名称 |
| 4 | father_id | smallint | 是 | 否 | 上级分类ID | |
| 5 | description | varchar | 255 | 否 | 否 | 描述 |
| 6 | icon | text | 65535 | 否 | 否 | 分类图标 |
| 7 | url | varchar | 255 | 否 | 否 | 外链地址 |
| 8 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 9 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-6-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-7-business_user(商家用户)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | business_user_id | int | 是 | 是 | 商家用户ID | |
| 2 | merchant_name | varchar | 64 | 否 | 否 | 商家名称 |
| 3 | business_address | varchar | 64 | 否 | 否 | 商家地址 |
| 4 | merchant_mobile_phone | varchar | 16 | 否 | 否 | 商家手机 |
| 5 | qualification_screenshot | varchar | 255 | 否 | 否 | 资格截图 |
| 6 | examine_state | varchar | 16 | 是 | 否 | 审核状态 |
| 7 | user_id | int | 是 | 否 | 用户ID | |
| 8 | create_time | datetime | 是 | 否 | 创建时间 | |
| 9 | create_by | int | 是 | 否 | 创建用户ID | |
| 10 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-8-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-9-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-10-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-11-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-12-consumer(消费者)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | consumer_id | int | 是 | 是 | 消费者ID | |
| 2 | create_by | int | 是 | 否 | 创建用户ID | |
| 3 | create_time | datetime | 是 | 否 | 创建时间 | |
| 4 | examine_state | varchar | 16 | 是 | 否 | 审核状态 |
| 5 | mobile_phone_number | varchar | 16 | 否 | 否 | 手机号码 |
| 6 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 7 | user_gender | varchar | 64 | 否 | 否 | 用户性别 |
| 8 | user_id | int | 是 | 否 | 用户ID | |
| 9 | user_name | varchar | 64 | 否 | 否 | 用户姓名 |
表 4-13-customer_chat_group(在线沟通群组表)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | customer_chat_group_id | int | 是 | 是 | 沟通群组ID | |
| 2 | member | text | 65535 | 是 | 否 | 成员信息 |
| 3 | read_state | tinyint | 是 | 否 | 已读状态,0=未读,1=已读 | |
| 4 | last_read_time | timestamp | 否 | 否 | 最后阅读时间 | |
| 5 | unread_count | int | 否 | 否 | 未读消息数 | |
| 6 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 7 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-14-customer_chat_log(在线沟通记录表)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | content | text | 65535 | 是 | 否 | 沟通内容 |
| 2 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 3 | customer_chat_id | int | 是 | 是 | 沟通群组ID | |
| 4 | customer_chat_log_id | int | 是 | 是 | 沟通记录ID | |
| 5 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-15-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-16-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-17-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-18-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-19-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-20-notice(公告)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | content | longtext | 4294967295 | 否 | 否 | 正文 |
| 2 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 3 | notice_id | mediumint | 是 | 是 | 公告ID | |
| 4 | title | varchar | 125 | 是 | 否 | 标题 |
| 5 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-21-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-22-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-23-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-24-releasing_notices(通知发布)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | content | varchar | 255 | 否 | 否 | 通知内容 |
| 2 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 3 | notices_id | int | 是 | 是 | 通知ID | |
| 4 | title | varchar | 255 | 否 | 否 | 通知标题 |
| 5 | type | varchar | 64 | 否 | 否 | 通知方式 |
| 6 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-25-slides(轮播图)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | slides_id | int | 是 | 是 | 轮播图ID | |
| 2 | title | varchar | 64 | 否 | 否 | 标题 |
| 3 | content | varchar | 255 | 否 | 否 | 内容 |
| 4 | url | varchar | 255 | 否 | 否 | 链接 |
| 5 | img | varchar | 255 | 否 | 否 | 轮播图 |
| 6 | hits | int | 是 | 否 | 点击量 | |
| 7 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 8 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-26-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-27-user(用户账户)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|----|-------------|-----------|-----|------|------|------------|------|-------|-------|
| 1 | user_id | int | | 是 | 是 | 用户ID |
| 2 | state | smallint | | 是 | 否 | 账户状态:(1可用 | 2异常 | 3已冻结 | 4已注销) |
| 3 | user_group | varchar | 32 | 否 | 否 | 所在用户组 |
| 4 | login_time | timestamp | | 否 | 否 | 上次登录时间 |
| 5 | phone | varchar | 11 | 否 | 否 | 手机号码 |
| 6 | phone_state | smallint | | 是 | 否 | 手机认证:(0未认证 | 1审核中 | 2已认证) |
| 7 | username | varchar | 16 | 是 | 否 | 用户名 |
| 8 | nickname | varchar | 16 | 否 | 否 | 昵称 |
| 9 | password | varchar | 64 | 是 | 否 | 密码 |
| 10 | email | varchar | 64 | 否 | 否 | 邮箱 |
| 11 | email_state | smallint | | 是 | 否 | 邮箱认证:(0未认证 | 1审核中 | 2已认证) |
| 12 | avatar | varchar | 255 | 否 | 否 | 头像地址 |
| 13 | open_id | varchar | 255 | 否 | 否 | 针对获取用户信息字段 |
| 14 | create_time | timestamp | | 是 | 否 | 创建时间 |
表 4-28-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 系统开发环境搭建
"皖美特色农产品网售系统"采用前后端分离的架构模式,结合当前主流的 Web 开发技术栈,兼顾开发效率、系统性能与可维护性。考虑到系统初期面向区域性用户,访问量适中,业务逻辑聚焦于商品展示、在线交易、订单管理及基础数据分析,整体对服务器资源要求不高,因此选用轻量、高效的开发与运行环境。
前端基于Vue 3框架构建用户界面,配合Element Plus UI组件库实现良好的交互体验,并通过Axios实现与后端的数据通信;后端采用Node.js平台,使用Express框架搭建RESTful API服务,处理用户请求、业务逻辑与数据库交互;数据库选用MySQL 5.6及以上版本,用于存储用户信息、商品数据、订单记录、新闻公告等结构化数据,并通过Navicat进行可视化管理;开发工具主要使用Visual Studio Code,支持代码高亮、调试及版本控制集成;系统部署时依托Node.js内置HTTP服务,无需额外配置重型应用服务器(如 Tomcat),通过互联网(Internet)即可提供稳定访问。
该开发环境具有技术成熟、生态完善、部署简便等优势,能够有效支撑本系统的功能实现与后期扩展。
5.2 用户注册模块
不是皖美特色农产品网售系统中正式用户的是可以在线进行注册的,当填写上自己的账号+设置密码+确认密码+昵称+邮箱+身份+用户姓名+用户年龄+用户性别等信息后再点击"注册"按钮后将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,只有都验证没问题后即可用户注册成功。其用户注册模块展示如下图所示。

注册模块图
5.3 登录模块
皖美特色农产品网售系统中的前台上注册后的用户是可以通过自己的用户名+密码进行登录的,当用户输入完整的自己的用户名+密码信息并点击"登录"按钮后,将会首先验证输入的有没有空数据,再次验证输入的用户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到皖美特色农产品网售系统的首页中,否则将会提示相应错误信息,登录模块如下图所示。

登录模块图
5.4 消费者用户功能模块
5.4.1 AI客服模块
AI客服:AI客服模块能帮助用户快速获取所需信息,用户通过AI客服,能像和真人对话一样,快速、便捷地解决购物过程中遇到的各种问题,提升购物流畅度和满意度。如下图所示:

AI客服模块图
5.4.2 新闻资讯模块
新闻资讯:用户可通过新闻资讯模块浏览与特色农产品相关的最新行业动态、品牌发展和政策信息。支持按类别筛选、关键词搜索及多维度排序,方便快速获取感兴趣的内容,同时可对资讯文章进行点赞、收藏、分享和评论操作。如下图所示。

新闻资讯模块图
5.4.3 农产品模块
农产品:用户可通过"农产品"功能浏览各类特色农产品,支持按分类、价格、销量等条件筛选与排序;点击商品可查看高清图片、价格、库存、规格等详情,并可加入购物车或立即购买。同时在推荐中心智能推送个性化农产品,帮助用户快速发现感兴趣的商品,提升选购效率与体验。如下图所示。

农产品模块图

农产品详情模块图
5.4.4 商城管理
商城管理:商城管理模块主要为用户提供包括我的购物车、我的订单、我的地址等商城管理子功能,实现增改删查等基础管理操作,包括管理和购买购物车商品;确认订单信息,取消或支付订单,或进行商品售后申请。如下图所示。

收货地址界面图

我的订单界面图

订单售后界面图
5.4.5 个人中心模块
个人中心:用户可通过"个人中心"查看个人信息、管理订单配送状态,浏览收藏记录、点赞内容和评论记录,实现对自身购物行为的集中管理和便捷操作。如下图所示。

个人中心模块图
5.5 商家用户功能模块
5.5.1 商城管理模块
商城管理:商家用户可管理自己的商城信息,提供包括农产品、分类列表、订单列表、订单配送和订单售后等商城管理子功能。支持商家用户发布、下架农产品,对农产品进行分类,负责处理订单售后,更新配送信息,跟踪订单配送和签收情况。如下所示。

农产品添加模块图

订单列表模块图

订单配送模块图

订单售后模块图
5.6 后端管理员功能模块
5.6.1 数据分析模块
数据分析:管理员可通过"数据分析"功能查看系统运营关键指标。点击个人头像,管理员可以进入个人信息页面,在这里可以查看和修改自己的姓名、联系方式等信息。此外,管理员还可以在个人信息页面修改登录密码,以确保账户安全。如下所示。

数据分析模块图
5.6.2 角色管理模块
角色管理:系统中包含多种用户角色,包括管理员、消费者和商家用户,管理员可以对这些用户进行添加、删除和查询操作,并查看每个用户的详细信息。
系统用户模块如下图所示。

角色管理模块图
5.6.3 系统管理模块
系统管理:管理员点击可查看轮播图列表和轮播图添加;如需添加新的轮播图,点击"轮播图添加",上传图片,输入标题和链接,点击"确认"按钮进行添加,同时可对轮播图进行增删改查。如下图所示。

系统管理模块图
5.6.4 新闻管理模块
新闻管理:管理员可通过"新闻管理"功能统一维护平台的新闻资讯及其分类:一方面可对资讯分类进行增删改操作,构建清晰的内容结构;另一方面可发布、编辑、删除或上下架具体新闻资讯,支持设置标题、分类归属、封面图、正文内容及发布时间,实现对农产品相关新闻和动态的高效组织与管理。如下图所示。

新闻资讯添加模块图
5.6.5 通知发布模块
通知发布:管理员点击可查看通知列表,如需添加新的通知信息,点击右侧"新增"钮,输入通知标题、通知内容,选择通知方式和接收人,点击"提交"按钮即可发布新的通知。模块如下图所示。

通知发布管理模块图
第六章 系统测试
6.1 系统测试的目的
测试的主要目的是确保系统的功能和性能满足预期的需求,同时识别和修复潜在的缺陷。通过系统测试,可以验证各个功能模块的正确性和稳定性,确保系统在不同使用场景下的表现符合设计要求。测试目的包括确认系统功能的完整性、验证数据处理的准确性、评估系统的性能和安全性。测试还可以提高用户满意度,保证用户在使用系统时获得流畅和可靠的体验。通过全面的测试,可以降低后期维护成本,减少系统上线后出现故障的风险,从而保障系统的长期稳定运行。
6.2 测试方法
在本系统中,测试方法主要依赖于测试用例的设计与执行。测试用例是根据系统需求文档编写的,覆盖所有功能模块及其边界情况。每个测试用例包含输入数据、预期结果和实际结果的对比,以验证系统的功能是否按预期工作。 常见的测试用例包括功能测试用例、边界测试用例和异常测试用例。功能测试用例针对系统的各项功能进行验证;边界测试用例则侧重于输入数据的边界条件,验证系统在极端情况下是否能够稳定运行;异常测试用例则用于验证系统在处理错误输入或异常情况时的反应。本文选择功能测试用例进行系统测试。 在测试执行过程中,记录每个用例的执行结果,并根据实际结果与预期结果的对比,判断系统是否存在缺陷。通过系统化的测试用例执行,可以有效提高测试的覆盖率和效率,为系统的最终上线提供保障。
6.3 测试用例
6.3.1 用户登录功能测试
表6-1用户登录功能测试表
| 用例名称 | 用户登录系统 |
|---|---|
| 目的 | 测试用户通过正确的用户名和密码可否登录功能 |
| 前提 | 未登录的情况下 |
| 测试流程 | 1) 进入登录页面 2) 输入正确的用户名和密码 |
| 预期结果 | 用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入 |
| 实际结果 | 实际结果与预期结果一致 |
6.3.2 创建数据测试
在系统中,创建功能也是基础功能之一,因此创建功能的测试很有代表性。在此章节主要列举在创建时各种情况下系统结果的测试。由于系统涉及创建功能操作过多,因此将多处统称创建功能。
创建数据用例如表6-2 所示。
表6-2创建数据测试用例
| 测试用例编号 | YL_05 | YL_05 |
|---|---|---|
| 测试用例名称 | 系统使用者进行创建数据 | 系统使用者进行创建数据 |
| 测试用例描述 | 使用者输入要创建的数据 | 使用者输入要创建的数据 |
| 系统入口 | 浏览器 | 浏览器 |
| 步骤 | 预期结果 | 实际结果 |
| 输入完整并且格式正确的数据 | 提示"创建成功",并显示所有数据 | 预期结果 |
| 核心位置数据但非必要位置不输入数据 | 提示"创建成功",并显示所有数据 | 预期结果 |
| 核心数据位置不输入数据 | 提示"创建失败" | 预期结果 |
6.3.3 修改数据测试
在系统中,修改功能是系统主要实现功能,因此修改功能的测试很有代表性。在此章节主要列举在修改时各种情况下系统结果的测试。由于系统涉及修改功能操作过多,因此将多处数据表记录修改和状态修改统称修改功能。
修改数据用例如表6-3所示。
表6-3修改数据测试用例
| 测试用例编号 | YL_06 | YL_06 |
|---|---|---|
| 测试用例名称 | 系统使用者进行修改数据 | 系统使用者进行修改数据 |
| 测试用例描述 | 使用者对可修改的数据项进行修改 | 使用者对可修改的数据项进行修改 |
| 系统入口 | 浏览器 | 浏览器 |
| 步骤 | 预期结果 | 实际结果 |
| 将现有数据修改成正确的数据 | 提示"修改成功",并显示所有数据 | 预期结果 |
| 将现有数据修改成错误的数据 | 提示"修改失败" | 预期结果 |
6.3.4 查询数据测试
在系统中,查询功能是使用系统使用最多也是最基础的功能,因此查询功能的测试很有代表性。在此章节主要列举在查询时各种情况下系统结果的测试。
查询数据用例如表6-4所示。
表6-4查询数据测试用例
| 测试用例编号 | YL_05 | YL_05 |
|---|---|---|
| 测试用例名称 | 系统使用者进行查询数据 | 系统使用者进行查询数据 |
| 测试用例描述 | 全部查询以及输入关键词查询 | 全部查询以及输入关键词查询 |
| 系统入口 | 浏览器 | 浏览器 |
| 步骤 | 预期结果 | 实际结果 |
| 界面自动查询全部 | 显示对应所有记录 | 预期结果 |
| 输入已存在且能匹配成功的关键字 | 显示所查询到的数据 | 预期结果 |
| 输入不存在的关键字 | 显示数据界面为空 | 预期结果 |
6.4 测试结果
在本次测试的过程主要针对所有功能下的添加操作,修改操作和删除操作,并以真实数据一一进行相关功能项目的输入,最终能够保证每个项目涉及的功能都能够正常运行,因此能够保证本次设计的,已实现的功能能够正常运行并且相关数据库的信息也同样保证正确。