摘 要
在当前信息化与电子商务快速发展的背景下,传统水果超市在商品管理、库存控制及订单处理等方面存在效率低、数据不准确等问题,已难以满足现代化经营需求。为提升水果超市的管理效率和服务水平,本文设计并实现了一种基于SSM框架的水果超市管理系统。系统面向普通用户、销售用户和管理员三类角色,其中普通用户可进行商品浏览、在线购买及订单管理,销售用户负责水果信息维护及出入库管理,管理员则对系统用户、商品信息及商城业务进行统一管理。技术实现方面,系统采用Java作为开发语言,基于SSM框架进行架构设计,前端结合Vue实现页面交互,后端通过MySQL数据库完成数据存储。该系统实现了商品管理、库存管理及订单处理等功能的一体化,有效提高了业务处理效率和管理规范性,为水果超市的信息化发展提供了可靠支持。
关键词:java开发语言;ssm框架技术;水果超市管理系统;
Abstract
Against the backdrop of rapid development in informatization and e-commerce, traditional fruit supermarkets face inefficiencies and data inaccuracies in areas such as product management, inventory control, and order processing, making them unable to meet modern operational demands. To enhance management efficiency and service levels in fruit supermarkets, this paper designs and implements a fruit supermarket management system based on the SSM framework. The system caters to three user roles: ordinary users, sales users, and administrators. Ordinary users can browse products, make online purchases, and manage orders, while sales users handle fruit information maintenance and inventory management. Administrators oversee system users, product information, and mall operations. In terms of technical implementation, the system employs Java as the development language, adopts the SSM framework for architectural design, integrates Vue for front-end page interactions, and utilizes MySQL databases for backend data storage. The system integrates functions such as product management, inventory control, and order processing, effectively improving business efficiency and management standardization, thereby providing reliable support for the informatization development of fruit supermarkets.
Keywords:Java development language; SSM framework technology; Fruit supermarket management system;
目录
第1章 绪论
1.1 研究背景与意义
1.2 国内外研究现状
1.3 研究内容
1.4 论文结构与章节安排
第2章 相关技术介绍
2.1 B/S架构
2.2 java语言
2.3 MySQL数据库
2.4 SSM框架简介
第3章 系统分析
3.1 可行性分析
3.1.1 技术可行性
3.1.2 经济可行性
3.1.3 操作可行性
3.2 系统功能需求
3.3 系统性能需求
3.4 系统流程设计
3.4.1 系统操作流程图
3.4.2 系统登录流程图
3.4.3 系统注册流程图
第4章 系统设计
4.1 总体目标
4.2 系统架构设计
4.3 总体结构设计
4.4 功能模块设计
4.5 数据库设计
4.5.1 概念设计
4.5.2 逻辑设计
第5章 系统实现
5.1 普通用户模块的实现
5.1.1 注册登录模块的实现
5.1.2 首页模块的实现
5.1.3 通知公告模块的实现
5.1.4 商城管理模块的实现
5.1.5 个人首页模块的实现
5.2 销售用户模块的实现
5.2.1 后台首页模块的实现
5.2.2 入库记录管理模块的实现
5.2.3 出库记录管理模块的实现
5.3 管理员模块的实现
5.3.1 后台首页模块的实现
5.3.2 水果信息管理模块的实现
5.3.3 系统管理模块的实现
5.3.4 资源管理模块的实现
5.3.5 商城管理模块的实现
第6章 系统测试
6.1 测试目的
6.2 检测方式
6.3 测试内容
6.4 测试结果
结 论
参考文献
致 谢
第1章 绪论
1.1 研究背景与意义
随着信息技术和电子商务的不断发展,传统零售行业正逐步向信息化与数字化方向转型,水果超市作为日常消费的重要组成部分,也面临着管理方式升级的需求。然而,在实际经营过程中,许多水果超市仍采用人工或半信息化管理模式,存在商品信息管理混乱、库存数据更新不及时、订单处理效率低以及业务流程不规范等问题。这些问题不仅影响了超市的运营效率,也在一定程度上降低了用户的购物体验。同时,在商品入库、出库及销售过程中,由于缺乏统一的信息管理平台,容易出现数据不一致、库存失衡以及管理难度增加等情况。因此,如何利用现代信息技术提升水果超市的管理水平,成为当前亟需解决的重要问题之一。
基于此,本文设计并实现了一种基于SSM框架的水果超市管理系统。该系统通过整合商品管理、库存管理、订单管理以及公告与资讯发布等功能,实现水果超市从商品采购、库存管理到销售服务的全过程信息化管理。同时,系统结合普通用户、销售用户与管理员三类角色的权限划分,实现了业务操作与系统管理的有效分离,不仅提高了系统的安全性,也增强了各角色之间的协同效率。用户可以便捷地完成商品浏览与购买,销售人员能够高效处理库存与订单,而管理员则能够对系统整体进行统一监管。
本系统的研究与实现具有重要的现实意义。首先,通过信息化手段规范了水果超市的业务流程,提升了工作效率;其次,实现了数据的集中管理与共享,有助于提高库存管理的准确性与可追溯性;最后,该系统为中小型水果超市提供了一种低成本、高效率的信息化解决方案,对推动其向规范化、智能化方向发展具有积极作用,同时也为相关管理系统的设计提供了参考价值。
1.2 国内外研究现状
在国内,孙鹏程等人在《基于SSM+JSP的水果超市管理系统的设计与实现》研究中,基于JSP技术并结合MySQL数据库[1],设计并实现了一套水果超市管理系统,完成了系统需求分析、概要设计与详细设计等内容,实现了水果商品管理及系统基本业务功能,为水果超市的信息化管理提供了技术支持与实现路径。陈彦婷等人在《百果园水果连锁超市供应链风险管理研究》中,基于AHP层次分析法与模糊综合评价法(FAHP)[2],构建了水果连锁超市供应链风险评价模型,实现了对供应链风险的量化评估,并提出了相应的风险控制措施,为提升水果超市供应链管理水平提供了理论依据。陈颖在《Y水果超市库存管理优化》研究中,采用多准则ABC分类法、模糊聚类分析及EOQ模型等技术[3],对水果库存进行分类管理与优化控制,实现了库存结构优化与订货策略改进,从而有效提升了库存管理效率并降低了企业运营成本。崔祥在《基于Java超市可视化管理系统设计》中,基于Java技术开发了超市可视化管理系统[4],通过引入计算机技术实现了超市运营数据的可视化展示与管理功能,从而提升了管理人员的决策能力和超市运营管理水平。张静等人在《基于Java的超市进销存管理系统的设计与实现》中,采用Java语言结合MySQL数据库开发了进销存管理系统[5],实现了进货管理、销售管理、库存管理等功能,并通过角色权限控制提高了系统管理效率和数据处理能力,为小型超市提供了智能化管理方案。刘洁在《石家庄市Y超市水果库存管理研究》中,基于AHP-ABC分类法与改进EOQ模型[6],对水果库存进行分类与控制优化,实现了库存精细化管理和订货策略优化,有效降低了库存积压与损耗率,提高了超市整体运营效率。谭慧敏等人在《基于系统动力学的连锁超市多级库存优化研究》中,基于系统动力学理论并借助Vensim仿真平台[7],构建了连锁超市多级库存模型,实现了库存系统的动态分析与优化,为提升库存信息化管理水平提供了方法支持。
在国外,Thomsen等人在关于促进超市水果和蔬菜销售的研究中,基于协同设计干预方法并结合实际销售策略[8],通过优化商品摆放位置、提升产品可见性及开展促销活动,实现了水果和蔬菜销售增长的功能,从而有效改善了消费者的购买行为并促进健康饮食环境的构建。Chen在关于D超市生鲜库存管理的研究中,基于库存管理分析方法并结合实际运营数据[9],对生鲜商品库存现状进行了系统分析,识别出库存管理中存在的高损耗与周转效率低等问题,并提出针对性的优化策略,实现了库存控制与运营效率提升的功能,为生鲜超市库存管理提供了改进思路。Wang在冷链物流库存管理优化研究中,基于作业分类法(ABC分类法)并结合超市水果库存实际情况[10],对冷链物流环境下的库存特征进行了分析,对库存中的多种水果进行分类管理,实现了库存结构优化与管理策略改进功能,从而有效提升了冷链库存管理效率并降低损耗风险。
1.3 研究内容
本课题主要围绕基于SSM框架的水果超市管理系统的设计与实现展开研究。首先,对系统的实际应用需求进行分析,明确普通用户、销售用户和管理员三类角色的功能需求,并在此基础上完成系统的总体架构设计。其次,结合Java开发语言与SSM框架技术,对系统的各功能模块进行详细设计与实现,包括用户管理、商品管理、订单管理以及库存出入库管理等核心模块。同时,设计合理的数据库结构,实现系统数据的有效存储与管理。最后,通过系统测试对各功能模块进行验证,确保系统运行的稳定性与可靠性,从而实现水果超市业务流程的信息化与规范化管理。
1.4 论文结构与章节安排
本文共分为六章及结论部分,具体章节安排如下:
第一章:绪论。本章主要介绍本课题的研究背景与意义,分析当前水果超市管理系统的发展现状,并对国内外相关研究进行综述,明确本系统的研究内容,同时对论文整体结构进行说明。
第二章:相关技术介绍。本章主要介绍系统开发所涉及的关键技术,包括B/S架构模式、Java开发语言、MySQL数据库以及SSM框架的基本原理与特点,为系统的设计与实现提供技术基础。
第三章:系统分析。本章从技术可行性、经济可行性和操作可行性等方面对系统进行分析,并对系统的功能需求与性能需求进行详细说明,同时通过系统操作流程图、登录流程图和注册流程图对系统业务流程进行设计。
第四章:系统设计。本章主要对系统的总体目标、系统架构及整体结构进行设计,明确各功能模块的划分,并对数据库进行概念设计与逻辑设计,为系统实现提供理论依据。
第五章:系统实现。本章详细介绍系统各功能模块的实现过程,包括普通用户模块、销售用户模块以及管理员模块,重点阐述注册登录、商城管理、库存管理及系统管理等核心功能的实现方式。
第六章:系统测试。本章对系统进行全面测试,包括测试目的、测试方法、测试内容及测试结果分析,验证系统的功能完整性、稳定性与安全性。
第七章:结论部分:对全文的研究与实现工作进行总结,分析系统存在的不足,并对未来的优化方向和发展趋势进行展望。
第2章 相关技术介绍
2.1 B/S架构
相比于之前的结构,BS(Browser/Server)是一种更加简便的系统设计方式。通过使用Web服务器来实现信息的传输和交换。只要安装了网页浏览器作为用户端,就可以实现在线工作的"减肥"效应,无需再担心频繁更新软件的情况出现。
[请替换图片]
图2-1 B/S模式三层结构图
2.2 java语言
Java是一种高级编程语言,具有跨平台性、面向对象和可移植性等重要特点。其跨平台性通过Java虚拟机实现,使得开发人员可以在不同操作系统上运行相同的Java程序,提高了代码的可移植性和开发效率。作为面向对象的语言,Java支持封装、继承和多态等核心概念,使得代码更加模块化、可读性强,易于维护和扩展。此外,Java拥有丰富的类库和API,提供了许多常用功能的实现,如文件操作、网络通信和图形界面等,大大简化了开发过程。Java还具备良好的安全性和健壮性,内置的安全机制保护程序免受恶意攻击,垃圾回收机制自动管理内存分配,减少了内存泄漏和程序崩溃的风险。总之,Java语言在软件开发领域广受欢迎,通过其强大的特性和广泛的应用领域,为开发人员提供了高效、稳定和安全的编程环境。
2.3 MySQL数据库
MySQL是一种开源的关系型数据库管理系统,被广泛应用于各种规模的应用程序和网站。作为最流行的数据库之一,MySQL以其高性能、可靠性和易用性而闻名。
MySQL使用标准的SQL语言进行数据操作和查询,提供了丰富的功能和特性。它支持多种数据类型,包括整数、浮点数、字符串、日期时间等,并提供了强大的索引和查询优化功能,以提高数据检索和处理的效率。此外,MySQL还支持事务处理,保证了数据的一致性和完整性。
MySQL具有良好的扩展性和可定制性。它可以在不同的平台上运行,包括Windows、Linux和Mac OS等,同时也支持多种编程语言的接口,如Java、Python和PHP等。MySQL还提供了集群和分布式部署的解决方案,以满足大规模应用的需求。
除了功能和性能方面的优势,MySQL还以其开源的特性受到广泛关注。作为开源软件,MySQL的源代码对用户开放,使用户能够自由修改和定制数据库系统以适应自己的需求。此外,MySQL拥有庞大的开发者社区和活跃的技术支持,用户可以从中获取帮助和分享经验。
2.4 SSM框架简介
SSM框架是Spring、SpringMVC与MyBatis三大开源技术的整合方案,其中SpringMVC为Spring框架的子模块,该框架因架构轻量、适配性强,广泛应用于数据源结构相对简单的Web项目开发。Spring作为框架核心,承担着组件管理与模块粘合的关键作用,其核心设计思想为控制反转(IoC),通过该思想可实现对象实例化、依赖关系管理等操作的自动化,开发者无需手动创建对象,仅需通过配置文件或注解完成Bean的定义与依赖注入,有效降低了模块间的耦合度。
框架各组件分工明确:SpringMVC负责请求拦截与分发,核心组件DispatcherServlet接收前端请求后,通过HandlerMapping完成请求路径与Controller的匹配,最终由Controller执行具体的业务逻辑处理;MyBatis作为持久层框架,对JDBC进行了轻量级封装,简化了数据库底层操作。其操作核心为SqlSessionFactory实例,通过配置文件关联实体类对应的Mapper文件,Mapper文件中预设了数据库交互所需的SQL语句映射,在实际交互过程中,通过SqlSessionFactory获取SqlSession实例,进而执行对应的SQL操作。
SSM框架采用分层架构设计,请求处理流程清晰有序:前端页面发送HTTP请求后,由SpringMVC的DispatcherServlet接收并完成请求分发,匹配到对应的Controller;Controller调用业务层组件处理核心业务逻辑,业务层向持久层发起数据操作请求;持久层通过MyBatis与数据库完成数据交互,将交互结果反向传递至业务层、Controller;最终由Controller调用视图组件,将处理结果展示给前端用户。
第3章 系统分析
3.1 可行性分析
系统分析是项目开发的关键步骤,通过系统分析可以深入了解系统主要用户的基本需求,这是项目开发的基础。在系统分析阶段,还需要进行可行性分析,包括技术可行性、经济可行性等方面的评估,以确保项目的可行性和可持续性。此外,系统分析还包括对项目具体需求的分析,通常通过用户用例图等手段来实现。这些分析将为项目的详细设计和开发提供重要参考,确保项目能够满足用户需求并达到预期目标。
3.1.1 技术可行性
基于Java语言、ssm框架和Mysql数据库的水果超市管理系统具有较高的技术可行性。Java作为跨平台编程语言,具有良好的稳定性和可靠性,适合大型系统的开发;ssm框架简化了系统搭建和配置过程,提高了开发效率;Mysql作为开源的关系型数据库,提供了稳定的数据存储和管理能力。这些技术的综合应用能够支持系统的功能实现和运行。
3.1.2 经济可行性
基于开源技术的水果超市管理系统具有较高的经济可行性。Java、ssm和Mysql等技术都是免费开源的,减少了系统开发和维护的成本;同时,采用开源技术也降低了系统的运营成本,提高了系统的经济效益。此外,系统的功能设计合理,操作简便,有助于提高用户满意度和使用效率,进一步提升系统的经济性。
3.1.3 操作可行性
水果超市管理系统在用户操作方面具有较高的可行性。系统采用简洁直观的界面设计,结合清晰规范的操作流程,使普通用户、销售用户及管理员能够快速完成商品浏览、订单管理、库存维护及系统管理等操作,有效降低了用户的学习成本和使用难度。同时,系统功能模块划分合理,操作逻辑清晰,并提供必要的使用说明和技术支持,建立了基本的反馈机制,能够及时帮助用户解决使用过程中遇到的问题,从而保证系统操作的便捷性与良好的用户体验。
3.2 系统功能需求
普通用户用例图如下所示。

