springboot鲜花商城系统--附源码08660

 

随着互联网技术的迅猛发展和电子商务模式的日臻成熟,传统鲜花销售模式面临着巨大的挑战与机遇。本研究旨在探索如何通过开发一个基于Spring Boot、Java和MySQL技术栈的鲜花商城系统来提升用户体验,优化鲜花销售渠道,满足用户日益增长的个性化需求。

系统实现了包括用户注册登录、浏览商品、管理购物车及订单、使用优惠券等核心功能,并提供了后台管理系统以支持商品管理、订单处理、销售统计分析等操作。采用Spring Boot作为系统框架,不仅加快了开发进度,而且提升了系统的稳定性和扩展性;利用Java语言的强大编程能力确保业务逻辑的准确实现;MySQL数据库则为系统提供了可靠的数据存储解决方案。

鲜花商城系统的研究与实现具有重要的价值和意义。首先,它为消费者提供了一个便捷、高效的在线购物平台,极大地丰富了用户的购买选择并提升了购物体验。其次,对于商家而言,通过数字化运营手段有效降低了成本,提高了销售效率,有助于增强市场竞争力。此外,本研究也为类似电商平台的开发提供了有益的参考案例和技术借鉴。

关键词Spring Boot框架;鲜花商城系统;Java语言;MySQL

Abstract

With the rapid development of Internet technology and the maturity of e-commerce models, the traditional flower sales model is facing huge challenges and opportunities. This study aims to explore how to develop a flower mall system based on Spring Boot, Java and MySQL technology stacks to improve user experience, optimize flower sales channels, and meet the growing personalized needs of users.

The system realizes core functions including user registration and login, browsing products, managing shopping carts and orders, using coupons, etc., and provides a background management system to support product management, order processing, sales statistical analysis and other operations. The use of Spring Boot as the system framework not only accelerates the development progress, but also improves the stability and scalability of the system. Leverage the powerful programming capabilities of Java language to ensure the accurate implementation of business logic; The MySQL database provides a reliable data storage solution for the system.

The research and implementation of the flower mall system is of great value and significance. First of all, it provides consumers with a convenient and efficient online shopping platform, which greatly enriches users' purchasing choices and enhances the shopping experience. Secondly, for merchants, digital operation methods effectively reduce costs, improve sales efficiency, and help enhance market competitiveness. In addition, this study also provides a useful reference case and technical reference for the development of similar e-commerce platforms.

Key words: Spring Boot framework; Flower mall system; Java language; MySQL

目  录

第1章 绪  论

1.1 研究背景

1.2 研究目的和意义

1.3 国内外研究现状

1.4 本文主要工作

1.5 论文结构与章节安排

第2章 关键技术介绍

2.1 Java语言

2.2 Spring Boot框架

2.3 MySQL数据库

2.4 B/S体系结构

第3章 系统分析

3.1 可行性分析

3.1.1 技术可行性

3.1.2 经济可行性

3.1.3 操作可行性

3.2 系统功能需求分析

3.3 系统用例分析

3.3.1 注册用户用例分析

3.3.2 管理员用例分析

3.4 非功能需求分析

3.5 系统流程分析

3.5.1 用户注册登录流程

3.5.2 用户购买鲜花商品流程

3.5.3 管理员鲜花商城管理流程

第4章 系统设计

4.1 系统架构设计

4.2 功能模块设计

4.3 数据库设计

4.3.1 概念设计

4.3.2 逻辑设计

第5章 系统实现

5.1 前台用户模块的实现

5.1.1 用户注册界面

5.1.2 用户登录界面

5.1.3 前台首页界面

5.1.4 系统公告界面

5.1.5 鲜花资讯界面

5.1.6 鲜花商城界面

5.1.7 商城管理界面

5.1.8 个人中心界面

5.2 后台管理模块的实现

5.2.1 后台登录界面

5.2.2 后台首页界面

5.2.3 系统用户界面

5.2.4 送礼对象管理界面

5.2.5 系统管理界面

5.2.6 系统公告管理界面

5.2.7 资源管理界面

5.2.8 商城管理界面

第6章 系统测试

6.1 测试目的

6.2 测试用例

6.3 测试结果

结  论

参考文献

附 录

  1.   

    1. 研究背景

随着互联网技术的迅速发展和电子商务模式的普及,消费者的购物习惯正在发生深刻的变化。传统的鲜花销售主要依赖于实体店面,这种方式不仅限制了销售的时间和空间,也难以满足现代消费者对于便捷性和个性化服务的需求。在线购物平台的兴起为各类商品提供了更广阔的市场,然而在鲜花销售领域,现有的解决方案尚未完全解决产品保鲜、物流配送及时效性等问题。此外,市场上缺乏一个能够充分整合鲜花资讯、用户互动及个性化推荐的综合电商平台。

基于这样的背景,本研究开发了一个集成最新技术如Spring Boot、Java和MySQL的鲜花商城系统,着眼于当前市场上存在的对高效、便捷且个性化的鲜花购买体验的需求,以及商家对于数字化运营手段提升效率的追求。通过构建这样一个系统,旨在探索如何利用先进的互联网技术和电商平台的最佳实践来克服传统鲜花销售中的局限,提供给用户更加优质的服务体验。

    1. 研究目的和意义

本研究的主要目的是设计并实现一个基于Spring Boot、Java和MySQL技术栈的鲜花商城系统,以解决传统鲜花销售模式中存在的局限性,如受限的销售时空、保鲜挑战及物流配送问题。通过集成用户注册登录、商品浏览与搜索、订单管理以及后台管理等核心功能,系统旨在为用户提供便捷、个性化的在线购物体验,并为商家提供高效的数字化运营工具,从而提升整个鲜花销售过程的效率和服务质量。

本研究的意义在于不仅为消费者创造了一个高效、便捷且个性化的鲜花购买平台,极大地丰富了用户的购物选择并提升了满意度,同时也为商家提供了强大的数字运营支持,有助于降低运营成本、提高市场响应速度及增强竞争力。此外,通过对新技术的应用和电商平台实践的探索,本研究还为类似系统的开发提供了宝贵的经验和技术参考,促进了电子商务领域在特定商品销售上的创新与发展。

    1. 国内外研究现状

