# 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 电商系统
![Java](https://img.shields.io/badge/Java-17-orange) ![Spring Boot](https://img.shields.io/badge/Spring%20Boot-3.4.7-brightgreen) ![Vue](https://img.shields.io/badge/Vue-3.5.17-green) ![Element Plus](https://img.shields.io/badge/Element%20Plus-2.10.2-blue) ![MySQL](https://img.shields.io/badge/MySQL-8.0-blue) ![License](https://img.shields.io/badge/License-MIT-green) 一个基于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主题色彩