图3-1普通用户用例图
销售用户用例图如下所示。

图3-2销售用户用例图
管理员用例图如下所示。

图3-3管理员用例图
表3-4水果超市用例描述
| 前置条件 | 用户已成功登录系统,并具备访问水果超市或商城管理功能的权限 |
| 主要流程 | 1. 用户进入水果超市页面或商城管理模块;2. 系统展示水果商品列表,包括商品名称、价格、库存及分类信息;3. 用户可点击具体商品查看详细信息,如规格、描述及评价;4. 用户根据需求进行加入购物车或下单等操作;5. 操作完成后,用户可返回商品列表或进入其他功能模块 |
| 备选流程 | – 若用户未获得访问权限,系统提示联系管理员进行授权;- 若商品库存不足,系统提示用户调整购买数量或选择其他商品;- 用户在操作过程中遇到问题时,可通过系统反馈功能提交问题 |
| 后置条件 | 用户成功浏览或操作水果商品信息,完成购物或相关管理操作 |
表3-5个人信息管理用例描述
| 前置条件 | 用户已成功登录系统,并具有个人信息管理的权限 |
| 主要流程 | 1. 用户进入系统个人信息页面; 2. 用户查看个人信息,包括姓名、联系方式等; 3. 用户可以编辑和更新个人信息; 4. 用户保存修改后的个人信息 |
| 备选流程 | – 如果用户没有个人信息管理权限,系统提示联系管理员获取权限; – 用户遇到问题时,可通过系统提供的反馈渠道向管理员反馈 |
| 后置条件 | 用户成功管理和更新了个人信息,确保个人信息的准确性和完整性 |
表3-6用户管理用例描述
| 前置条件 | 管理员已成功登录系统,并具有用户管理权限 |
| 主要流程 | 1. 管理员进入系统用户管理页面; 2. 管理员查看用户列表,包括用户信息; 3. 管理员进行用户信息的添加、编辑和删除操作; 4. 管理员重置用户密码或权限设置; 5. 管理员保存修改后的用户信息 |
| 备选流程 | – 如果管理员没有用户管理权限,系统提示联系超级管理员获取权限; – 管理员遇到问题时,可通过系统提供的反馈渠道向超级管理员反馈 |
| 后置条件 | 管理员成功管理和更新了用户信息,确保用户信息的准确性和安全性 |
表3-7水果信息管理用例描述
| 前置条件 | 用户已成功登录系统,并具有水果信息管理权限 |
| 主要流程 | 1. 用户进入水果信息管理页面;2. 用户填写或编辑水果编号、名称、价格、库存及分类等信息;3. 用户提交水果信息数据;4. 系统对数据进行校验并保存至数据库;5. 用户确认信息无误后完成水果信息的新增或更新操作 |
| 备选流程 | – 若用户无管理权限,系统提示联系管理员;- 若信息填写错误,系统提示重新输入;- 操作过程中出现问题时,用户可通过反馈功能提交问题 |
| 条件 | 用户成功录入或更新水果信息,确保商品数据的完整性与准确性 |
3.3 系统性能需求
系统性能需求是指系统在运行过程中需要满足的各项性能指标与技术要求,对于水果超市管理系统而言,保证系统在多用户环境下高效、稳定、安全运行具有重要意义。
| 响应时间 | 系统应能够快速响应用户操作,在商品查询、订单处理及库存管理等功能中保持较低延迟,提高用户使用体验。 |
| 并发用户数 | 系统应支持多用户同时在线访问,确保在一定并发情况下系统依然能够稳定运行且不发生卡顿。 |
| 系统可靠性 | 系统应具备较高的稳定性,能够长时间持续运行,避免出现系统崩溃或数据异常等问题。 |
| 安全性 | 系统应通过权限控制、数据加密等机制,保障用户信息及业务数据的安全,防止非法访问和数据泄露。 |
| 数据处理能力 | 系统应具备良好的数据处理能力,能够高效完成商品信息、订单数据及库存数据的存储与处理。 |
| 系统扩展性 | 系统应具备良好的扩展能力,支持后续功能增加与系统升级,以适应业务发展需求。 |
| 用户体验 | 系统界面应设计简洁美观,操作流程清晰合理,便于不同角色用户快速上手使用。 |
| 日志记录和监控 | 系统应具备完善的日志记录与运行监控功能,方便管理员进行系统维护与问题排查。 |
3.4 系统流程设计
3.4.1 系统操作流程图
用户通过浏览器访问系统地址,进入应用程序的主界面。用户在系统主页根据自身情况选择注册或登录操作。对于尚未注册的用户,可点击注册入口完成账号创建流程;而已拥有账户的用户则可跳转至登录页面,输入正确的用户名和密码进行身份验证。成功登录后,用户将进入系统的功能操作界面,在此界面下可根据系统提示逐步执行相关业务操作。系统操作流程图如下图所示。