在国内,随着互联网技术的普及与电子商务行业的快速发展,鲜花电商行业经历了从初步探索到快速扩张再到精细化运营的发展历程。早期由于物流条件和技术限制,鲜花电商面临保鲜难题和配送挑战。近年来,得益于冷链物流的进步、移动支付的普及以及消费者对生活品质追求的提升,国内鲜花电商平台如花点时间、爱尚鲜花等逐渐崭露头角,市场规模持续扩大。同时,越来越多的企业开始重视用户体验,通过优化网站设计、提供个性化服务以及加强供应链管理来增强竞争力。

在国外,特别是美国和欧洲国家,鲜花电商起步较早,并且在技术创新和服务模式上处于领先地位。自上世纪90年代末期起,随着互联网的普及,一些先驱企业就开始尝试在线销售鲜花。进入21世纪后,智能手机和移动互联网的广泛应用进一步推动了这一领域的发展。国际品牌如1-800-FLOWERS、FTD等不仅利用先进的技术平台提高服务效率,还通过建立全球化的供应链网络满足不同地区的需求。此外,国外的研究更侧重于应用图像处理软件、人工智能等先进技术改善系统操作流程,保证数据安全,实现信息实时共享,为用户提供更加优质的服务体验。

    1. 本文主要工作

在本文中,我们首先分析了当前鲜花电商领域存在的挑战和需求,明确了系统的选题依据和目的。随后,详细阐述了系统的设计与实现过程,包括技术选型Spring Boot、Java、MySQL、功能模块划分以及数据库结构设计等关键环节。此外,我们还讨论了如何通过引入权限管理和数据加密等措施来增强系统的安全性。最后,通过对系统进行严格的测试和验证,证明了所提出的鲜花商城系统不仅能够满足用户的购物需求,也为商家提供了一套有效的后台管理工具,具有较高的实用价值和市场应用前景。

系统集成了用户注册登录、商品浏览与购买、购物车管理、订单处理等核心功能,并提供了针对管理员的商品信息维护、用户信息管理、订单状态跟踪及系统公告发布等全面的后台管理功能。特别地,系统还强调了权限管理的重要性,以确保不同角色用户只能访问相应权限范围内的资源。通过结合现代Web开发技术和数据库管理策略,本研究探索了如何为鲜花电商提供一个既高效又安全的在线平台。

    1. 论文结构与章节安排

本文的结构按逻辑顺序分为以下几个章节:

第1章绪论,本章节介绍研究背景和意义,回顾当前研究现状,并阐明本文主要工作和论文组织结构。

第2章系统关键技术,本章节将对鲜花商城系统的实现关键技术进行简要介绍。

第3章系统分析,本章节基于市场调研,分析鲜花商城系统的可行性、功能、角色、性能等需求,明确各模块的业务需求。

第4章系统设计,本章节详细阐述系统的整体架构设计,包括前后端结构、数据库设计及功能模块的设计思路。

第5章系统实现,本章节介绍系统各主要模块的具体实现,包括代码示例、业务逻辑及界面设计等。

第6章系统测试,本章节描述系统的测试方法及结果,分析系统的性能、稳定性及用户反馈。

第7章结论,本章节对主要对研究成果进行总结。


  1. 关键技术介绍

    1. Java语言 

Java作为一种广泛使用的面向对象编程语言[1],为本系统提供了强大的开发基础。它具备跨平台特性、丰富的类库和稳定的安全性能,能够确保系统的高效运行和良好的扩展性。在鲜花商城系统中,Java[2]用于编写后端业务逻辑,处理包括用户管理、信息管理在内的各种复杂操作,同时支持高并发访问,保证了系统的响应速度和稳定性。

    1. Spring Boot框架

Spring Boot是基于Spring框架的快速开发平台[3],极大地简化了基于Java的应用程序构建过程。它通过自动配置和约定优于配置的原则,减少了繁琐的设置工作,使开发者可以更专注于业务逻辑的实现。在本系统中,Spring Boot[4]不仅用于搭建RESTful API服务,提供前后端数据交互的接口,还集成了安全认证、事务管理和缓存等功能,以提升系统的整体性能和安全性,确保鲜花商城系统的稳定性和可维护性。

    1. MySQL数据库

作为一款流行的开源关系型数据库管理系统,MySQL[5]以其高性能、可靠性和易于使用的特点成为本系统的数据存储解决方案。它支持复杂的查询和事务处理,适用于存储和管理大量的功能模块信息、用户数据以及交互记录。通过优化表结构设计和索引策略,MySQL能够快速响应系统的读写请求,保障数据的一致性和完整性,同时为数据分析和报表生成提供了坚实的基础[6]。

    1. B/S体系结构

B/S体系,即Browser/Server体系[7],是一种常见的网络应用程序架构。其工作原理基于客户端与服务器之间的请求-响应模型。用户通过浏览器向服务器发送请求,服务器接收到请求后进行处理,并生成相应的响应结果,最终将响应返回给客户端。浏览器接收到服务器返回的响应后,解析其中的标记语言(如HTML[8]),并根据CSS样式表和JavaScript脚本来渲染页面,呈现给用户。用户可以与页面进行交互,例如点击链接、填写表单等操作,这些操作会触发新的请求,循环执行上述过程。


  1. 系统分析

    1. 可行性分析
      1. 技术可行性

从技术角度来看,本系统基于Spring Boot框架构建,结合数据库管理,能够有效支持鲜花商城系统的各项功能需求。Spring Boot提供了强大的架构支持,确保系统的可扩展性和稳定性。通过充分的技术调研和原型测试,我们确认现有的技术栈完全能够满足系统的开发和运行要求,具备较高的技术可行性。

      1. 经济可行性

从经济角度考量,本系统的开发和维护成本在可控范围内,且预期的投资回报率较高。初期投入主要包括软件开发、硬件采购和人员培训等方面,但通过合理的预算规划和资源分配,可以有效控制成本。更重要的是,系统上线后将显著提升鲜花商城系统的运营效率,减少人工干预,降低管理成本。

      1. 操作可行性

