github链接https://github.com/baibai-awd/mall-flashsale-system.git

一、项目简介

本项目是一个基于 Spring Boot + Vue 3 开发的在线商城秒杀拼团系统,包含商城前台、会员中心和后台管理模块。

系统实现了商品浏览、购物车、订单结算、秒杀抢购、拼团活动、优惠券、评价、售后申请、后台商品管理、活动管理、订单管理等完整电商业务流程。

项目适合作为 毕业设计、课程设计、Java Web 项目、Spring Boot 实战项目、Vue 前后端分离项目 进行学习和展示。


二、技术栈

后端技术

  • Java
  • Spring Boot
  • Spring Data JPA
  • MySQL
  • Redis
  • RabbitMQ
  • Hibernate Validator

前端技术

  • Vue 3
  • Vite
  • JavaScript
  • HTML / CSS

开发工具

  • IDEA
  • VS Code
  • Maven
  • Node.js
  • MySQL
  • Redis
  • RabbitMQ

三、项目功能模块

1. 商城前台模块

  • 商品首页展示
  • 商品分类筛选
  • 商品搜索
  • 商品详情查看
  • 店铺信息展示
  • 商品收藏
  • 浏览历史
  • 加入购物车
  • 购物车数量修改
  • 购物车商品删除
  • 商品结算下单

2. 用户会员模块

  • 用户注册
  • 用户登录
  • 个人信息修改
  • 收货地址管理
  • 我的订单
  • 我的优惠券
  • 我的收藏
  • 浏览记录
  • 我的评价
  • 售后申请

3. 秒杀活动模块

  • 秒杀活动展示
  • 秒杀库存控制
  • 秒杀下单
  • 秒杀排队结果查询
  • 防止重复抢购
  • 防止库存超卖

4. 拼团活动模块

  • 拼团活动展示
  • 发起拼团
  • 加入拼团
  • 拼团倒计时
  • 拼团成团判断
  • 拼团超时取消
  • 拼团订单管理

5. 后台管理模块

  • 后台数据总览
  • 商品新增、编辑、上下架
  • 店铺新增、编辑
  • 秒杀活动创建、激活、下线
  • 拼团活动创建、激活、下线
  • Banner 管理
  • 公告管理
  • 优惠券发放与停用
  • 订单状态流转
  • 用户评价审核
  • 售后申请审批


四、项目亮点

1. Redis + Lua 实现秒杀库存原子扣减

秒杀场景下,为了避免多个用户同时抢购导致库存超卖,系统使用 Redis 缓存秒杀库存,并通过 Lua 脚本 保证库存判断和扣减操作的原子性。

这样可以有效避免传统数据库扣库存在高并发场景下出现的数据不一致问题。

2. RabbitMQ 实现秒杀异步下单

秒杀请求不会直接写入数据库,而是先进入消息队列,再由消费者异步创建订单。

这样可以起到削峰填谷的作用,降低瞬时高并发请求对数据库造成的压力。

3. 完整的电商业务流程

系统覆盖了从商品浏览、加入购物车、提交订单、订单支付、订单发货、订单完成到售后申请的完整流程。

同时支持普通订单、秒杀订单、拼团订单三种订单类型。

4. 后台运营管理功能完整

后台支持商品、店铺、活动、Banner、公告、优惠券、订单、评价、售后等模块管理,可以满足商城运营管理的基本需求。

5. 前后端分离开发

前端使用 Vue 3 + Vite,后端使用 Spring Boot 提供 RESTful API,实现前后端分离开发模式,结构清晰,便于维护和扩展。


五、数据库设计说明

系统主要包含以下数据表:

  • 用户表
  • 商品表
  • 店铺表
  • 购物车表
  • 订单表
  • 支付记录表
  • 优惠券表
  • 收货地址表
  • 商品评价表
  • 售后申请表
  • 秒杀活动表
  • 拼团活动表
  • 拼团团队表
  • 拼团成员表
  • 首页 Banner 表
  • 公告表
  • 收藏表
  • 浏览记录表

六、系统运行环境

后端环境

  • JDK 17
  • Maven 3.x
  • MySQL 8.x
  • Redis
  • RabbitMQ

前端环境

  • Node.js
  • npm
  • Vue 3
  • Vite

七、项目启动方式

1. 启动后端

进入后端项目目录:

cd demo

修改配置文件:

spring: datasource: url: jdbc:mysql://127.0.0.1:3306/mall_system username: root password: root redis: host: 127.0.0.1 port: 6379 rabbitmq: host: 127.0.0.1 port: 5672

启动后端服务:

mvn spring-boot:run

后端默认地址:

http://localhost:8080


2. 启动前端

进入前端项目目录:

cd vs

安装依赖:

npm install

启动前端:

npm run dev

前端默认地址:

http://localhost:5173


八、核心接口示例

商品接口

GET /api/products GET /api/products/{id} POST /api/admin/products PUT /api/admin/products/{id} PUT /api/admin/products/{id}/enabled

秒杀接口

GET /api/flash-sales POST /api/flash-sales/purchase GET /api/flash-sales/purchase/result/{requestId} POST /api/admin/flash-sales PUT /api/admin/flash-sales/{id}/status

拼团接口

GET /api/group-buy/activities POST /api/group-buy/open POST /api/group-buy/join GET /api/group-buy/teams POST /api/admin/group-activities PUT /api/admin/group-activities/{id}/status

订单接口

GET /api/orders PUT /api/orders/status PUT /api/admin/orders/status


九、项目总结

本项目实现了一个功能较完整的在线商城秒杀拼团系统,涵盖了商城前台、用户中心、营销活动和后台管理等多个模块。

在技术实现上,项目使用 Redis + Lua 解决秒杀库存超卖问题,使用 RabbitMQ 实现秒杀异步下单和削峰处理,使用 Spring Boot + Vue 3 实现前后端分离开发。

通过该项目,可以学习到电商系统的基础业务设计、高并发秒杀处理、消息队列异步下单、后台管理系统开发以及 Vue 前端页面交互实现等内容。


十一、适用场景

  • Java 毕业设计
  • Spring Boot 项目实战
  • Vue 前后端分离项目
  • 电商系统课程设计
  • 秒杀系统学习案例
  • 拼团商城项目参考

十二、关键词

Spring Boot、Vue、Redis、RabbitMQ、MySQL、秒杀系统、拼团商城、在线商城、毕业设计、课程设计、Java Web、电商系统、后台管理系统

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