图3-8 系统操作流程图
3.4.2 系统登录流程图
用当用户访问登录页面并输入其用户名与密码后,系统首先会执行初步的输入验证,确保所提供的用户名和密码字段非空。在用户点击“登录”按钮后,系统会再次确认所输入的用户名和密码是否正确。验证顺利完成后,用户即可成功登录,并被引导至个人主页;若验证未能通过,系统则会显示错误提示,并返回登录页面要求用户重新尝试。登录流程图如下图所示。

图3-9 系统登录流程图
3.4.3 系统注册流程图
用用户选择“注册”选项后,界面会转向注册页,在此界面会要求用户填写一系列必要的注册资料,包括用户名、密码、电子邮箱及手机号等,并提交给系统。系统会验证提交的注册资料,确保所有必填项目均已完整填写,所设密码达到规定的复杂度标准,并检查用户名和邮箱是否已被使用。当所有验证步骤均顺利完成且无误,系统将向用户弹出注册成功的确认消息。用户注册流程图如下图所示。

图3-10 系统注册流程图
第4章 系统设计
4.1 总体目标
水果超市管理系统的总体目标是多方面的。首先,系统旨在提升商品与库存管理效率,通过信息化手段对水果信息、库存数据及订单信息进行统一管理,使用户能够高效完成商品管理与销售操作,减少数据重复录入与查询时间。其次,系统致力于优化业务流程,通过规范商品采购、入库、销售及配送等流程,提高超市整体运营效率,避免库存混乱与数据不一致问题。此外,系统注重提升用户体验,通过简洁直观的界面设计和清晰的操作流程,使普通用户、销售用户及管理员能够快速上手并高效使用系统。同时,系统强调数据安全性,采用权限控制与数据管理机制,保障用户信息及业务数据的安全,防止数据泄露与非法访问。另外,系统还旨在提高管理水平,通过数据统计与记录功能,为管理人员提供决策支持。最后,系统具备良好的扩展性,能够根据业务发展需求进行功能扩展与系统升级。
4.2 系统架构设计
系统采用前后端分离的B/S架构,从上到下依次是前端、后端、中间件和数据库层。用户界面层用Vue.js框架来创建单个页面的应用,使用Element UI组件库来搭建起统一美观的交互界面,Axios库来完成后端与前端之间的HTTP通信工作,Vue Router管理前端路由跳转。应用服务层采用SSM作为核心,从前端接收请求,并由Spring MVC对请求进行分发,业务逻辑放在Service层中封装,使用MyBatis作持久层,再通过拦截器来实现接口访问权限的控制。数据持久层用MySQL数据库来保存所有的业务数据,使用连接池的方式来管理数据库连接,保证数据操作的效率以及事务的一致性。系统支持层包含项目开发及部署环境,使用Maven来管理依赖和项目的构建,在Java环境中开发,用Git进行版本控制,最后把打包好的应用部署到Tomcat服务器上。该架构层次分明,技术选择得当,给系统提供稳定的高效运行环境。整个系统的架构图如图4-1所示。

