# 数据仪表盘功能说明

## 功能概述

数据仪表盘是一个系统数据概览页面，提供以下关键指标和图表：

### 核心指标
- **用户总数**: 系统中注册用户的总数量
- **付费用户数**: 有成功支付记录的用户数量
- **今日收入**: 当天成功支付的金额总和
- **转化率**: 付费用户数占总用户数的百分比

### 图表展示
- **日活用户趋势**: 最近30天的日活跃用户数量变化
- **收入趋势**: 最近30天的收入变化情况
- **订单状态分布**: 不同订单状态的分布饼图
- **支付方式分布**: 不同支付方式的使用情况

### 数据列表
- **最近订单**: 显示最新的10个订单信息

## 技术实现

### 后端实现
- `DashboardService`: 提供数据统计和计算服务
- `DashboardApiController`: 提供RESTful API接口
- 支持的数据源：用户、订单、支付记录

### 前端实现
- `Dashboard.vue`: 主要仪表盘组件
- `dashboard.js`: API调用封装
- 使用ECharts进行图表渲染
- 响应式设计，支持移动端访问

## 访问权限

- 需要管理员权限才能访问
- 路径：`/admin/dashboard`
- API路径：`/api/dashboard/**`

## 安装和运行

### 后端
1. 确保Spring Boot应用正常运行
2. 运行数据库迁移脚本（为users表添加created_at字段）：
   ```sql
   -- 运行 migration_add_created_at.sql
   ```
3. 数据库中有用户、订单、支付数据

### 前端
1. 安装依赖：
   ```bash
   cd demo/frontend
   npm install
   ```

2. 启动前端服务：
   ```bash
   npm run dev
   ```

3. 使用管理员账户登录后访问仪表盘

**注意**: ECharts图表库通过CDN动态加载，无需额外安装npm包

### 数据库迁移
如果users表没有created_at字段，需要运行迁移脚本：
```sql
ALTER TABLE users ADD COLUMN created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;
UPDATE users SET created_at = CURRENT_TIMESTAMP WHERE created_at IS NULL;
```

## API接口

### 获取所有数据
```
GET /api/dashboard/all
```

### 单独获取各项数据
- `GET /api/dashboard/overview` - 概览数据
- `GET /api/dashboard/daily-active-users` - 日活数据
- `GET /api/dashboard/revenue-trend` - 收入趋势
- `GET /api/dashboard/order-status-distribution` - 订单状态分布
- `GET /api/dashboard/payment-method-distribution` - 支付方式分布
- `GET /api/dashboard/recent-orders` - 最近订单

## 注意事项

1. 所有API都需要管理员权限
2. 数据统计基于现有数据库记录
3. 图表数据为最近30天的趋势
4. 需要确保数据库中有足够的测试数据
5. 建议在生产环境中添加数据缓存机制

## 扩展功能

可以考虑添加的功能：
- 数据导出功能
- 自定义时间范围查询
- 实时数据更新
- 更多图表类型
- 数据对比分析