在操作可行性方面,本系统设计注重用户体验,采用了直观易用的界面设计,并提供详细的帮助文档支持,确保用户可以轻松上手使用各项功能。无论是用户还是后台管理员,都能通过简洁明了的操作流程完成信息查询和管理等任务。因此,从用户操作的角度来看,本系统具备良好的操作可行性。

    1. 系统功能需求分析

本鲜花商城系统旨在为用户提供便捷的在线购物体验,并为管理员提供高效的后台管理工具。系统需要支持用户注册登录、商品浏览购买、订单处理等基础功能,同时还要具备个性化的用户中心和全面的后台管理系统,包括商品信息维护、订单管理、用户管理以及权限控制等功能模块。

  1. 注册用户模块:

首页:展示最新系统公告与热门鲜花资讯,吸引用户浏览。提供快速导航至商城和其他重要页面的入口。

系统公告:用户可以查看最新的系统通知和更新信息,确保及时了解平台动态。

鲜花资讯:获取关于鲜花养护知识和行业新闻的信息,增加用户对鲜花的兴趣。

鲜花商城:展示鲜花商品信息、库存状态和价格详情,支持商品详情查看;用户可将商品加入购物车或直接购买,并可以领取优惠券。

商城管理:

·我的购物车:管理已添加的商品,调整数量或删除商品;支持一键结算功能,生成订单。

·我的订单:查看所有订单的状态和详情,包括待支付、已支付和已完成订单;支持订单取消和售后申请。

·我的地址:管理收货地址信息,支持新增、编辑和删除操作;默认地址优先显示,方便快速下单。

·我的优惠券:查看并使用可用的优惠券,享受折扣优惠。

我的账户:管理个人信息,包括昵称、头像和密码修改;支持绑定手机号或邮箱以增强账户安全。

个人中心:提供用户的个人信息概览和最近活动记录,查看个人主页、订单配送、收藏夹和评论内容。

  1. 管理员模块:

后台首页:显示关键业务指标如销售金额和数量统计,帮助管理员快速掌握经营状况。

系统用户:管理所有注册用户的账号信息,包括启用/禁用账号。

送礼对象管理:处理与礼品卡相关的事务,如创建、分发和管理。

系统管理:上传和调整首页轮播广告的内容,提升用户体验。

系统公告管理:发布和编辑公告,向用户传达重要信息。

资源管理:添加或更新有关鲜花的知识文章,丰富网站内容。维护鲜花资讯的分类结构,便于用户查找所需信息。

商城管理

·鲜花商城:管理和更新鲜花商品列表,确保商品信息准确无误。

·分类列表:定义和管理商品分类,优化商品展示逻辑。

·订单列表:查看和处理所有订单请求,保障订单流程顺畅。

·订单配送:监控和协调订单的发货及物流安排,确保高效配送。

·优惠券:设计和发放优惠券策略,促进销售增长。

·订单售后:处理退换货申请,提高顾客满意度。

    1. 系统用例分析
      1. 注册用户用例分析

注册用户通过系统可以浏览鲜花资讯、搜索和购买鲜花产品,享受个性化的在线购物体验。他们能够管理自己的购物车、查看订单状态、使用优惠券以及维护个人信息,同时还能对已购商品进行评价和管理收藏夹中的内容。注册用户角色用例图如下所示。

图3-1 注册用户用例图

      1. 管理员用例分析

管理员利用系统的后台管理功能,负责监控和管理商城的整体运营情况,包括商品信息更新、订单处理、销售统计分析等。此外,管理员还需管理用户账号、发布系统公告、维护鲜花资讯及分类,并制定和分发优惠券策略以促进销售。管理员角色用例图如下所示。

图3-2 管理员用例图

    1. 非功能需求分析

系统非功能需求指的是性能需求,对一个系统的性能需求进行分析和定义的过程。在进行性能需求分析时,因此鲜花商城系统的设计与实现主要需要考虑以下几个方面的性能需求:

响应时间:响应时间是指系统在接收到请求后,作出响应的时间。根据具体的业务需求和用户体验要求,可以确定系统在不同场景下的响应时间要求。

吞吐量:吞吐量是指系统在一定时间内处理的事务或请求的数量。根据业务需求和用户量的估计,可以确定系统需要支持的最大吞吐量。

并发用户数:并发用户数是指系统在同时使用的用户数量。根据预期的用户量和并发访问需求,可以确定系统需要支持的最大并发用户数。

可扩展性:可扩展性是指系统在面对用户量增加或并发访问需求增加时,能否通过增加硬件资源或调整系统架构来满足需求。根据预期的用户增长和扩展计划,可以确定系统需要具备的可扩展性要求。

故障处理能力:系统对故障的处理能力是指在出现错误或故障时,系统能够快速、准确地识别、定位并处理故障的能力。根据业务的重要性和对故障处理的要求,可以确定系统需要具备的故障处理能力。

安全性:系统在性能需求分析中,也需考虑安全方面的需求,如数据的保密性、完整性和可用性等。根据具体的安全需求和合规要求,可以确定系统需要满足的安全性需求。

通过对这些性能需求进行详细分析和定义,可以为鲜花商城系统的设计和开发提供指导,确保系统在满足预期的性能需求的同时,具备良好的性能和可靠性。

    1. 系统流程分析
      1. 用户注册登录流程

用户注册登录模块主要是为了方便用户和管理员能够安全地访问系统并管理自己的信息。用户通过浏览器访问鲜花商城系统,首先进入的是系统的登录页面。在登录页面,用户可以选择自己的账户角色,并输入相应的账号和密码。系统接收到用户的登录请求后,会将提供的账号和密码与数据库中存储的信息进行比对。如果账号或密码为空或者不匹配,则提示用户重新输入,并停留在登录界面。当账号和密码正确无误时,系统根据用户类型跳转到对应的首页界面。用户注册登录流程如下图所示。

图3-3 用户注册登录流程图

      1. 用户购买鲜花商品流程

用户购买鲜花商品的流程始于访问系统主页,通过浏览商品列表或使用搜索功能找到目标商品。在商品详情页,用户可查看商品图片、价格、库存等信息,可以在领取优惠后并选择规格后将商品加入购物车或直接下单。进入购物车后,用户可以调整商品数量、删除不需要的商品,并在确认无误后进入结算页面。在此阶段,用户需填写收货地址、选择支付方式并提交订单。支付完成后,用户可在“我的订单”中查看订单状态。用户购买鲜花商品流程图如下图所示。