图4-1 系统架构图
4.3 总体结构设计
通过整体功能模块设计,我们将根据需求分析的结果,将系统的功能划分为不同的模块。每个模块负责实现特定的功能,并与其他模块进行协作。我们将详细定义每个模块的输入、输出、处理逻辑和相互依赖关系。
系统的功能结构图如下图4-2所示。
图4-2 系统功能结构图
4.4 功能模块设计
1.登录模块:在水果超市管理系统中,登录模块是用户进入系统的主要入口,主要实现用户名和密码的身份验证功能。用户需要输入正确的账号和密码才能成功登录系统,系统会对输入的信息进行校验,并根据普通用户、销售用户和管理员等不同角色分配相应权限,从而保证系统访问的安全性与数据的保密性。
2.水果信息管理模块:水果信息管理模块用于录入、查询和维护水果商品的基本信息,包括水果编号、水果名称、价格、库存、规格及分类等内容。该模块实现水果商品信息的集中管理,方便销售用户和管理员及时更新商品资料,提高商品管理的规范性与准确性。
3.入库记录管理模块:入库记录管理模块用于记录水果商品的入库信息,包括入库单号、水果编号、水果名称、入库时间、入库数量及备注等内容。通过该模块可以对水果的补货和库存增加情况进行统一管理,便于销售用户和管理员及时掌握库存变动情况。
4.出库记录管理模块:出库记录管理模块用于记录水果商品的出库信息,包括出库单号、水果编号、水果名称、出库时间、出库数量及备注等内容。该模块可以完整反映水果商品的出库过程,便于管理人员掌握库存减少情况,从而提高库存管理的准确性与可追溯性。
5.商城管理模块:商城管理模块用于实现水果商品展示、购物车管理、订单管理、地址管理及优惠券管理等功能。通过该模块,普通用户可以完成商品浏览、下单购买和订单查询等操作,销售用户和管理员也可以对商城业务进行统一管理,从而提高系统的服务效率和业务处理能力。
6.通知公告模块:通知公告模块用于发布和管理系统中的公告信息,包括公告标题、公告内容及发布时间等。通过该模块,管理员可以及时向用户发布活动通知、系统消息及相关说明,方便用户了解平台动态,提高信息传递的及时性。
7.资源管理模块:资源管理模块主要用于管理水果资讯及资讯分类等内容,包括资讯标题、资讯内容、发布时间和分类信息等。该模块实现了水果相关资讯的统一发布与维护,丰富了系统内容,也方便用户了解水果知识和行业信息。
8.系统用户管理模块:系统用户管理模块用于对管理员、普通用户和销售用户等系统角色进行统一管理,包括用户信息的新增、查询、修改和删除等操作。该模块有助于管理员对系统用户进行集中维护,提高用户管理的规范性和系统运行的有序性。
9.系统管理模块:系统管理模块主要用于维护系统的基础配置信息,如轮播图管理等内容。通过该模块,管理员可以对系统首页展示内容进行设置和更新,从而优化页面显示效果,提升系统整体美观性和用户体验。
10.权限管理模块:权限管理模块用于对不同角色用户分配相应的功能权限和操作权限。通过该模块,系统能够实现分级管理,确保不同用户只能访问各自权限范围内的功能,从而提高系统的安全性和管理效率。
11.操作日志模块:操作日志模块用于记录系统用户在后台的主要操作行为,包括操作时间、操作内容及操作人员等信息。通过该模块,管理员可以对系统运行情况进行跟踪和审计,便于发现问题并及时进行维护处理。
4.5 数据库设计
4.5.1 概念设计
数据库概念结构设计主要涉及数据库的实体和实体之间的关系。通过实体-关系模型或者其他适当的模型,我们将定义系统中涉及的各个实体以及它们之间的联系。下面是整个系统的总E-R关系图。
总体ER图如下图所示。

