三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

基于 SpringBoot 的家用电器销售系统

基于 SpringBoot 的家用电器销售系统

项目简介

本系统是一款基于B/S(Browser/Server)架构的家用电器在线销售平台,采用前后端分离设计,实现了从商品展示、购物车管理到订单处理的完整电商业务流程。系统支持管理员与普通用户两种角色,管理员可对用户、商品分类、商品及订单进行统一管理,普通用户可浏览商品、加入购物车、下单购买并管理个人订单。适用于课程设计、毕业设计、答辩演示及学习交流。

核心功能介绍

管理员端

模块功能说明
用户管理用户信息的增删改查,支持查看用户列表与详情
分类管理商品分类的维护,支持新增、编辑、删除分类
商品管理商品信息的增删改查,库存管理,商品图片上传
订单管理订单列表查询,订单发货,订单取消

用户端

模块功能说明
用户认证用户注册、登录
商品浏览按分类筛选、按名称搜索商品,查看商品详情
购物车添加商品、修改数量、删除商品
下单购买填写收货人、电话、地址,提交订单
订单管理查看我的订单,确认收货
个人信息修改个人资料、联系方式、收货地址

技术栈介绍

后端技术

技术版本说明
Java1.8开发语言
Spring Boot2.1.8应用框架
MyBatis2.1.0ORM持久层框架
MySQL Connector8.0.17数据库驱动
Lombok-简化实体类编写
FastJSON1.2.58JSON序列化

前端技术

技术版本说明
Vue2.6.11前端框架
Vue Router3.2.0路由管理
Element UI2.15.3UI组件库
Axios0.21.1HTTP请求库

其他

技术版本说明
MySQL8.0关系型数据库
Maven3.6+项目构建工具
Node.js12.0+前端运行环境

项目结构

c84/ ├── src/main/ │ ├── java/com/appliance/ │ │ ├── controller/ # 控制器层(RESTful API) │ │ │ ├── UserController.java │ │ │ ├── ProductController.java │ │ │ ├── CategoryController.java │ │ │ ├── CartController.java │ │ │ ├── OrdersController.java │ │ │ └── FileController.java │ │ ├── service/ # 业务逻辑层 │ │ ├── mapper/ # MyBatis数据访问层 │ │ ├── entity/ # 实体类 │ │ ├── common/ # 公共类(统一响应封装等) │ │ ├── config/ # 配置类(跨域、文件上传等) │ │ └── ApplianceApplication.java │ └── resources/ │ ├── mapper/ # MyBatis XML映射文件 │ ├── sql/ # 数据库初始化脚本 │ └── application.yml # 应用配置文件 ├── frontend/ │ ├── src/ │ │ ├── views/ # 页面组件 │ │ │ ├── Login.vue # 登录页 │ │ │ ├── Register.vue # 注册页 │ │ │ ├── Home.vue # 首页 │ │ │ ├── user/ # 用户端页面 │ │ │ └── admin/ # 管理端页面 │ │ ├── router/ # 路由配置 │ │ ├── App.vue │ │ └── main.js │ ├── package.json │ └── vue.config.js └── pom.xml

数据库设计

数据库概览

数据库名:appliance_sales,字符集:utf8mb4

表结构说明

1. user(用户表)
字段类型说明
idINT主键,自增
usernameVARCHAR(50)用户名,唯一
passwordVARCHAR(100)密码
nameVARCHAR(100)姓名
phoneVARCHAR(20)手机号
addressVARCHAR(500)地址
roleTINYINT角色:0-普通用户,1-管理员
create_timeDATETIME创建时间
2. category(商品分类表)
字段类型说明
idINT主键,自增
nameVARCHAR(100)分类名称
descriptionVARCHAR(500)分类描述
3. product(商品表)
字段类型说明
idINT主键,自增
nameVARCHAR(200)商品名称
category_idINT分类ID,外键
priceDECIMAL(10,2)价格
stockINT库存
imageVARCHAR(200)图片路径
descriptionTEXT商品描述
statusTINYINT状态:0-下架,1-上架
create_timeDATETIME创建时间
4. orders(订单表)
字段类型说明
idINT主键,自增
order_noVARCHAR(50)订单号,唯一
user_idINT用户ID,外键
total_amountDECIMAL(10,2)订单总金额
statusTINYINT状态:0-待发货,1-已发货,2-已完成
receiver_nameVARCHAR(100)收货人
receiver_phoneVARCHAR(20)收货电话
receiver_addressVARCHAR(500)收货地址
create_timeDATETIME创建时间
update_timeDATETIME更新时间
5. order_item(订单明细表)
字段类型说明
idINT主键,自增
order_idINT订单ID,外键
product_idINT商品ID,外键
product_nameVARCHAR(200)商品名称快照
product_priceDECIMAL(10,2)商品单价快照
quantityINT购买数量
6. cart(购物车表)
字段类型说明
idINT主键,自增
user_idINT用户ID,外键
product_idINT商品ID,外键
quantityINT数量
create_timeDATETIME创建时间

ER关系

  • product.category_idcategory.id
  • orders.user_iduser.id
  • order_item.order_idorders.id
  • order_item.product_idproduct.id
  • cart.user_iduser.id
  • cart.product_idproduct.id

安装与运行

1. 数据库配置

执行src/main/resources/sql/appliance_sales.sql创建数据库并导入初始数据。

修改src/main/resources/application.yml中的数据库连接信息:

spring: datasource: url: jdbc:mysql://localhost:3306/appliance_sales?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8 username: root password: 你的密码

2. 后端启动

mvn clean package mvn spring-boot:run

后端服务地址:http://localhost:8080

3. 前端启动

cd frontend npm install npm run serve

前端服务地址:http://localhost:8081

4. 生产部署

# 前端打包 cd frontend && npm run build # 后端打包 mvn clean package -DskipTests

默认账号

角色用户名密码
管理员admin123456
普通用户user123456

主要接口

用户

  • POST /api/user/login- 登录
  • POST /api/user/register- 注册
  • GET /api/user/{id}- 获取用户信息
  • POST /api/user- 保存/更新用户信息

商品

  • GET /api/product- 商品列表(支持分类、关键词筛选)
  • GET /api/product/{id}- 商品详情
  • POST /api/product- 保存商品(管理员)
  • DELETE /api/product/{id}- 删除商品(管理员)

订单

  • POST /api/orders- 创建/更新订单
  • GET /api/orders- 全部订单(管理员)
  • GET /api/orders/user/{userId}- 用户订单
  • GET /api/orders/{id}- 订单详情

购物车

  • POST /api/cart- 添加购物车
  • PUT /api/cart- 更新购物车
  • GET /api/cart/user/{userId}- 购物车列表
  • DELETE /api/cart/{id}- 删除购物车项

注意事项

  • 需预先安装并启动 MySQL 8.0
  • JDK 1.8、Maven 3.6+、Node.js 12.0+
  • 首次运行前需执行数据库脚本

← 返回列表