图3-4 购买鲜花商品流程图

      1. 管理员鲜花商城管理流程

管理员对鲜花商城的管理流程包括商品的新增、编辑、上下架以及分类维护等多个环节。首先,管理员通过后台管理系统录入商品基本信息,如名称、价格、库存、规格、简介等,并上传商品图片。接着,管理员根据商品类别将其归类,确保商品展示逻辑清晰。在商品上架前,管理员还需审核商品信息的完整性和准确性。当商品需要下架或更新时,管理员可通过编辑功能修改商品详情或直接将其下架。此外,管理员还可以批量导入商品数据以提高效率,并定期检查商品库存状态,及时补充或调整相关信息,确保平台商品信息的实时性和有效性。管理员鲜花商城管理流程图如下图所示。

图3-5 管理员鲜花商城管理流程图

  1. 系统设计

    1. 系统架构设计

鲜花商城系统的架构设计包括客户端、服务器端、第三方集成、安全性和权限控制、扩展性和性能优化、高可用性和容错性等方面。客户端通过Web浏览器访问系统,而服务器端负责接收和处理请求,并提供功能和数据。系统采用分层架构,包括表现层、业务逻辑层、数据访问层和数据库。同时,系统需考虑与其他系统的集成、安全性和权限控制、扩展性和性能优化、高可用性和容错性等方面的问题。这样的架构设计将确保系统的稳定性、可扩展性和安全性,为用户提供稳定、高效的使用体验。系统架构图如下图所示。

图4-1 系统架构图

    1. 功能模块设计

通过整体功能模块设计,我们将根据需求分析的结果,将系统的功能划分为不同的模块。每个模块负责实现特定的功能,并与其他模块进行协作。我们将详细定义每个模块的输入、输出、处理逻辑和相互依赖关系。系统总体功能模块图如下图所示。

图4-2 系统功能模块图

    1. 数据库设计
      1. 概念设计

借助先进的系统,E-R图使其他用户可以快速轻松地了解系统的功能以及他们之间的关系。根据鲜花商城系统分析结果,本鲜花商城系统总体E-R图如下图所示。

图4-3 系统总体E-R图

      1. 逻辑设计

所有系统的应用数据相互区分。一旦在相应的系统中实现,它们将与自己相应的网络和服务器通信。所以这个系统可以连接这些数据。当我们选择桥梁截面时,以下将简要介绍如何建立系统。在单击上一个按键的时候,就会自动在对话框中弹出数据源的名字,之后再单击下一个按键时,就在填写相对应的身份验证和登录信息。按照系统功能设计的特点与职能模块的分类,鲜花商城系统的总体设计和实施过程一共涉及到了几个资料表格。

根据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_id

int

收货地址

2

name

varchar

32

姓名

3

phone

varchar

13

手机

4

postcode

varchar

8

邮编

5

address

varchar

255

地址

6

user_id

mediumint

用户ID

7

create_time

timestamp

创建时间

8

update_time

timestamp

更新时间

9

default

tinyint

默认判断

表 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

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-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

title

varchar

64

标题

3

img

varchar

255

图片

4

user_id

int

用户ID

5

create_time

timestamp

创建时间

6

update_time

timestamp

更新时间

7

state

int

状态:使用中,已失效

8

price

double

单价

9

price_ago

double

原价

10

price_count

double

总价

11

num

int

数量

12

goods_id

mediumint

商品id

13

type

varchar

64

商品分类

14

description

varchar

255

描述

表 4-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

user_id

int

收藏人ID

3

source_table

varchar

255

来源表

4

source_field

varchar

255

来源字段

5

source_id

int

来源ID

6

title

varchar

255

标题

7

img

varchar

255

封面

8

create_time

timestamp

创建时间

9

update_time

timestamp

更新时间

表 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

表 4-10-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-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

表 4-12-flower_mall(鲜花商城)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

flower_mall_id

int

鲜花商城ID

2

gift_object

varchar

64

送礼对象

3

hits

int

点击数

4

collect_len

int

收藏数

5

comment_len

int

评论数

6

recommend

int

智能推荐

7

cart_title

varchar

125

标题

8

cart_img

text

65535

封面图

9

cart_description

varchar

255

描述

10

cart_price_ago

double

原价

11

cart_price

double

卖价

12

cart_inventory

int

商品库存

13

cart_type

varchar

64

商品分类

14

cart_content

longtext

4294967295

正文

15

cart_img_1

text

65535

主图1

16

cart_img_2

text

65535

主图2

17

cart_img_3

text

65535

主图3

18

cart_img_4

text

65535

主图4

19

cart_img_5

text

65535

主图5

20

create_time

datetime

创建时间

21

update_time

timestamp

更新时间

表 4-13-gift_object(送礼对象)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

gift_object_id

int

送礼对象ID

2

gift_object

varchar

64

送礼对象

3

create_time

datetime

创建时间

4

update_time

timestamp

更新时间

表 4-14-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

添加人

表 4-15-goods_type(商品类型)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

type_id

int

商品分类ID

2

father_id

smallint

上级分类ID

3

name

varchar

255

商品名称

4

desc

varchar

255

描述

5

icon

varchar

255

图标

6

source_table

varchar

255

来源表

7

source_field

varchar

255

来源字段

8

create_time

timestamp

创建时间

9

update_time

timestamp

更新时间

表 4-16-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-17-logistics_delivery(物流配送)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

logistics_delivery_id

int

物流配送ID

2

order_number

varchar

64

订单号

3

product_name

varchar

64

商品名称

4

purchase_quantity

varchar

64

购买数量

5

total_transaction_amount

double

交易总额

6

the_date_of_issuance

date

发货日期

7

delivery_number

varchar

30

配送订单

8

ordinary_users

int

普通用户

9

shipping_address

varchar

64

收货地址

10

delivery_status

varchar

64

配送状态

11

signing_status

varchar

64

签收状态

12

recommend

int

智能推荐

13

contact_name

varchar

255

联系人名字

14

merchant_id

int

商家id

15

create_time

datetime

创建时间