图4-3 总体ER图
4.5.2 逻辑设计
数据库逻辑结构设计则是在概念结构的基础上,进行具体的数据库表设计。我们将定义每个表的结构、字段和约束,并建立表与表之间的关系。
表 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-coupon(优惠券)
| 1 | coupon_id | int | 是 | 是 | 优惠券ID | |
| 2 | coupon_name | varchar | 255 | 否 | 否 | 优惠券名称 |
| 3 | coupon_price | int | 否 | 否 | 优惠券价格 | |
| 4 | coupon_price1 | int | 否 | 否 | 优惠券券后价格 | |
| 5 | coupon_time | varchar | 255 | 否 | 否 | 优惠券时间 |
| 6 | coupon_type | varchar | 255 | 否 | 否 | 优惠券类型 |
| 7 | coupon_user_auth | varchar | 255 | 否 | 否 | 优惠券用户 |
| 8 | coupon_user_id | int | 否 | 否 | 优惠券用户ID | |
| 9 | create_time | timestamp | 否 | 否 | 创建时间 | |
| 10 | update_time | timestamp | 否 | 否 | 更新时间 |
表 4-11-coupon_user(用户优惠券)
| 1 | id | int | 是 | 是 | 用户优惠券ID | |
| 2 | user_id | int | 否 | 否 | 用户ID | |
| 3 | coupon_id | int | 否 | 否 | 优惠券ID | |
| 4 | is_use | int | 否 | 否 | 是否使用 | |
| 5 | coupon_user_id | int | 否 | 否 | 用户优惠券ID | |
| 6 | create_time | datetime | 否 | 否 | 创建时间 | |
| 7 | update_time | timestamp | 否 | 否 | 更新时间 |
表 4-12-fruit_information(水果信息)
| 1 | create_by | int | 是 | 否 | 创建用户ID | |
| 2 | create_time | datetime | 是 | 否 | 创建时间 | |
| 3 | fruit_coding | varchar | 64 | 是 | 是 | 水果编码 |
| 4 | fruit_information_id | int | 是 | 是 | 水果信息ID | |
| 5 | fruit_inventory | double | 否 | 否 | 水果库存 | |
| 6 | fruit_specifications | varchar | 64 | 否 | 否 | 水果规格 |
| 7 | inbound_record_limit_times | int | 是 | 否 | 入库限制次数 | |
| 8 | introduction_of_fruit | text | 65535 | 否 | 否 | 水果简介 |
| 9 | name_of_fruit | varchar | 64 | 是 | 否 | 水果名称 |
| 10 | outbound_record_limit_times | int | 是 | 否 | 出库限制次数 | |
| 11 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-13-fruit_supermarket(水果超市)
| 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 | comment_len | int | 是 | 否 | 评论数 | |
| 15 | create_by | int | 是 | 否 | 创建用户ID | |
| 16 | create_time | datetime | 是 | 否 | 创建时间 | |
| 17 | freshness | varchar | 64 | 否 | 否 | 新鲜度 |
| 18 | fruit_supermarket_id | int | 是 | 是 | 水果超市ID | |
| 19 | hits | int | 是 | 否 | 点击数 | |
| 20 | list_status | smallint | 否 | 否 | 上架状态(0:下架;1上架) | |
| 21 | sales_users | int | 否 | 否 | 销售用户 | |
| 22 | sku | longtext | 4294967295 | 否 | 否 | 规格 |
| 23 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-14-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-15-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-16-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-17-inbound_record(入库记录)
| 1 | inbound_record_id | int | 是 | 是 | 入库记录ID | |
| 2 | receipt_document_number | varchar | 64 | 否 | 否 | 入库单号 |
| 3 | fruit_coding | varchar | 64 | 否 | 否 | 水果编码 |
| 4 | name_of_fruit | varchar | 64 | 否 | 否 | 水果名称 |
| 5 | receipt_time | date | 否 | 否 | 入库时间 | |
| 6 | sales_users | int | 否 | 否 | 销售用户 | |
| 7 | receipt_quantity | double | 否 | 否 | 入库数量 | |
| 8 | fruit_specifications | varchar | 64 | 否 | 否 | 水果规格 |
| 9 | receipt_remarks | text | 65535 | 否 | 否 | 入库备注 |
| 10 | create_time | datetime | 是 | 否 | 创建时间 | |
| 11 | create_by | int | 是 | 否 | 创建用户ID | |
| 12 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 13 | extra | text | 65535 | 否 | 否 | 额外信息 |
| 14 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 15 | source_id | int | 否 | 否 | 来源ID | |
| 16 | source_user_id | int | 否 | 否 | 来源用户 |
表 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 | message_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-operation_log(操作日志表)
| 1 | operation_log_id | int | 是 | 是 | 操作日志ID | |
| 2 | user_group | varchar | 64 | 否 | 否 | 用户角色 |
| 3 | user_name | varchar | 64 | 否 | 否 | 用户账号 |
| 4 | routes | varchar | 64 | 否 | 否 | 模块名称 |
| 5 | create_time | datetime | 是 | 否 | 创建时间 | |
| 6 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-22-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-23-order_after_sale(订单售后)
| 1 | order_after_sale_id | int | 是 | 是 | 订单售后ID | |
| 2 | order_id | int | 是 | 否 | 订单ID | |
| 3 | order_number | varchar | 64 | 否 | 否 | 订单号 |
| 4 | goods_id | mediumint | 是 | 否 | 商品id | |
| 5 | title | varchar | 255 | 否 | 否 | 商品标题 |
| 6 | price | double | 是 | 否 | 价格 | |
| 7 | price_ago | double | 是 | 否 | 原价 | |
| 8 | num | int | 是 | 否 | 数量 | |
| 9 | price_count | double | 是 | 否 | 总价 | |
| 10 | user_id | int | 是 | 否 | 买家ID | |
| 11 | merchant_id | mediumint | 是 | 否 | 商家ID | |
| 12 | state | varchar | 16 | 是 | 否 | 订单状态:待付款,待发货,待签收,已签收,待退款,已退款,已拒绝,已完成 |
| 13 | after_state | varchar | 16 | 否 | 否 | 售后状态:未审核,未通过,已通过 |
| 14 | after_state_reply | varchar | 255 | 否 | 否 | 售后回复 |
| 15 | type | varchar | 255 | 否 | 否 | 售后类型 |
| 16 | content_desc | varchar | 255 | 否 | 否 | 售后内容 |
| 17 | imgs | varchar | 1000 | 否 | 否 | 售后凭证 |
| 18 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 19 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-24-ordinary_user(普通用户)
| 1 | contact_number | varchar | 16 | 否 | 否 | 联系号码 |
| 2 | create_by | int | 是 | 否 | 创建用户ID | |
| 3 | create_time | datetime | 是 | 否 | 创建时间 | |
| 4 | examine_state | varchar | 16 | 是 | 否 | 审核状态 |
| 5 | ordinary_user_id | int | 是 | 是 | 普通用户ID | |
| 6 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 7 | user_gender | varchar | 64 | 否 | 否 | 用户性别 |
| 8 | user_id | int | 是 | 否 | 用户ID | |
| 9 | user_name | varchar | 64 | 否 | 否 | 用户姓名 |
表 4-25-outbound_record(出库记录)
| 1 | outbound_record_id | int | 是 | 是 | 出库记录ID | |
| 2 | outbound_order_number | varchar | 64 | 否 | 否 | 出库单号 |
| 3 | fruit_coding | varchar | 64 | 否 | 否 | 水果编码 |
| 4 | name_of_fruit | varchar | 64 | 否 | 否 | 水果名称 |
| 5 | outbound_time | date | 否 | 否 | 出库时间 | |
| 6 | sales_users | int | 否 | 否 | 销售用户 | |
| 7 | outbound_quantity | double | 否 | 否 | 出库数量 | |
| 8 | fruit_specifications | varchar | 64 | 否 | 否 | 水果规格 |
| 9 | outbound_note | text | 65535 | 否 | 否 | 出库备注 |
| 10 | create_time | datetime | 是 | 否 | 创建时间 | |
| 11 | create_by | int | 是 | 否 | 创建用户ID | |
| 12 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 13 | extra | text | 65535 | 否 | 否 | 额外信息 |
| 14 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 15 | source_id | int | 否 | 否 | 来源ID | |
| 16 | source_user_id | int | 否 | 否 | 来源用户 |
表 4-26-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-27-sales_users(销售用户)
| 1 | sales_users_id | int | 是 | 是 | 销售用户ID | |
| 2 | employee_name | varchar | 64 | 否 | 否 | 员工姓名 |
| 3 | employee_gender | varchar | 64 | 否 | 否 | 员工性别 |
| 4 | contact_number | 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-28-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-29-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-30-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-31-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章 系统实现
5.1 普通用户模块的实现
5.1.1 注册登录模块的实现
注册登录:用户可以通过填写基本信息完成账号注册,并使用账号密码登录系统以进行后续购物操作。界面如下图所示。

