319 lines
8.7 KiB
Markdown
319 lines
8.7 KiB
Markdown
# 订单管理系统功能总结
|
||
|
||
## 🎯 功能概述
|
||
|
||
订单管理系统是一个完整的电商订单处理解决方案,支持订单创建、状态管理、支付集成、发货跟踪等全流程功能。
|
||
|
||
## 📋 核心功能
|
||
|
||
### 1. 订单实体设计
|
||
|
||
#### Order(订单主表)
|
||
- **订单号**: 唯一标识,自动生成
|
||
- **订单金额**: 支持多种货币
|
||
- **订单状态**: 9种状态流转
|
||
- **订单类型**: 5种订单类型
|
||
- **联系信息**: 邮箱、电话
|
||
- **地址信息**: 收货地址、账单地址
|
||
- **时间戳**: 创建、更新、支付、发货、送达、取消时间
|
||
|
||
#### OrderItem(订单项)
|
||
- **商品信息**: 名称、描述、SKU
|
||
- **价格信息**: 单价、数量、小计
|
||
- **商品图片**: 支持图片展示
|
||
|
||
#### OrderStatus(订单状态)
|
||
- `PENDING` - 待支付
|
||
- `CONFIRMED` - 已确认
|
||
- `PAID` - 已支付
|
||
- `PROCESSING` - 处理中
|
||
- `SHIPPED` - 已发货
|
||
- `DELIVERED` - 已送达
|
||
- `COMPLETED` - 已完成
|
||
- `CANCELLED` - 已取消
|
||
- `REFUNDED` - 已退款
|
||
|
||
#### OrderType(订单类型)
|
||
- `PRODUCT` - 商品订单
|
||
- `SERVICE` - 服务订单
|
||
- `SUBSCRIPTION` - 订阅订单
|
||
- `DIGITAL` - 数字商品
|
||
- `PHYSICAL` - 实体商品
|
||
|
||
### 2. 数据访问层
|
||
|
||
#### OrderRepository
|
||
- **基础查询**: 按ID、订单号、用户ID查询
|
||
- **状态查询**: 按订单状态筛选
|
||
- **时间查询**: 按创建时间范围查询
|
||
- **统计查询**: 订单数量、金额统计
|
||
- **特殊查询**: 过期订单、最近订单
|
||
|
||
#### OrderItemRepository
|
||
- **关联查询**: 按订单ID查询订单项
|
||
- **商品查询**: 按SKU、商品名称查询
|
||
- **统计查询**: 商品销售数量、金额统计
|
||
|
||
### 3. 业务服务层
|
||
|
||
#### OrderService
|
||
- **订单创建**: 自动计算金额、生成订单号
|
||
- **状态管理**: 订单状态流转控制
|
||
- **业务规则**: 支付、取消、发货、完成条件检查
|
||
- **自动处理**: 过期订单自动取消
|
||
- **数据统计**: 订单数量、金额统计
|
||
|
||
#### 核心业务方法
|
||
- `createOrder()` - 创建订单
|
||
- `updateOrderStatus()` - 更新订单状态
|
||
- `cancelOrder()` - 取消订单
|
||
- `confirmPayment()` - 确认支付
|
||
- `shipOrder()` - 订单发货
|
||
- `completeOrder()` - 完成订单
|
||
- `autoCancelExpiredOrders()` - 自动取消过期订单
|
||
|
||
### 4. 控制器层
|
||
|
||
#### OrderController
|
||
- **用户订单**: 订单列表、详情、创建
|
||
- **支付集成**: 订单支付创建
|
||
- **状态管理**: 订单状态更新
|
||
- **管理员功能**: 订单管理、状态操作
|
||
|
||
#### 主要端点
|
||
- `GET /orders` - 用户订单列表
|
||
- `GET /orders/{id}` - 订单详情
|
||
- `GET /orders/create` - 创建订单表单
|
||
- `POST /orders/create` - 提交订单
|
||
- `POST /orders/{id}/pay` - 创建订单支付
|
||
- `POST /orders/{id}/cancel` - 取消订单
|
||
- `POST /orders/{id}/ship` - 订单发货
|
||
- `POST /orders/{id}/complete` - 完成订单
|
||
- `GET /orders/admin` - 管理员订单管理
|
||
|
||
### 5. 前端界面
|
||
|
||
#### 订单列表页面 (`orders/list.html`)
|
||
- **现代化设计**: Bootstrap 5 + Font Awesome
|
||
- **状态筛选**: 按订单状态筛选
|
||
- **搜索功能**: 订单号实时搜索
|
||
- **支付操作**: 支付宝、PayPal支付选择
|
||
- **状态标识**: 不同状态的颜色标识
|
||
- **分页支持**: 完整的分页导航
|
||
|
||
#### 订单详情页面 (`orders/detail.html`)
|
||
- **完整信息**: 订单基本信息、商品列表、地址信息
|
||
- **状态展示**: 订单状态、时间戳展示
|
||
- **操作按钮**: 支付、取消、发货、完成操作
|
||
- **支付记录**: 关联支付记录展示
|
||
- **管理员功能**: 状态更新、发货管理
|
||
|
||
#### 订单创建页面 (`orders/form.html`)
|
||
- **动态表单**: 可添加/删除订单项
|
||
- **实时计算**: 自动计算订单总金额
|
||
- **表单验证**: 前端验证和提示
|
||
- **草稿保存**: 自动保存表单草稿
|
||
- **帮助信息**: 订单类型说明和注意事项
|
||
|
||
#### 管理员页面 (`orders/admin.html`)
|
||
- **统计面板**: 订单数量、状态统计
|
||
- **批量操作**: 状态筛选、搜索
|
||
- **管理功能**: 发货、完成、取消操作
|
||
- **状态更新**: 手动更新订单状态
|
||
|
||
### 6. 支付系统集成
|
||
|
||
#### Payment-Order关联
|
||
- **双向关联**: Payment ↔ Order
|
||
- **状态同步**: 支付成功自动更新订单状态
|
||
- **数据一致性**: 事务保证数据一致性
|
||
|
||
#### 支付流程
|
||
1. 用户选择支付方式
|
||
2. 创建Payment记录
|
||
3. 跳转到支付页面
|
||
4. 支付成功后更新Payment状态
|
||
5. 自动更新Order状态为PAID
|
||
|
||
### 7. 数据库设计
|
||
|
||
#### orders表
|
||
```sql
|
||
CREATE TABLE orders (
|
||
id BIGINT PRIMARY KEY AUTO_INCREMENT,
|
||
order_number VARCHAR(50) NOT NULL UNIQUE,
|
||
total_amount DECIMAL(10,2) NOT NULL,
|
||
currency VARCHAR(3) NOT NULL DEFAULT 'CNY',
|
||
status VARCHAR(20) NOT NULL DEFAULT 'PENDING',
|
||
order_type VARCHAR(20) NOT NULL DEFAULT 'PRODUCT',
|
||
description VARCHAR(500),
|
||
notes TEXT,
|
||
shipping_address TEXT,
|
||
billing_address TEXT,
|
||
contact_phone VARCHAR(20),
|
||
contact_email VARCHAR(100),
|
||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
paid_at TIMESTAMP NULL,
|
||
shipped_at TIMESTAMP NULL,
|
||
delivered_at TIMESTAMP NULL,
|
||
cancelled_at TIMESTAMP NULL,
|
||
user_id BIGINT NOT NULL,
|
||
FOREIGN KEY (user_id) REFERENCES users(id)
|
||
);
|
||
```
|
||
|
||
#### order_items表
|
||
```sql
|
||
CREATE TABLE order_items (
|
||
id BIGINT PRIMARY KEY AUTO_INCREMENT,
|
||
product_name VARCHAR(100) NOT NULL,
|
||
product_description VARCHAR(500),
|
||
product_sku VARCHAR(200),
|
||
unit_price DECIMAL(10,2) NOT NULL,
|
||
quantity INT NOT NULL,
|
||
subtotal DECIMAL(10,2) NOT NULL,
|
||
product_image VARCHAR(100),
|
||
order_id BIGINT NOT NULL,
|
||
FOREIGN KEY (order_id) REFERENCES orders(id) ON DELETE CASCADE
|
||
);
|
||
```
|
||
|
||
#### payments表更新
|
||
```sql
|
||
ALTER TABLE payments ADD COLUMN order_id_ref BIGINT NULL;
|
||
ALTER TABLE payments ADD FOREIGN KEY (order_id_ref) REFERENCES orders(id);
|
||
```
|
||
|
||
## 🔄 业务流程
|
||
|
||
### 订单创建流程
|
||
1. 用户填写订单信息
|
||
2. 添加订单商品
|
||
3. 系统计算订单总金额
|
||
4. 生成唯一订单号
|
||
5. 保存订单和订单项
|
||
6. 订单状态设为PENDING
|
||
|
||
### 订单支付流程
|
||
1. 用户选择支付方式
|
||
2. 创建Payment记录
|
||
3. 跳转到支付页面
|
||
4. 用户完成支付
|
||
5. 支付回调更新Payment状态
|
||
6. 自动更新Order状态为PAID
|
||
|
||
### 订单发货流程
|
||
1. 管理员确认订单
|
||
2. 准备商品发货
|
||
3. 更新订单状态为SHIPPED
|
||
4. 记录发货时间
|
||
5. 可添加物流单号
|
||
|
||
### 订单完成流程
|
||
1. 用户确认收货
|
||
2. 管理员更新状态为COMPLETED
|
||
3. 记录完成时间
|
||
4. 订单流程结束
|
||
|
||
## 🎨 界面特色
|
||
|
||
### 设计理念
|
||
- **现代化UI**: Bootstrap 5 + Font Awesome
|
||
- **响应式设计**: 支持桌面、平板、手机
|
||
- **用户友好**: 直观的操作流程
|
||
- **状态可视化**: 颜色编码的状态标识
|
||
|
||
### 交互功能
|
||
- **实时搜索**: 订单号搜索
|
||
- **状态筛选**: 按状态筛选订单
|
||
- **动态表单**: 可添加/删除订单项
|
||
- **自动计算**: 实时计算订单金额
|
||
- **草稿保存**: 自动保存表单草稿
|
||
- **模态框操作**: 确认对话框
|
||
|
||
### 管理员功能
|
||
- **统计面板**: 订单数据统计
|
||
- **批量操作**: 批量状态更新
|
||
- **权限控制**: 管理员专用功能
|
||
- **状态管理**: 完整的订单状态管理
|
||
|
||
## 🔧 技术特性
|
||
|
||
### 后端技术
|
||
- **Spring Boot 3.5.6**: 现代化框架
|
||
- **Spring Data JPA**: 数据访问层
|
||
- **Spring Security**: 安全控制
|
||
- **MySQL**: 关系型数据库
|
||
- **事务管理**: 数据一致性保证
|
||
|
||
### 前端技术
|
||
- **Thymeleaf**: 服务端模板
|
||
- **Bootstrap 5**: UI框架
|
||
- **Font Awesome**: 图标库
|
||
- **JavaScript**: 交互功能
|
||
- **CSS3**: 现代化样式
|
||
|
||
### 设计模式
|
||
- **MVC架构**: 分层设计
|
||
- **Repository模式**: 数据访问抽象
|
||
- **Service层**: 业务逻辑封装
|
||
- **DTO模式**: 数据传输对象
|
||
|
||
## 📊 功能统计
|
||
|
||
### 已完成功能
|
||
- ✅ 订单实体设计
|
||
- ✅ 订单状态管理
|
||
- ✅ 订单项管理
|
||
- ✅ 数据访问层
|
||
- ✅ 业务服务层
|
||
- ✅ 控制器层
|
||
- ✅ 前端界面
|
||
- ✅ 支付集成
|
||
- ✅ 数据库设计
|
||
- ✅ 权限控制
|
||
|
||
### 可扩展功能
|
||
- [ ] 订单导出功能
|
||
- [ ] 订单模板功能
|
||
- [ ] 批量操作功能
|
||
- [ ] 订单分析报表
|
||
- [ ] 库存管理集成
|
||
- [ ] 物流跟踪集成
|
||
- [ ] 订单评价系统
|
||
- [ ] 优惠券系统
|
||
|
||
## 🚀 部署说明
|
||
|
||
### 环境要求
|
||
- JDK 21+
|
||
- MySQL 8.0+
|
||
- Maven 3.6+
|
||
|
||
### 配置步骤
|
||
1. 配置数据库连接
|
||
2. 运行数据库脚本
|
||
3. 配置支付参数
|
||
4. 启动应用
|
||
5. 访问订单管理页面
|
||
|
||
### 访问地址
|
||
- 用户订单列表: `/orders`
|
||
- 订单详情: `/orders/{id}`
|
||
- 创建订单: `/orders/create`
|
||
- 管理员管理: `/orders/admin`
|
||
|
||
---
|
||
|
||
**总结**: 订单管理系统提供了完整的订单处理解决方案,从订单创建到支付完成,从发货管理到订单完成,涵盖了电商订单的全生命周期管理。系统采用现代化的技术栈,提供友好的用户界面,支持多种支付方式,具备完善的权限控制和数据安全保障。
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|