16

update_time

timestamp

更新时间

表 4-18-notice(公告)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

notice_id

mediumint

公告ID

2

title

varchar

125

标题

3

content

longtext

4294967295

正文

4

create_time

timestamp

创建时间

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

vip_discount

double

折扣

表 4-20-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-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已取消

表 4-22-registered_user(注册用户)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

registered_user_id

int

注册用户ID

2

user_name

varchar

64

用户姓名

3

user_phone

varchar

16

用户电话

4

gift_object

varchar

64

送礼对象

5

examine_state

varchar

16

审核状态

6

user_id

int

用户ID

7

create_time

datetime

创建时间

8

update_time

timestamp

更新时间

表 4-23-score(评分)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

score_id

int

评分ID

2

user_id

int

评分人

3

nickname

varchar

64

昵称

4

score_num

double

评分

5

create_time

timestamp

创建时间

6

update_time

timestamp

更新时间

7

source_table

varchar

255

来源表

8

source_field

varchar

255

来源字段

9

source_id

int

来源ID

表 4-24-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-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

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-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

更新时间


  1. 系统实现

    1. 前台用户模块的实现
      1. 用户注册界面

用户可以通过注册功能创建个人账号,填写包括用户名、密码、邮箱或手机号等基本信息完成注册流程。系统会对输入信息进行校验,确保唯一性和格式正确性,并将用户数据存储至数据库中,同时发送验证邮件或短信以确认账户有效性。用户注册界面如下图所示。

图5-1 用户注册界面

      1. 用户登录界面

系统前台上注册后的用户是可以通过自己的账户名和密码进行登录的,当用户输入完整的自己的账户名和密码信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名、密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到系统的首页中;否则将会提示相应错误信息。用户登录界面如下图所示。

图5-2 用户登录界面    

      1. 前台首页界面

首页作为用户进入系统的首要界面,集成了系统公告、热门鲜花资讯以及精选鲜花商品推荐,旨在为用户提供一站式的便捷访问入口。通过动态展示最新活动和优惠信息,吸引用户的注意力并引导其进行进一步的浏览或购买操作。前台首页界面如下图所示。

图5-3 前台首页界面

      1. 系统公告界面

系统公告模块主要用于发布平台最新的消息和重要通知,如服务更新、促销活动等,确保用户能够及时获取关键信息。用户登录后可在首页直接查看到最新公告,同时也可以进入公告详情页了解更多信息。此功能帮助提高了信息透明度,增强了用户的参与感和信任度。系统公告界面如下图所示。

图5-4 系统公告界面

      1. 鲜花资讯界面

鲜花资讯模块提供了丰富的关于鲜花养护知识、行业动态等内容,以图文并茂的形式展示给用户,增加用户对鲜花的兴趣和认识。用户可以根据自己的兴趣选择阅读不同的文章,并且可以通过评论区与其他用户交流心得,这不仅提升了用户的停留时间和活跃度,也为用户提供了额外的价值。鲜花资讯界面如下图所示。

图5-5 鲜花资讯界面

      1. 鲜花商城界面

鲜花商城模块允许用户浏览和搜索各类鲜花产品,支持按价格、种类等多种条件筛选商品。每个商品详情页详细展示了产品的图片、描述、价格及用户评价等信息,方便用户做出购买决策。此外,用户可以直接从商品页面将心仪的鲜花添加至购物车或立即购买,简化了购物流程。鲜花商城展示界面如下图所示。

图5-6 鲜花商品展示界面

优惠券领取界面如下图所示。

图5-7 优惠券领取界面

订单支付界面如下图所示。

图5-8 订单支付界面

      1. 商城管理界面

商城管理模块包括我的购物车、我的订单、我的地址、我的优惠券四个子模块,为用户提供了一套完整的购物流程管理工具。在“我的购物车”中,用户可以查看已选商品、修改数量或移除商品,并可直接前往结算。我的购物车界面如下图所示。

图5-9 我的购物车界面

“我的订单”则让用户能够追踪订单状态、查看历史订单详情并进行售后申请。我的订单界面如下图所示。

图5-10 我的订单界面

“我的地址”允许用户维护多个收货地址,设置默认地址,确保每次购物时都能准确无误地收到商品。我的地址界面如下图所示。

图5-11 我的地址界面

“我的优惠券”展示用户当前持有的所有优惠券,标明使用条件和有效期,便于用户挑选合适的优惠券进行消费。我的优惠券界面如下图所示。

图5-12 我的优惠券界面

      1. 个人中心界面

个人中心模块集中了用户的个人信息管理和互动功能,包括个人首页、订单配送状态追踪、收藏夹管理和评论管理等。用户可以在此编辑个人资料,查看最近的活动记录,实时追踪订单状态,管理自己收藏的商品或内容,以及撰写和修改对已购商品的评价,从而享受更加个性化的服务体验。用户个人中心界面如下图所示。

图5-13 用户个人中心界面

    1. 后台管理模块的实现
      1. 后台登录界面

后台登录模块为管理员提供了安全的身份验证入口,确保只有授权用户能够访问系统后台。通过输入正确的用户名和密码,并经过系统的身份验证流程,管理员可以成功登录到后台管理系统,保障了数据的安全性和系统的稳定性。后台登录界面如下图所示。

图5-14 后台登录界面

      1. 后台首页界面

后台首页模块为管理员提供了一个全面的概览界面,集成了关键业务指标如商品销售金额统计、商品销售数量统计等图表展示功能,帮助管理员快速了解当前业务状况并据此做出决策。后台首页界面如下图所示。

图5-15 后台首页界面

      1. 系统用户界面

系统用户模块用于管理员对注册用户和管理员账号进行统一管理,包括新增、编辑、删除用户信息以及调整用户权限状态。管理员可以通过搜索功能快速定位目标用户,模块还支持用户状态管理,确保系统的安全性与规范性。系统用户界面如下图所示。

图5-16 系统用户界面

      1. 送礼对象管理界面

送礼对象管理模块专注于处理与礼品相关的事务,管理员可以创建、编辑和分发送礼对象的信息,确保用户能够顺利使用这些服务进行个性化礼物赠送,增强用户体验。送礼对象管理界面如下图所示。