图5-1 注册登录界面
5.1.2 首页模块的实现
首页:系统首页用于集中展示轮播图、推荐商品以及平台重要信息,方便用户快速了解商城内容。界面如图所示。

图5-2首页界面
5.1.3 通知公告模块的实现
通知公告:用户可以浏览系统发布的各类通知公告,及时获取活动信息和平台动态。界面如图所示。

图5-3通知公告界面
5.3.5 商城管理模块的实现
商城管理:用户可在个人中心统一管理购物车商品、订单信息、收货地址及优惠券等内容,实现完整购物流程管理。界面如下图所示。

图5-4商城管理界面
5.1.5 个人首页模块的实现
个人首页:系统展示用户的基本信息、订单情况及个人行为数据,方便用户了解个人使用情况。界面如图所示。

图5-5个人首页界面
5.2 销售用户模块的实现
5.3.1 后台首页模块的实现
后台首页:后台首页展示销售数据、库存情况及订单处理概况,帮助销售人员掌握业务动态。界面如下图所示。

图5-6后台首页界面
5.2.2 入库记录管理模块的实现
入库记录管理:销售用户可录入水果入库信息,并对入库记录进行管理,实现库存增加的记录与追踪。界面如下图所示。

图5-7入库记录管理界面
5.2.3 出库记录管理模块的实现
出库记录管理:销售用户可录入水果出库信息,并对出库记录进行管理,实现库存减少的准确控制。界面如下图所示。

