# easy-mart-system
**Repository Path**: lonelight/easy-mart-system
## Basic Information
- **Project Name**: easy-mart-system
- **Description**: 基于SpringBoot3+Vue3开发的电商系统。
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 6
- **Forks**: 1
- **Created**: 2025-07-01
- **Last Updated**: 2026-03-12
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Easy Mart 电商系统






一个基于Spring Boot + Vue3的现代化电商系统,包含用户端、管理端和后端服务
## 📋 目录
- [项目简介](#项目简介)
- [系统架构](#系统架构)
- [技术栈](#技术栈)
- [功能特性](#功能特性)
- [项目结构](#项目结构)
- [快速开始](#快速开始)
- [部署指南](#部署指南)
- [API文档](#api文档)
- [业务流程图](#业务流程图)
- [开发规范](#开发规范)
- [贡献指南](#贡献指南)
- [许可证](#许可证)
## 🚀 项目简介
Easy Mart 是一个功能完整的电商系统,采用前后端分离架构,包含:
- **用户端前端** (easy-mart-user-frontend):面向消费者的购物平台
- **管理端前端** (easy-mart-admin-frontend):面向商家的管理后台
- **后端服务** (easy-mart-backend):提供API接口和业务逻辑
### 核心特色
- 🎯 **现代化技术栈**:Spring Boot 3 + Vue 3 + Element Plus
- 🔐 **安全认证**:JWT无状态认证,支持用户和管理员权限控制
- 📱 **响应式设计**:支持PC端和移动端访问
- 🛒 **完整购物流程**:商品浏览、购物车、订单、支付、评价
- 🎨 **优雅UI设计**:基于Element Plus的现代化界面
- 📊 **数据统计**:完整的管理后台数据分析
## 🏗 系统架构
```
┌─────────────────┐ ┌─────────────────┐
│ 用户端前端 │ │ 管理端前端 │
│ Vue3 + Vite │ │ Vue3 + Vite │
│ Element Plus │ │ Element Plus │
│ Port: 3000 │ │ Port: 3001 │
└─────────────────┘ └─────────────────┘
│ │
└───────────┬───────────┘
│
┌─────────────────┐
│ 后端服务 │
│ Spring Boot │
│ Port: 8080 │
└─────────────────┘
│
┌─────────────────┐
│ MySQL数据库 │
│ Port: 3306 │
└─────────────────┘
```
## 🛠 技术栈
### 后端技术
- **框架**: Spring Boot 3.4.7
- **数据库**: MySQL 8.0 + MyBatis-Plus 3.5.12
- **连接池**: Druid
- **认证**: JWT 0.12.6
- **安全**: Spring Security (密码加密)
- **文件存储**: 阿里云OSS
- **JSON处理**: FastJSON2
- **测试**: JUnit 5 + H2 Database
### 前端技术
- **框架**: Vue 3.5.17 (Composition API)
- **构建工具**: Vite 7.0.0
- **UI组件**: Element Plus 2.10.2
- **状态管理**: Pinia 3.0.3
- **路由**: Vue Router 4.5.1
- **HTTP客户端**: Axios 1.10.0
- **图标**: Element Plus Icons
### 开发工具
- **Java**: JDK 17
- **Node.js**: 16+
- **包管理**: Maven (后端) + npm (前端)
- **IDE**: IntelliJ IDEA / VS Code
## ✨ 功能特性
### 🛍️ 用户端功能
#### 用户认证
- ✅ 用户注册/登录/登出
- ✅ JWT Token认证
- ✅ 个人信息管理
- ✅ 头像上传
- ✅ 收货地址管理
#### 商品浏览
- ✅ 商品列表展示(分页、排序、筛选)
- ✅ 商品详情查看
- ✅ 分类树形结构浏览
- ✅ 商品搜索(关键词、品牌、价格区间)
- ✅ 热门商品推荐
- ✅ 新品推荐
#### 购物车
- ✅ 添加商品到购物车
- ✅ 购物车商品数量修改
- ✅ 购物车商品删除
- ✅ 批量操作(全选、清空)
- ✅ 库存检查
- ✅ 购物车统计
#### 订单管理
- ✅ 订单创建(购物车下单)
- ✅ 订单列表查询
- ✅ 订单详情查看
- ✅ 订单状态跟踪
- ✅ 订单取消
- ✅ 确认收货
#### 评价系统
- ✅ 商品评价发布
- ✅ 评价图片上传
- ✅ 评价列表查看
- ✅ 评分统计
### 🔧 管理端功能
#### 用户管理
- ✅ 用户列表查询
- ✅ 用户详情查看
- ✅ 用户状态管理
- ✅ 用户统计信息
#### 商品管理
- ✅ 商品CRUD操作
- ✅ 商品图片上传
- ✅ 商品状态管理
- ✅ 库存管理
- ✅ 分类管理(树形结构)
#### 订单管理
- ✅ 订单列表查询
- ✅ 订单详情查看
- ✅ 订单状态更新
- ✅ 发货管理
- ✅ 订单统计
#### 评价管理
- ✅ 评价列表查询
- ✅ 评价状态管理
- ✅ 商家回复
- ✅ 批量操作
#### 系统管理
- ✅ 数据统计仪表盘
- ✅ 文件上传管理
- ✅ 系统配置
## 📁 项目结构
```
easy-mart-system/
├── easy-mart-backend/ # 后端服务
│ ├── src/main/java/ # Java源码
│ │ └── com/doublethread/easymart/
│ │ ├── modules/ # 业务模块
│ │ │ ├── user/ # 用户模块
│ │ │ ├── product/ # 商品模块
│ │ │ ├── order/ # 订单模块
│ │ │ └── cart/ # 购物车模块
│ │ ├── common/ # 公共模块
│ │ └── config/ # 配置类
│ ├── src/main/resources/ # 资源文件
│ └── pom.xml # Maven配置
├── easy-mart-user-frontend/ # 用户端前端
│ ├── src/
│ │ ├── views/ # 页面组件
│ │ ├── components/ # 公共组件
│ │ ├── api/ # API接口
│ │ ├── store/ # 状态管理
│ │ └── router/ # 路由配置
│ └── package.json # 依赖配置
├── easy-mart-admin-frontend/ # 管理端前端
│ ├── src/
│ │ ├── views/ # 页面组件
│ │ ├── components/ # 公共组件
│ │ ├── api/ # API接口
│ │ ├── store/ # 状态管理
│ │ └── router/ # 路由配置
│ └── package.json # 依赖配置
├── docs/ # 项目文档
│ ├── api/ # API文档
│ ├── sql/ # 数据库脚本
│ └── business-flow/ # 业务流程图
└── README.md # 项目说明
```
## 🚀 快速开始
### 环境要求
- **Java**: JDK 17+
- **Node.js**: 16+
- **MySQL**: 8.0+
- **Maven**: 3.6+
### 1. 克隆项目
```bash
git clone https://github.com/your-username/easy-mart-system.git
cd easy-mart-system
```
### 2. 数据库配置
```bash
# 创建数据库
mysql -u root -p
CREATE DATABASE easy_mart DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# 导入数据库脚本
mysql -u root -p easy_mart < docs/sql/easy_mart_tables.sql
mysql -u root -p easy_mart < docs/sql/easy_mart_data.sql
```
### 3. 后端启动
```bash
cd easy-mart-backend
# 修改数据库配置
# 编辑 src/main/resources/application.yml
# 配置数据库连接信息和阿里云OSS信息
# 启动后端服务
mvn spring-boot:run
```
后端服务将在 http://localhost:8080 启动
### 4. 用户端前端启动
```bash
cd easy-mart-user-frontend
# 安装依赖
npm install
# 启动开发服务器
npm run dev
```
用户端将在 http://localhost:3000 启动
### 5. 管理端前端启动
```bash
cd easy-mart-admin-frontend
# 安装依赖
npm install
# 启动开发服务器
npm run dev
```
管理端将在 http://localhost:3001 启动
### 6. 访问系统
- **用户端**: http://localhost:3000
- **管理端**: http://localhost:3001 (默认管理员账号: admin/admin123)
- **后端API**: http://localhost:8080
## 📦 部署指南
### 生产环境部署
#### 1. 后端部署
```bash
# 打包
mvn clean package -DskipTests
# 运行
java -jar target/easy-mart-backend-1.0.0.jar --spring.profiles.active=prod
```
#### 2. 前端部署
```bash
# 用户端构建
cd easy-mart-user-frontend
npm run build
# 管理端构建
cd easy-mart-admin-frontend
npm run build
```
将构建后的 `dist` 目录部署到 Nginx 或其他静态文件服务器。
#### 3. Nginx配置示例
```nginx
# 用户端
server {
listen 80;
server_name your-domain.com;
root /path/to/easy-mart-user-frontend/dist;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
location /api {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
# 管理端
server {
listen 80;
server_name admin.your-domain.com;
root /path/to/easy-mart-admin-frontend/dist;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
location /api {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
```
## 📚 API文档
### API接口分类
项目API按照访问权限和功能模块进行分类:
#### 公开接口(无需认证)
- **商品相关**: `/api/public/products/**`
- **分类相关**: `/api/public/categories/**`
- **用户认证**: `/api/auth/**`
#### 用户接口(需要用户认证)
- **用户中心**: `/api/user/**`
- **购物车**: `/api/user/cart/**`
- **订单管理**: `/api/user/orders/**`
- **地址管理**: `/api/user/addresses/**`
#### 管理接口(需要管理员认证)
- **用户管理**: `/api/admin/users/**`
- **商品管理**: `/api/admin/products/**`
- **分类管理**: `/api/admin/categories/**`
- **订单管理**: `/api/admin/orders/**`
### 统一响应格式
```json
{
"code": 200,
"message": "操作成功",
"data": {}
}
```
### 分页响应格式
```json
{
"code": 200,
"message": "查询成功",
"data": {
"records": [],
"total": 100,
"current": 1,
"size": 10
}
}
```
## 📊 业务流程图
项目包含完整的业务流程图,位于 `docs/business-flow/` 目录:
- **系统架构图**: 整体系统架构设计
- **数据库设计图**: 数据库表结构关系
- **用户认证流程**: JWT认证机制
- **商品管理流程**: 商品CRUD操作流程
- **订单处理流程**: 完整的订单生命周期
- **购物车流程**: 购物车操作流程
## 🔧 开发规范
### 后端开发规范
- **包命名**: 使用 `com.doublethread.easymart` 作为基础包名
- **API设计**: RESTful风格,统一响应格式
- **异常处理**: 全局异常处理器统一处理
- **日志记录**: 使用SLF4J + Logback
- **代码风格**: 遵循阿里巴巴Java开发手册
### 前端开发规范
- **组件命名**: 使用PascalCase命名组件
- **API调用**: 统一使用axios封装的request方法
- **状态管理**: 使用Pinia进行状态管理
- **路由管理**: 统一在router目录管理路由
- **样式规范**: 使用Element Plus主题色彩