图5-17 送礼对象管理界面

      1. 系统管理界面

轮播图模块为管理员提供管理首页展示内容的功能,支持上传图片、设置链接地址以及调整显示顺序。管理员可以通过该模块灵活更新平台的宣传内容,吸引更多用户关注。系统通过后端接口将数据存储至数据库,确保前端展示效果与后台配置一致。轮播图管理界面如下图所示。

图5-18 轮播图管理界面

      1. 系统公告管理界面

系统公告管理模块让管理员可以发布、编辑和删除面向全体用户的系统公告,确保重要通知和信息能够及时传达给每一位用户。系统公告管理界面如下图所示。

图5-19 系统公告管理界面

      1. 资源管理界面

资源管理模块主要用于管理和发布鲜花资讯及分类信息,帮助管理员丰富平台内容。管理员可以创建、编辑或删除鲜花资讯,并对资讯进行分类管理,确保内容组织清晰有序。资源管理界面如下图所示。

图5-20 资源管理界面

      1. 商城管理界面

商城管理模块为管理员提供了一个全面的商品和订单管理解决方案,包括商品信息的增删改查、订单列表的详细查看与处理、优惠券的设计发放以及售后管理等功能。通过这个模块,管理员能够高效地控制库存、优化商品展示、加快订单处理速度并解决售后服务问题,确保商城运营顺畅且高效。鲜花商城管理界面如下图所示。

图5-21 鲜花商城管理界面

分类列表界面如下图所示。

图5-22 分类列表界面

订单列表界面如下图所示。

图5-23 订单列表界面

优惠券界面如下图所示。

图5-24 优惠券界面

订单售后界面如下图所示。

图5-25 订单售后界面


  1. 系统测试

    1. 测试目的

在对该系统进行完详细设计和编码之后,就要对鲜花商城系统的程序进行测试,检测程序是否运行无误,反复进行测试和修改,使之最后成为完整的软件,满足用户的需求,实现预期的功能。系统测试的目的在于确保软件正常运作,并实现其应有的功能,促进行中出现的错误和逻辑问题。系统测试不但可以找见程序运行中的系统错误,还可以找见程序运行的需要改进的地方,并去协助改良程序运行使其获得最高幅度的完备。世界一流的安装测试员可以增加软件品质,将软件系统错误概率降至最少。

    1. 测试用例

对以下功能进行测试,包括包括用户注册、用户登录、鲜花商品搜索、鲜花商品查看、鲜花商品添加、鲜花商品购买,具体测试用例如下表所示。

6-1 用户注册测试用例表

用例编号

用例名称

测试步骤

测试结果

6-1

用户注册

1. 输入有效注册信息,包括用户名、密码和联系方式。

注册成功,系统保存用户信息。

2. 点击注册按钮进行提交。

跳转至登录页面。

3. 检查是否成功注册并跳转至登录页面。

用户成功注册,可以登录使用。

6-2 用户登录测试用例表

用例编号

用例名称

测试步骤

测试结果

6-2

用户登录

1. 输入正确用户名和密码。

登录成功,系统验证通过。

2. 点击登录按钮进行验证。

跳转至用户首页。

3. 检查是否成功登录并跳转至用户首页。

用户成功登录,进入用户首页。

6-3 鲜花商品搜索测试用例表

用例编号

用例名称

测试步骤

测试结果

6-3

鲜花商品搜索

1. 在搜索框输入关键词,如商品名称。

显示相关商品列表。

2. 点击搜索按钮进行搜索。

匹配关键词的鲜花商品显示在搜索结果中。

3. 检查是否显示相关鲜花商品列表。

用户看到与搜索关键词匹配的鲜花商品

6-4 鲜花商品查看测试用例表

用例编号

用例名称

测试步骤

测试结果

6-3

鲜花商品搜索

1. 点击鲜花商品

显示所有鲜花商品列表。

2. 进入详情页浏览

展示鲜花商品详情页

3. 检查是否显示鲜花商品是否正常展示

鲜花商品展示正常

6-5 鲜花商品添加测试用例表

用例编号

用例名称

测试步骤

测试结果

6-4

鲜花商品添加

1. 进入后台鲜花商城管理界面,点击添加按钮

显示鲜花商品信息添加页面

2. 正确填写并提交相关信息

信息填写完整准确。

3. 检查是否提交成功,并检查鲜花商品信息是否成功添加至平台。

鲜花商品信息成功添加至平台。

6-6 鲜花商品购买测试用例表

用例编号

用例名称

测试步骤

测试结果

6-4

鲜花商品购买

1. 进入前台鲜花商城详情页,点击购买按钮

显示鲜花商品信息页面

2. 用户正确填写并提交订单相关信息

订单信息填写完整准确。

3. 检查是否提交并支付成功,并检查订单信息是否成功添加至平台。

订单信息成功添加至平台,可在个人中心-我的订单列表中查看。

    1. 测试结果

经过对用户注册、用户登录、鲜花商品搜索、鲜花商品查看、鲜花商品添加、鲜花商品购买等功能的测试,系统表现稳定,用户注册流程顺畅,登录验证准确,鲜花商品搜索、查看、添加功能有效,鲜花商品购买信息流程顺利。各项功能符合预期,用户可以顺利注册登录,选择所需鲜花商品进行浏览,可以成功发布购买鲜花商品生成订单信息。系统运行良好,用户体验良好,功能完善。

  

本次鲜花商城系统将Spring Boot同现实鲜花销售工作进行相结合,在系统功能开始编码之前,作者花费了大量时间在图书馆内进行资料文献的收集和总结,通过大量文献的分析,能够发现,鲜花线上商城销售的方式在当前鲜花市场及销售管理中扮演的位置是越来越重要,而使用的方式也是越来越多元化,也正是因为这个原因,作者深深的希望能够开发出一种专门针对性的在线鲜花商城系统,以满足不同用户的多样化需求。

鲜花商城系统设计与实现得到设计与实现,利用了目前市场上普遍使用的Java编程语言,以及MySQL数据库管理功能,和目前比较流行的Spring Boot框架进行系统界面的布置,以现实生活的鲜花销售管理过程为标准,设计实现了包括首页、系统公告、鲜花资讯、鲜花商城、商城管理等模块,为用户提供多元前面的功能操作,基本实现整个鲜花销售管理流程。