图5-8出库记录管理界面
5.3 管理员模块的实现
5.3.1 后台首页模块的实现
后台首页:后台首页用于集中展示系统的整体运行情况,包括用户数量、订单数量、商品统计及库存情况等关键数据,帮助管理员快速掌握系统运行状态。界面如下图所示。

图5-9后台首页界面
5.3.2 水果信息管理模块的实现
水果信息管理:管理员可以对水果商品进行全面管理,包括商品信息的新增、修改、删除、查询以及上下架控制,确保商城商品数据的准确性与完整性。界面如图所示。

图5-10水果信息管理界面
5.3.3 系统管理模块的实现
系统管理:管理员可以对系统基础配置进行维护,如首页轮播图的添加、修改和删除操作,从而优化系统界面展示效果并提升用户体验。界面如下图所示。

图5-11系统管理界面
5.3.4 资源管理模块的实现
资源管理:管理员可以对水果资讯及其分类进行统一管理,包括资讯内容的发布、修改、删除以及分类维护,从而提升系统内容的丰富性与规范性。界面如下图所示。

图5-12资源管理界面
5.3.5 商城管理模块的实现
商城管理:管理员可以对商城中的核心业务进行统一管理,包括商品信息、分类列表、订单信息、订单配送、优惠券及售后服务等内容,从整体上保障商城业务的正常运行。界面如下所示。

