万字文档-源码-基于springboot+vue鲜花销售系统
一、项目概述
1.1 项目背景
随着线上消费市场的持续发展,鲜花电商行业呈现快速增长态势。传统线下花店受地域限制、营业时间限制,面临客户拓展难、库存管理低效、订单处理混乱、客户粘性不足等问题。同时,消费者对鲜花购买的便捷性、产品多样性、服务体验的要求不断提升,传统线下模式已难以满足市场需求。
为解决行业痛点,搭建一套集线上展示、商品销售、订单管理、用户互动于一体的鲜花销售系统,实现商家数字化运营、用户便捷购物的双向赋能,推动鲜花零售行业向线上化、标准化、智能化转型。
1.2 项目目标
本项目旨在开发一套基于 SpringBoot+Vue 前后端分离架构的鲜花销售系统,核心目标如下:
用户端:为消费者提供鲜花浏览、商品选购、在线下单、评价互动的一站式购物体验。
商家端:为入驻商家提供商品管理、订单处理、库存维护、店铺运营的后台管理功能。
管理端:为平台管理员提供用户管理、商家审核、商品监管、系统配置的统一管理入口。
业务闭环:实现从商品上架、用户下单、订单流转到评价售后的全流程数字化管理,提升运营效率与用户体验。
1.3 系统功能架构
系统采用前后端分离架构,分为前台用户模块和后台管理模块,后台管理模块细分为管理员、商家两大角色,整体功能架构如下:
前台用户模块:浏览首页、商家信息、鲜花信息、交流论坛、公告信息、购物车、订单管理、个人中心。
后台管理员模块:用户管理、商家管理、鲜花种类管理、鲜花信息管理、论坛管理、系统管理、订单管理、个人资料管理。
后台商家模块:鲜花信息管理、订单管理、个人资料管理。
二、技术栈选型
| 技术分类 | 技术选型 | 说明 |
|---|---|---|
| 后端框架 | Spring Boot 2.x | 构建稳定、高效的 Java 后端服务,提供 RESTful API 接口,支撑前后端数据交互。 |
| 前端框架 | Vue 2/3 + Vue Router + Vuex | 实现组件化、响应式的前端页面开发,实现路由管理与全局状态管理。 |
| 数据库 | MySQL 8.x | 关系型数据库,存储用户、商家、商品、订单等结构化业务数据。 |
| ORM 框架 | MyBatis-Plus | 简化数据库 CRUD 操作,支持分页、条件查询,提升后端开发效率。 |
| UI 组件库 | Element UI、Bootstrap | 快速搭建后台管理界面与前台页面,实现统一的视觉风格与交互效果。 |
| 其他技术 | Maven、Axios、JWT、文件上传 | Maven 管理项目依赖,Axios 实现前后端请求交互,JWT 实现登录认证,支持商品图片上传存储。 |
三、系统功能模块详细设计
3.1 前台用户模块
3.1.1 系统首页
功能描述:展示平台轮播图、热门鲜花推荐、新品上架、商家推荐、公告信息等内容,为用户提供直观的商品浏览入口。
核心逻辑:后端配置首页展示内容,按销量、新品等维度推荐商品,前端渲染展示,支持用户快速跳转至商品详情页。
3.1.2 商家信息模块
功能描述:用户可浏览入驻商家列表,查看店铺名称、店铺地址、负责人、店铺图片等信息,支持按店铺名、地址模糊查询。
核心逻辑:调用后端接口获取商家数据,分页展示店铺信息,点击进入店铺详情页,查看该店铺的所有鲜花商品。
3.1.3 鲜花信息模块
功能描述:用户可按鲜花分类、品牌、价格区间筛选商品,查看鲜花详情(名称、规格、价格、库存、介绍、用户评价),支持收藏、点赞、评论互动。
核心逻辑:关联商品表、分类表、评论表,实现多条件筛选查询,商品详情页展示完整信息与用户反馈,支持收藏、点赞操作。
3.1.4 购物车与订单模块
功能描述:用户可将商品加入购物车,管理购物车商品(修改数量、删除商品),提交订单、查看订单状态、处理订单(支付、取消、确认收货)。
核心逻辑:购物车数据与用户账号绑定,提交订单时生成订单记录,关联商品、用户、商家信息,订单状态随支付、发货、收货流程同步更新。
3.1.5 交流论坛模块
功能描述:用户可浏览论坛帖子、发布帖子、评论互动,交流鲜花养护经验、购买心得。
核心逻辑:实现帖子的发布、查询、评论功能,按发布时间排序展示帖子列表,支持用户互动交流。
3.1.6 公告信息模块
功能描述:用户可查看平台发布的公告通知,了解平台活动、服务规则、运营通知等信息。
核心逻辑:调用后端公告接口,按发布时间展示公告列表,点击查看公告详情。
3.1.7 个人中心模块
功能描述:用户可管理个人信息、查看我的订单、我的收藏、我的评论、修改密码,管理收货地址。
核心逻辑:关联用户表、订单表、收藏表、评论表,实现个人数据的统一管理与维护。
3.2 后台管理员模块
3.2.1 用户管理模块
功能描述:管理员可查看、新增、编辑、删除用户账号,管理用户状态,支持按用户名、手机号查询用户。
核心逻辑:实现用户数据的 CRUD 操作,管理用户账号状态(正常 / 禁用),维护平台用户信息。
3.2.2 商家管理模块
功能描述:管理员可审核入驻商家、管理商家账号,查看商家信息、店铺状态,新增、编辑、删除商家信息。
核心逻辑:管理入驻商家的资质审核与账号状态,关联店铺信息,实现商家的分级管理。
3.2.3 鲜花种类管理模块
功能描述:管理员可维护鲜花分类信息,新增、编辑、删除分类,为商品分类管理提供数据支撑。
核心逻辑:维护商品分类字典,实现分类数据的 CRUD 操作,关联商品表,实现商品分类筛选。
3.2.4 鲜花信息管理模块
功能描述:管理员可查看所有商家发布的鲜花商品,审核商品信息,管理商品上下架,查看商品详情与用户评价。
核心逻辑:对商家发布的商品进行审核监管,控制商品上架状态,查看商品评价反馈,维护平台商品质量。
3.2.5 论坛管理模块
功能描述:管理员可管理论坛帖子,查看、删除违规帖子,维护论坛秩序,审核用户评论。
核心逻辑:实现帖子与评论的审核、删除操作,处理违规内容,保障论坛交流环境合规有序。
3.2.6 订单管理模块
功能描述:管理员可查看平台所有订单,按订单状态、时间、商家查询订单,处理订单纠纷。
核心逻辑:关联订单表、用户表、商家表,实现订单数据的统一查看与管理,支持按多条件筛选查询。
3.2.7 系统管理模块
功能描述:管理员可配置系统公告、轮播图、系统参数,管理后台用户权限,维护系统基础配置。
核心逻辑:管理平台公共配置信息,实现公告、轮播图等内容的后台维护,配置系统运行参数。
3.2.8 个人资料管理模块
功能描述:管理员可修改个人登录密码、头像等信息。
核心逻辑:维护管理员账号信息,支持密码修改与头像更新。
3.3 后台商家模块
3.3.1 鲜花信息管理模块
功能描述:商家可新增、编辑、删除自家店铺的鲜花商品,上传商品图片、设置商品价格、库存、规格等信息,管理商品上下架。
核心逻辑:实现商家对自有商品的全生命周期管理,支持商品信息的 CRUD 操作,控制商品上架状态。
3.3.2 订单管理模块
功能描述:商家可查看店铺订单,处理订单状态(发货、确认收货),查看订单详情,管理订单备注。
核心逻辑:关联订单表,展示该商家的所有订单,支持订单状态更新,处理用户订单请求。
3.3.3 个人资料管理模块
功能描述:商家可修改店铺信息、个人登录密码、头像等信息。
核心逻辑:维护商家账号与店铺信息,支持密码修改与店铺资料更新。
四、数据库设计
4.1 核心数据表设计
4.1.1 用户表 (user)
| 字段名 | 类型 | 主键 | 说明 |
|---|---|---|---|
| id | bigint | 是 | 用户 ID |
| username | varchar(50) | 否 | 用户名 |
| password | varchar(100) | 否 | 加密密码 |
| phone | varchar(20) | 否 | 手机号 |
| avatar | varchar(255) | 否 | 头像路径 |
| role | varchar(20) | 否 | 用户角色:user/admin/merchant |
| status | int | 否 | 账号状态:0 禁用 / 1 正常 |
| create_time | datetime | 否 | 创建时间 |
| update_time | datetime | 否 | 更新时间 |
4.1.2 商家表 (merchant)
| 字段名 | 类型 | 主键 | 说明 |
|---|---|---|---|
| id | bigint | 是 | 商家 ID |
| user_id | bigint | 否 | 关联用户 ID |
| shop_name | varchar(100) | 否 | 店铺名称 |
| shop_address | varchar(200) | 否 | 店铺地址 |
| contact_person | varchar(50) | 否 | 负责人 |
| shop_image | varchar(255) | 否 | 店铺图片 |
| status | int | 否 | 店铺状态:0 待审核 / 1 正常 / 2 禁用 |
| create_time | datetime | 否 | 创建时间 |
4.1.3 鲜花分类表 (flower_category)
| 字段名 | 类型 | 主键 | 说明 |
|---|---|---|---|
| id | bigint | 是 | 分类 ID |
| category_name | varchar(50) | 否 | 分类名称 |
| create_time | datetime | 否 | 创建时间 |
4.1.4 鲜花信息表 (flower_info)
| 字段名 | 类型 | 主键 | 说明 |
|---|---|---|---|
| id | bigint | 是 | 商品 ID |
| flower_name | varchar(100) | 否 | 鲜花名称 |
| shop_id | bigint | 否 | 关联商家 ID |
| category_id | bigint | 否 | 关联分类 ID |
| brand | varchar(50) | 否 | 品牌 |
| spec | varchar(50) | 否 | 规格 |
| price | decimal(10,2) | 否 | 价格 |
| stock | int | 否 | 库存数量 |
| single_limit | int | 否 | 单用户购买上限 |
| cover_image | varchar(255) | 否 | 封面图片 |
| images | text | 否 | 商品详情图片(多图逗号分隔) |
| description | text | 否 | 商品介绍 |
| integral | int | 否 | 积分 |
| publish_time | datetime | 否 | 上架日期 |
| click_count | int | 否 | 点击次数 |
| collect_count | int | 否 | 收藏数 |
| comment_count | int | 否 | 评论数 |
| status | int | 否 | 商品状态:0 下架 / 1 上架 |
| create_time | datetime | 否 | 创建时间 |
4.1.5 购物车表 (cart)
| 字段名 | 类型 | 主键 | 说明 |
|---|---|---|---|
| id | bigint | 是 | 购物车 ID |
| user_id | bigint | 否 | 关联用户 ID |
| flower_id | bigint | 否 | 关联商品 ID |
| quantity | int | 否 | 购买数量 |
| create_time | datetime | 否 | 创建时间 |
4.1.6 订单表 (orders)
| 字段名 | 类型 | 主键 | 说明 |
|---|---|---|---|
| id | bigint | 是 | 订单 ID |
| order_no | varchar(50) | 否 | 订单编号 |
| user_id | bigint | 否 | 关联用户 ID |
| shop_id | bigint | 否 | 关联商家 ID |
| total_price | decimal(10,2) | 否 | 订单总价 |
| status | varchar(20) | 否 | 订单状态:待支付 / 待发货 / 待收货 / 已完成 / 已取消 |
| receiver_name | varchar(50) | 否 | 收货人姓名 |
| receiver_phone | varchar(20) | 否 | 收货人电话 |
| receiver_address | varchar(200) | 否 | 收货地址 |
| pay_time | datetime | 否 | 支付时间 |
| send_time | datetime | 否 | 发货时间 |
| receive_time | datetime | 否 | 收货时间 |
| create_time | datetime | 否 | 下单时间 |
4.1.7 订单详情表 (order_detail)
| 字段名 | 类型 | 主键 | 说明 |
|---|---|---|---|
| id | bigint | 是 | 详情 ID |
| order_id | bigint | 否 | 关联订单 ID |
| flower_id | bigint | 否 | 关联商品 ID |
| quantity | int | 否 | 购买数量 |
| price | decimal(10,2) | 否 | 商品单价 |
| create_time | datetime | 否 | 创建时间 |
4.1.8 评论表 (comment)
| 字段名 | 类型 | 主键 | 说明 |
|---|---|---|---|
| id | bigint | 是 | 评论 ID |
| flower_id | bigint | 否 | 关联商品 ID |
| user_id | bigint | 否 | 关联用户 ID |
| content | text | 否 | 评论内容 |
| like_count | int | 否 | 点赞数 |
| hate_count | int | 否 | 点踩数 |
| create_time | datetime | 否 | 评论时间 |
4.1.9 论坛帖子表 (forum_post)
| 字段名 | 类型 | 主键 | 说明 |
|---|---|---|---|
| id | bigint | 是 | 帖子 ID |
| user_id | bigint | 否 | 关联用户 ID |
| title | varchar(100) | 否 | 帖子标题 |
| content | text | 否 | 帖子内容 |
| create_time | datetime | 否 | 发布时间 |
4.1.10 公告表 (notice)
| 字段名 | 类型 | 主键 | 说明 |
|---|---|---|---|
| id | bigint | 是 | 公告 ID |
| title | varchar(100) | 否 | 公告标题 |
| content | text | 否 | 公告内容 |
| publish_time | datetime | 否 | 发布时间 |
| status | int | 否 | 公告状态:0 关闭 / 1 开启 |
五、后端核心设计
5.1 项目结构
com.flower ├── config # 配置类(跨域、JWT、文件上传、权限配置) ├── controller # 控制层,处理前后端请求 │ ├── UserController.java # 用户相关接口 │ ├── MerchantController.java # 商家相关接口 │ ├── FlowerController.java # 鲜花商品接口 │ ├── CartController.java # 购物车接口 │ ├── OrderController.java # 订单接口 │ ├── CommentController.java # 评论接口 │ ├── ForumController.java # 论坛接口 │ └── NoticeController.java # 公告接口 ├── service # 业务逻辑层 │ ├── impl # 业务实现类 │ │ ├── UserServiceImpl.java │ │ ├── FlowerServiceImpl.java │ │ └── ... ├── mapper # MyBatis数据访问层 │ ├── UserMapper.java │ ├── MerchantMapper.java │ └── ... ├── entity # 数据库实体类 ├── utils # 工具类(结果封装、JWT、文件工具) └── FlowerApplication.java # 项目启动类5.2 核心接口设计
5.2.1 用户认证接口
| 接口路径 | 请求方式 | 功能说明 |
|---|---|---|
| /api/user/login | POST | 用户登录,返回 Token 与用户信息 |
| /api/user/register | POST | 用户注册 |
| /api/user/info | GET | 获取当前登录用户信息 |
| /api/user/update | PUT | 修改用户信息 |
5.2.2 鲜花商品接口
| 接口路径 | 请求方式 | 功能说明 |
|---|---|---|
| /api/flower/list | GET | 分页查询鲜花商品列表 |
| /api/flower/{id} | GET | 获取商品详情 |
| /api/flower/add | POST | 商家新增商品 |
| /api/flower/update | PUT | 商家修改商品信息 |
| /api/flower/delete/{id} | DELETE | 商家删除商品 |
5.2.3 购物车与订单接口
| 接口路径 | 请求方式 | 功能说明 |
|---|---|---|
| /api/cart/list | GET | 获取用户购物车列表 |
| /api/cart/add | POST | 添加商品到购物车 |
| /api/order/create | POST | 提交订单 |
| /api/order/list | GET | 查询用户 / 商家订单列表 |
| /api/order/updateStatus | PUT | 更新订单状态 |
5.2.4 商家与管理员接口
| 接口路径 | 请求方式 | 功能说明 |
|---|---|---|
| /api/merchant/list | GET | 管理员查询商家列表 |
| /api/merchant/audit | PUT | 管理员审核商家 |
| /api/flower/category/list | GET | 获取鲜花分类列表 |
| /api/flower/category/add | POST | 管理员新增分类 |
| /api/notice/list | GET | 获取公告列表 |
| /api/notice/add | POST | 管理员新增公告 |
六、前端核心设计
6.1 前台用户端项目结构
src ├── assets # 静态资源、全局样式 ├── components # 公共组件(轮播图、商品卡片、分页组件) ├── views # 前台页面 │ ├── home # 首页 │ ├── shop # 商家列表与详情页 │ ├── flower # 商品列表与详情页 │ ├── cart # 购物车页面 │ ├── order # 订单相关页面 │ ├── forum # 论坛页面 │ └── user # 个人中心页面 ├── router # 路由配置 ├── store # Vuex状态管理 ├── utils # 请求封装、工具方法 ├── App.vue └── main.js6.2 后台管理端项目结构
src ├── assets # 静态资源、全局样式 ├── components # 公共组件(侧边栏、表格、弹窗、上传组件) ├── views # 后台页面 │ ├── user # 用户管理页面 │ ├── merchant # 商家管理页面 │ ├── flower # 商品分类与商品管理页面 │ ├── order # 订单管理页面 │ ├── forum # 论坛管理页面 │ └── system # 系统公告与配置页面 ├── router # 路由配置 ├── store # Vuex状态管理 ├── utils # 请求封装、工具方法 ├── App.vue └── main.js七、系统部署与运行
7.1 环境依赖
后端环境:JDK 1.8+、Maven 3.6+
前端环境:Node.js 14+、npm
数据库:MySQL 8.0
运行服务器:Windows/Linux CentOS
7.2 部署步骤
数据库初始化:创建数据库,执行项目 SQL 脚本,导入数据表与基础数据。
后端部署:修改
application.yml中的数据库连接配置、文件上传配置,执行mvn clean package打包项目,运行java -jar xxx.jar启动后端服务。前台用户端部署:执行
npm install安装依赖,npm run build打包项目,将 dist 文件部署至 Nginx 服务器,配置反向代理对接后端接口。后台管理端部署:同前台用户端,打包后部署至 Nginx,配置不同路由路径,实现前后台页面访问。
八、系统测试
8.1 功能测试
对系统核心功能进行全覆盖测试,包括用户登录注册、商品浏览与选购、购物车与订单流程、商家商品管理、管理员后台操作、论坛互动等,验证功能正常可用、流程闭环、数据无误。
8.2 权限测试
验证不同角色(用户、商家、管理员)的权限隔离,确保用户仅可操作个人功能,商家仅可管理自有商品与订单,管理员拥有系统全部管理权限,无越权访问漏洞。
8.3 兼容性测试
测试系统在主流浏览器(Chrome、Firefox、Edge)上的显示与交互效果,前台页面在不同设备(PC、移动端)上的响应式布局效果,确保页面适配良好、交互流畅。
九、总结与展望
9.1 项目总结
本鲜花销售系统基于 SpringBoot+Vue 前后端分离架构开发,实现了前台用户购物、商家店铺运营、平台管理员监管的全流程业务闭环。系统功能覆盖商品管理、订单处理、用户互动、店铺管理、系统配置等核心场景,界面设计简洁友好,操作流程清晰,满足了线上鲜花零售的实际业务需求,具备良好的实用性与稳定性。
9.2 未来展望
功能拓展:新增鲜花养护指南、会员积分体系、优惠券营销、物流信息对接等功能,提升用户粘性与复购率。
技术优化:引入 Redis 缓存优化商品列表、首页数据的访问速度,引入消息队列处理订单消息推送,提升系统并发处理能力。
多端适配:开发小程序端,适配移动端用户购物场景,实现多端数据同步,提升用户使用便捷性。
附录:核心代码示例
1. SpringBoot 启动类
@SpringBootApplication@MapperScan("com.flower.mapper")publicclassFlowerApplication{publicstaticvoidmain(String[]args){SpringApplication.run(FlowerApplication.class,args);}}2. Vue 路由核心配置(前台用户端)
constroutes=[{path:'/',name:'Home',component:()=>import('../views/home/Home.vue')},{path:'/shop',name:'ShopList',component:()=>import('../views/shop/ShopList.vue')},{path:'/flower/:id',name:'FlowerDetail',component:()=>import('../views/flower/FlowerDetail.vue')},{path:'/cart',name:'Cart',component:()=>import('../views/cart/Cart.vue'),meta:{requiresAuth:true}},{path:'/order',name:'OrderList',component:()=>import('../views/order/OrderList.vue'),meta:{requiresAuth:true}}]3. 商品列表查询接口(后端)
@RestController@RequestMapping("/api/flower")publicclassFlowerController{@AutowiredprivateFlowerServiceflowerService;@GetMapping("/list")publicResultlist(@RequestParam(defaultValue="1")IntegerpageNum,@RequestParam(defaultValue="10")IntegerpageSize,@RequestParam(required=false)StringflowerName,@RequestParam(required=false)LongcategoryId,@RequestParam(required=false)Stringbrand,@RequestParam(required=false)DoubleminPrice,@RequestParam(required=false)DoublemaxPrice){Page<FlowerInfo>page=flowerService.list(pageNum,pageSize,flowerName,categoryId,brand,minPrice,maxPrice);returnResult.success(page);}}十、项目资料
👇🏻 精彩专栏推荐订阅👇🏻 在下方专栏👇🏻不然下次找不到哟
《Java精品推荐项目》
《springboot+vue项目100套》
《ssm项目100套》
《微信小程序合集》