但是由于本人受到了技术水平的限制,在有限的时间,只能够将系统功能模拟时的功能实现,在许多功能方面仍然存在很大的弊端,而这些弊端需要不断的测试,不断的总结,不断的改进。例如本次系统设计中,在数据储存的方面并不够全面,很容易出现信息泄露的风险;例如针对用户权限的设置同样不够全面完整,没有考虑权限在实际情况的运用是否能够完美执行。而在这之后的日子里,我将会继续学习Spring Boot技术和相关的信息技术,对系统功能进行更加完整的,详细的分析,将系统功能一一进行完善,帮助使用者完成相应的操作。

参考文献

  1. 陈敬宗.计算机软件Java编程特点与技术应用分析[J].中国信息界,2025,(01):162-164.
  2. 柯灵.Java编程语言在计算机软件开发中的应用与问题处理探析[J].电脑知识与技术,2024,20(27):45-47.
  3. 王志亮,纪松波.基于SpringBoot的Web前端与数据库的接口设计[J].工业控制计算机,2023,36(03):51-53.
  4. 李兴华,马云涛.Spring开发实战[M].人民邮电出版社:202303.381.
  5. 李艳杰.MySQL数据库下存储过程的综合运用研究[J].现代信息科技,2023,7(11):80-82+88.
  6. 肖睿,李鲲程,范效亮,等.MySQL数据库应用技术及实践[M].人民邮电出版社:202206.228.
  7. 黄维.基于B/S模式的虚拟网络实验室安全管理体系分析[J].信息系统工程,2024,(05):4-7.
  8. 张宇薇.HTML5在Web前端开发中的应用[J].集成电路应用,2024,41(04):274-276.
  9. Discover the Enchanting World of Dried Flowers Market[J].M2 Presswire,2024,
  10. 霍丽洁.花店业应时而变凸显五大趋势[N].中国花卉报,2023-12-07(001).
  11. 柴志成,孙怡文,梁严心,等.予己flower——线上线下鲜花售卖创新研究[J].商场现代化,2023,(20):10-12.
  12. T.R. X K ,Xuejiao W ,Yelin F , et al.Revenue optimisation approach for auction logistics centre: an investigation of Chinese flower market[J].International Journal of Logistics Research and Applications,2023,26(10):1359-1383.
  13. 李一帆.基于PCN的花店精益服务设计研究与应用[D].陕西科技大学,2023.
  14. 王宁,黎亮云,吕道邦,等.广州市花卉销售现状及发展对策研究[J].中国林业经济,2022,(06):59-63.
  15. Xingyu L ,N. R E ,T. G C , et al.Evaluation of the Likelihood of Establishing False Codling Moth (Thaumatotibia leucotreta) in Australia via the International Cut Flower Market[J].Insects,2022,13(10):883-883.
  16. 文金婷.花卉企业的经营绩效及影响因素研究[D].北京林业大学,2022.
  17. 刘玉伟,赵梦麒,王妮,等.花卉销售直播模式的研究[J].企业科技与发展,2021,(11):193-195.
  18. Velusamy M .Overview of pretreatment technologies on vegetable, fruit and flower market wastes disintegration and bioenergy potential: Indian scenario.[J].Chemosphere,2021,288(P3):132604-132604.
  19. 张鸣峰,杨洁.社交电商在园艺花卉销售中的商业模式研究[J].采写编,2021,(08):187-188.
  20. 于进.“互联网+”时代沭阳县花卉产业网络营销管理研究[D].江苏科技大学,2021.


致  谢

时光荏苒,大学的学业生涯即将画上美好的句号。在这段时光里,我深感老师的热情与友谊,校长对学生的关爱深深印在我的心中。老师们时常关心我们的生活状况,关切我们的旅游、寝室和学习环境,使我们感受到了温馨与关怀。在此,我想表达对那些曾经给予我帮助的人们的深深感激之情。

首先,我要衷心感谢我的导师。无论是在学业上还是生活中,您都给予我巨大的支持与启发。这些年来,在您的教导下,我不仅学到了丰富的知识,还领悟了做人的真谛。您的认真和待人之道让我受益匪浅,我感激能够成为您的学生。

同时,感谢我的专业课老师们。没有你们的精心教导,我的论文也不可能如此顺利。我所学到的知识将成为我未来发展的重要动力。

感谢同学们,写作过程中遇到的问题,得到了同学们的耐心指导和丰富参考材料。你们给予了我很多帮助,感谢你们对我的支持。

最后,感谢我的父母,是你们的支持和鼓励让我能够顺利完成学业。你们为我付出了辛勤的努力和无私的关爱,是我坚强前行的后盾。在即将离开校园,我深感家庭的温馨和爱意,这些将是我未来奋斗的力量源泉。

感谢你们一直以来的支持和陪伴,让我在大学的日子里无论遇到什么困难都感到温馨而坚定。未来,我将以更加饱满的热情投入社会工作,为家人和自己创造更美好的未来。再次感谢大家的陪伴与关爱!


附 录

系统关键代码