图5-13商城管理界面
第6章 系统测试
6.1 测试目的
在软件开发的最后一个阶段,系统测试起着至关重要的作用。即使是经验丰富的系统开发工程师,也难以保证开发出来的系统完美无缺,因此系统测试是必不可少的环节。
系统测试的目的是通过对系统进行全面而细致的测试,发现和修复潜在的问题和漏洞。这些问题可能包括功能错误、性能瓶颈、安全漏洞等。通过及时检测和解决这些问题,系统测试可以提高系统的稳定性和可靠性,为后期的系统维护性提供良好的支持。
通过系统测试,开发人员也能够建立对系统的信心。他们可以验证系统的各个方面,确认系统是否符合预期的功能和性能要求。这种自信将为后续系统版本的更新和改进提供基础,并为用户提供更优质的使用体验。
6.2 检测方式
本系统的检测主要采用黑盒测试的方法进行。测试人员将系统视为一个不可见内部结构的整体,无需了解具体代码实现,而是依据系统需求分析说明书及功能设计文档,对系统输入与输出之间的对应关系进行验证。在测试过程中,分别模拟普通用户、销售用户和管理员三类角色,对其各自功能进行全面操作测试,包括水果信息管理、入库记录管理、出库记录管理、商城管理及系统管理等功能。同时,通过设计正常数据、边界数据以及异常数据等多种测试用例,重点检验系统功能的正确性、界面的友好性以及业务流程的完整性。通过该方法可以有效发现系统中存在的功能缺陷、数据异常及流程问题,从而保证系统运行稳定,并满足用户实际使用需求。
6.3 测试内容
该模块测试的目的主要是检验系统在水果商品管理与商城业务处理方面的准确性与完整性,重点关注数据录入、查询展示及业务流程的连贯性。表6-1为水果信息管理测试用例表。
表6-1水果信息管理测试用例表
| 信息录入 | 输入完整水果信息并提交 | 系统成功保存水果信息并显示在列表中 | 符合预期 |
| 信息查询 | 输入水果名称进行搜索 | 系统返回匹配的水果信息列表 | 符合预期 |
| 详情查看 | 点击水果记录查看详情 | 页面完整展示水果各项信息 | 符合预期 |
本模块测试旨在检验商城管理功能的完整性与业务流程的顺畅性,确保购物流程及订单处理正常。商城管理测试如表6-2所示。
表6-2商城管理测试用例表
| 商品浏览 | 验证商品展示功能 | 进入商城查看商品列表 | 正确展示所有商品信息 | 一致 |
| 加入购物车 | 检查购物车功能 | 选择商品加入购物车 | 商品成功加入购物车 | 一致 |
| 订单提交 | 验证下单流程 | 提交订单信息 | 系统成功生成订单 | 测试成功 |
本模块测试用于验证评论管理功能的正确性,确保用户评价数据能够正常录入与展示。评论管理测试见表6-3。
表6-3评论管理测试用例表
| 1 | 评论提交 | 输入评论内容并提交 | 系统成功保存评论信息 | 符合预期 |
| 2 | 评论查看 | 查看评论详情 | 页面展示完整评论内容 | 符合预期 |
6.4 测试结果
本章从水果信息管理、商城管理及评论管理三个主要功能模块入手,对系统进行了全面测试。测试结果表明,各模块功能均能够按照设计要求正常运行。水果信息管理模块在信息录入、查询及详情查看方面表现稳定,数据展示完整且准确。商城管理模块在商品浏览、购物车及订单处理等功能中运行流畅,业务流程完整。评论管理模块能够正确完成评论的提交与查看,相关数据保存可靠。在整体测试过程中,各模块运行稳定,未发现影响系统核心业务流程的重大问题,系统整体性能良好,能够满足预期设计需求。
结 论
通过对基于SSM框架的水果超市管理系统的设计与实现,成功构建了一套功能较为完善、结构清晰的水果销售与管理平台。系统采用SSM(Spring、SpringMVC、MyBatis)作为核心技术框架,实现了表现层、业务层与数据持久层的有效分离,提升了系统的可维护性与扩展性。其中,Spring主要负责依赖注入与事务管理,SpringMVC用于处理用户请求与页面响应,MyBatis完成数据库访问与对象映射,从而保证了系统运行的稳定性与数据处理的高效性。
在功能实现方面,系统围绕水果超市日常经营业务展开,设计并实现了用户管理、商品管理、订单管理、库存出入库管理以及公告与资讯管理等核心模块,同时结合普通用户、销售用户和管理员三类角色的权限划分,实现了系统的分级管理与业务协同。普通用户可完成商品浏览与购买操作,销售用户负责商品与库存管理,管理员则对系统整体运行进行统一控制与维护。这些功能的实现有效规范了水果超市的业务流程,提高了信息处理效率与管理水平。
在系统开发过程中,通过对需求分析、系统设计、功能实现及测试优化的不断完善,加深了对Java开发技术及SSM框架的理解与应用能力。系统整体运行稳定,界面简洁,能够满足水果超市日常运营的基本需求。该系统的实现不仅为水果超市的信息化管理提供了参考,也为后续系统功能扩展与优化奠定了良好基础,同时对提升个人软件开发能力具有重要意义。
参考文献
[1] 孙鹏程,汤巧凤,郑晓启,姚津,吴文清.基于SSM+JSP的水果超市管理系统的设计与实现[J].软件,2025,46(01):135-137.
[2] 陈彦婷,张涛,贺修健.百果园水果连锁超市供应链风险管理研究[J].北方经贸,2024,(01):89-93.
[3] 陈颖.Y水果超市库存管理优化[D]. 河北科技大学, 2023.
[4]崔祥.基于Java超市可视化管理系统设计[J].网络安全技术与应用,2023,(02):45-46.
[5] 张静,胡宁玉,冯丽萍.基于Java的超市进销存管理系统的设计与实现[J].信息与电脑(理论版),2022,34(18):124-127+131.
[6] 刘洁.石家庄市Y超市水果库存管理研究[D]. 河北科技大学, 2022.
[7] 谭慧敏,白桦,闫星臣,郑竞恒.基于系统动力学的连锁超市多级库存优化研究[J].物流工程与管理,2022,44(02):36-39.
[8] L Thomsen ,S Golubovic ,M Vilhelmsen ,FH Jensen ,RF Krølner ,CT Damsgaard ,U Toft.Promoting sales of fruit and vegetables in supermarkets: A co-created supermarket sales intervention[J].European Journal of Public Health,2025,35(Supplement_4):
[9]Jinlai Chen.Research on Fresh Produce Inventory Management at D Supermarket[J].Critical Humanistic Social Theory,2025,2(4):
[10] Kewen Wang.Research on Optimization Ideas of Inventory Management Problems in Cold Chain Logistics[A] 2024:
[11]郭子傲,杨凯江.基于Java的在线音乐系统的设计与实现[J].工业控制计算机,2023,36(10):66-67+70.
[12]丁玉青,孙逸飞,朱敏.基于JAVA的共享蓝牙耳机小程序设计[J].科技与创新,2023,(20):152-154.
[13]尹应荆.JAVA编程语言在计算机软件开发中的应用[J].石河子科技,2023,(05):45-47.
[14]袁琳琳.浅析Java语言在计算机软件开发中的应用[J].信息记录材料,2023,24(09):81-83.
[15]程小红.基于Java程序设计语言中一维数组的应用[J].数字技术与应用,2023,41(08):31-34.
[16]闫立誉.基于Java平台开发的软件保护技术探究[J].数字技术与应用,2023,41(08):199-201.
[17]曹灿,吕宜光.基于Java Web的科研院所人事管理系统的设计与实现[J].自动化技术与应用,2023,42(06):131-133.
[18] 易广,贺腾飞,王汐琳,刘宇慧,朱峰,李建功,陈昭辉.基于SSM的牦牛数字化生产管理系统构建与应用探究[J].家畜生态学报,2026,47(02):97-104.
[19] 曾雪松,尚光龙,张龙龙.Java+SSM架构高校教材征订系统开发[J].福建电脑,2026,42(01):80-85.
致 谢
在完成本论文的过程中,我要由衷感谢所有支持和帮助我的人。首先,我要感谢我的指导教师,他们给予了我宝贵的指导和建议,帮助我顺利完成研究工作。他们的专业知识和经验对我产生了深远的影响。此外,我要感谢我的家人和朋友,他们在我整个研究过程中给予了我无尽的鼓励和支持。他们相信我能够克服困难、坚持不懈地追求目标,这让我时刻保持积极向上的心态。最重要的是,我要感谢自己。在研究的过程中,我遇到了各种挑战和困难,但我从未放弃,始终保持着坚定的信念和努力的精神。正是这种勇气和毅力使我能够完成这项研究工作,并取得了令人满意的成果。
通过这次研究,我学到了很多知识和技能,也收获了自信和成长。我相信,只要我坚持努力和持续学习,就能够实现更大的成就和突破。因此,我将继续努力,为自己的梦想奋斗,成为一个有影响力和价值的人。最后,我再次向所有支持和帮助过我的人表示深深的感谢。你们的支持是我前进的动力,我会铭记于心,并用更好的成绩回报你们的期望和信任。谢谢!
点赞+收藏+关注 →私信领取本源代码、数据库
关注博主下篇更精彩 一键三连!!! 一键三连!!! 一键三连!!! 感谢一键三连!!!