登录代码如下:

  /**

     * 登录

     * @param data

     * @param httpServletRequest

     * @return

     */

    @PostMapping("login")

    public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {

        log.info("[执行登录接口]");

        String username = data.get("username");

        String email = data.get("email");

        String phone = data.get("phone");

        String password = data.get("password");

        List resultList = null;

        Map<String, String> map = new HashMap<>();

        if(username != null && "".equals(username) == false){

            map.put("username", username);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }

        else if(email != null && "".equals(email) == false){

            map.put("email", email);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }

        else if(phone != null && "".equals(phone) == false){

            map.put("phone", phone);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }else{

            return error(30000, "账号或密码不能为空");

        }

        if (resultList == null || password == null) {

            return error(30000, "账号或密码不能为空");

        }

        //判断是否有这个用户

        if (resultList.size()<=0){

            return error(30000,"用户不存在");

        }

        User byUsername = (User) resultList.get(0);

        Map<String, String> groupMap = new HashMap<>();

        groupMap.put("name",byUsername.getUserGroup());

        List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));

        if (groupList.size()<1){

            return error(30000,"用户组不存在");

        }

        UserGroup userGroup = (UserGroup) groupList.get(0);

        //查询用户审核状态

        if (!StringUtils.isEmpty(userGroup.getSourceTable())){

            String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());

            if (res==null){

                return error(30000,"用户不存在");

            }

            if (!res.equals("已通过")){

                return error(30000,"该用户审核未通过");

            }

        }

        //查询用户状态

        if (byUsername.getState()!=1){

            return error(30000,"用户非可用状态,不能登录");

        }

        String md5password = service.encryption(password);

        if (byUsername.getPassword().equals(md5password)) {

            // 存储Token到数据库

            AccessToken accessToken = new AccessToken();

            accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));

            accessToken.setUser_id(byUsername.getUserId());

            Duration duration = Duration.ofSeconds(7200L);

            redisTemplate.opsForValue().set(accessToken.getToken(), accessToken,duration);

            // 返回用户信息

            JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));

            user.put("token", accessToken.getToken());

            JSONObject ret = new JSONObject();

            ret.put("obj",user);

            return success(ret);

        } else {

            return error(30000, "账号或密码不正确");

        }

    }

注册代码如下:

      /**

     * 注册

     * @param user

     * @return

     */

    @PostMapping("register")

    public Map<String, Object> signUp(@RequestBody User user) {

        // 查询用户

        Map<String, String> query = new HashMap<>();

        Map<String,Object> map = JSON.parseObject(JSON.toJSONString(user));

        query.put("username",user.getUsername());

        List list = service.selectBaseList(service.select(query, new HashMap<>()));

        if (list.size()>0){

            return error(30000, "用户已存在");

        }

        map.put("password",service.encryption(String.valueOf(map.get("password"))));

        service.insert(map);

        return success(1);

}  

找回密码代码如下:

 /**

     * 找回密码

     * @param form

     * @return

     */

    @PostMapping("forget_password")

    public Map<String, Object> forgetPassword(@RequestBody User form,HttpServletRequest request) {

        JSONObject ret = new JSONObject();

        String username = form.getUsername();

        String code = form.getCode();

        String password = form.getPassword();

        // 判断条件

        if(code == null || code.length() == 0){

            return error(30000, "验证码不能为空");

        }

        if(username == null || username.length() == 0){

            return error(30000, "用户名不能为空");

        }

        if(password == null || password.length() == 0){

            return error(30000, "密码不能为空");

        }

        // 查询用户

        Map<String, String> query = new HashMap<>();

        query.put("username",username);

        List list = service.selectBaseList(service.select(query, service.readConfig(request)));

        if (list.size() > 0) {

            User o = (User) list.get(0);

            JSONObject query2 = new JSONObject();

            JSONObject form2 = new JSONObject();

            // 修改用户密码

            query2.put("user_id",o.getUserId());

            form2.put("password",service.encryption(password));

            service.update(query, service.readConfig(request), form2);

            return success(1);

        }

        return error(70000,"用户不存在");

    }

修改密码代码如下:

 /**

     * 修改密码

     * @param data

     * @param request

     * @return

     */

    @PostMapping("change_password")

    public Map<String, Object> change_password(@RequestBody Map<String, String> data, HttpServletRequest request){

        // 根据Token获取UserId

        String token = request.getHeader("x-auth-token");

        Integer userId = tokenGetUserId(token);

        // 根据UserId和旧密码获取用户

        Map<String, String> query = new HashMap<>();

        String o_password = data.get("o_password");

        query.put("user_id" ,String.valueOf(userId));

        query.put("password" ,service.encryption(o_password));

        int count = service.selectBaseCount(service.count(query, service.readConfig(request)));

        if(count > 0){

            // 修改密码

            Map<String,Object> form = new HashMap<>();

            form.put("password",service.encryption(data.get("password")));

            service.update(query,service.readConfig(request),form);

            return success(1);

        }

        return error(10000,"密码修改失败!");

    }

增删查改代码如下:

 @PostMapping("/add")

    @Transactional

    public Map<String, Object> add(HttpServletRequest request) throws IOException {

        service.insert(service.readBody(request.getReader()));

        return success(1);

    }

public Map<String, Object> addMap(Map<String,Object> map){

    service.insert(map);

     return success(1);

 }

 @RequestMapping(value = "/del")

    @Transactional

    public Map<String, Object> del(HttpServletRequest request) {

        service.delete(service.readQuery(request), service.readConfig(request));

        return success(1);

    }

    public void delete(Map<String,String> query,Map<String,String> config){

        QueryWrapper wrapper = new QueryWrapper<E>();

        toWhereWrapper(query, "0".equals(config.get(FindConfig.GROUP_BY)),wrapper);

        baseMapper.delete(wrapper);

        log.info("[{}] - 删除操作:{}",wrapper.getSqlSelect());

    }

    @PostMapping("/set")

@Transactional

    public Map<String, Object> set(HttpServletRequest request) throws IOException {

        service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader()));

        return success(1);

    }

图片/文件/视频等的上传方法通过MultipartFile,代码如下:

   @PostMapping("/upload")

    public Map<String, Object> upload(@RequestParam("file") MultipartFile file) {

        log.info("进入方法");

        if (file.isEmpty()) {

            return error(30000, "没有选择文件");

        }

        try {

            //判断有没路径,没有则创建

            String filePath = System.getProperty("user.dir") + "/src/main/resources/static/";

            File targetDir = new File(filePath);

            if (!targetDir.exists() && !targetDir.isDirectory()) {

                if (targetDir.mkdirs()) {

                    log.info("创建目录成功");

                } else {

                    log.error("创建目录失败");

                }

            }

            String fileName = file.getOriginalFilename();

            File dest = new File(filePath + fileName);

            log.info("文件路径:{}", dest.getPath());

            log.info("文件名:{}", dest.getName());

            file.transferTo(dest);

            JSONObject jsonObject = new JSONObject();

            jsonObject.put("url", "/api/upload/" + fileName);

            return success(jsonObject);

        } catch (IOException e) {

            log.info("上传失败:{}", e.getMessage());

        }

        return error(30000, "上传失败");

    }

点赞+收藏+关注  →私信领取本源代码、数据库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值