HaniBlindBox/.kiro/specs/dashboard-statistics/tasks.md
2026-01-19 00:09:38 +08:00

164 lines
6.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Implementation Plan: 仪表盘数据看板
## Overview
本实现计划将仪表盘数据看板模块从老项目PHP ThinkPHP + Layui迁移到新项目ASP.NET Core + Vue 3 + Element Plus。实现分为后端API开发和前端页面开发两个主要部分。
## Tasks
- [x] 1. 验证和补充后端API - 今日订单统计
- [x] 1.1 检查后端是否已有今日订单统计API
- 检查 `StatisticsController` 是否存在
- 检查是否有 `GetTodayOrderStats` 方法
- 如果不存在,需要创建
- _Requirements: 5.1_
- [x] 1.2 创建今日订单统计API如需要
-`Models/Statistics/` 下创建 `TodayOrderStatsResponse.cs`
-`Services/` 下创建 `IStatisticsService.cs` 接口
-`Services/` 下创建 `StatisticsService.cs` 实现
-`Controllers/` 下创建 `StatisticsController.cs`
- 实现 `GET /api/admin/business/statistics/today-order` 端点
- _Requirements: 1.2-1.11, 5.1_
- [x] 2. 验证和补充后端API - 货币信息统计
- [x] 2.1 创建货币信息统计API
-`Models/Statistics/` 下创建 `CurrencyInfoStatsResponse.cs`
-`IStatisticsService.cs` 添加接口方法
-`StatisticsService.cs` 实现查询逻辑
-`StatisticsController.cs` 添加 `GetCurrencyInfoStats` 方法
- 实现 `GET /api/admin/business/statistics/currency-info` 端点
- _Requirements: 2.2-2.13, 5.2_
- [x] 3. 验证和补充后端API - 收入汇总统计
- [x] 3.1 创建收入汇总统计API
-`Models/Statistics/` 下创建 `IncomeSummaryStatsResponse.cs`
-`IStatisticsService.cs` 添加接口方法
-`StatisticsService.cs` 实现查询逻辑(包含利润计算)
-`StatisticsController.cs` 添加 `GetIncomeSummaryStats` 方法
- 实现 `GET /api/admin/business/statistics/income-summary` 端点
- _Requirements: 3.2-3.12, 5.3_
- [x] 4. 验证和补充后端API - 用户统计
- [x] 4.1 创建用户统计API
-`Models/Statistics/` 下创建 `UserStatsResponse.cs`
-`IStatisticsService.cs` 添加接口方法
-`StatisticsService.cs` 实现查询逻辑
-`StatisticsController.cs` 添加 `GetUserStats` 方法
- 实现 `GET /api/admin/business/statistics/user-stats` 端点
- _Requirements: 4.2-4.12, 5.4_
- [x] 5. Checkpoint - 后端API验证
- 启动后端服务
- 使用Swagger测试所有4个统计API
- 验证返回数据结构符合预期
- 确保权限验证正常工作
- 如有问题,询问用户
- [x] 6. 前端API层开发
- [x] 6.1 创建统计API模块
- 创建 `src/api/business/statistics.ts`
- 定义 `TodayOrderStats` TypeScript接口
- 定义 `CurrencyInfoStats` TypeScript接口
- 定义 `IncomeSummaryStats` TypeScript接口
- 定义 `UserStats` TypeScript接口
- 实现 `getTodayOrderStats` API调用函数
- 实现 `getCurrencyInfoStats` API调用函数
- 实现 `getIncomeSummaryStats` API调用函数
- 实现 `getUserStats` API调用函数
- _Requirements: 5.5, 5.7_
- [x] 7. 前端组件开发 - 今日订单卡片
- [x] 7.1 创建今日订单卡片组件
- 创建 `src/views/business/statistics/components/TodayOrderCard.vue`
- 实现卡片布局3行4列网格
- 实现数据展示10个数据项
- 实现加载状态和刷新按钮
- 实现错误处理和降级展示
- _Requirements: 1.1-1.12, 6.2, 6.3, 6.4_
- [x] 8. 前端组件开发 - 货币信息卡片
- [x] 8.1 创建货币信息卡片组件
- 创建 `src/views/business/statistics/components/CurrencyInfoCard.vue`
- 实现卡片布局3行4列网格
- 实现数据展示12个数据项钻石、UU币、达达券的今日/昨日发放/消费)
- 实现加载状态和刷新按钮
- 实现错误处理和降级展示
- _Requirements: 2.1-2.14, 6.2, 6.3, 6.4_
- [x] 9. 前端组件开发 - 收入汇总卡片
- [x] 9.1 创建收入汇总卡片组件
- 创建 `src/views/business/statistics/components/IncomeSummaryCard.vue`
- 实现表格布局11行数据
- 实现数据展示(包含利润计算公式)
- 实现利润负值红色高亮
- 实现加载状态和刷新按钮
- 实现错误处理和降级展示
- _Requirements: 3.1-3.14, 6.2, 6.3, 6.4_
- [x] 10. 前端组件开发 - 用户统计卡片
- [x] 10.1 创建用户统计卡片组件
- 创建 `src/views/business/statistics/components/UserStatsCard.vue`
- 实现表格布局6行2列
- 实现数据展示11个数据项
- 实现加载状态和刷新按钮
- 实现错误处理和降级展示
- _Requirements: 4.1-4.13, 6.2, 6.3, 6.4_
- [x] 11. 前端页面开发 - 数据看板主页面
- [x] 11.1 创建数据看板主页面
- 创建 `src/views/business/statistics/data-stand.vue`
- 实现两列布局
- 集成4个卡片组件
- 实现页面加载时自动加载所有卡片数据
- 实现响应式布局
- _Requirements: 6.1, 6.5, 6.6_
- [x] 12. 前端路由配置
- [x] 12.1 配置统计模块路由
-`router/modules/business.ts` 添加数据看板路由
- 配置路由权限
- _Requirements: 6.1_
- [x] 13. Checkpoint - 功能验证
- 启动前后端服务
- 登录后台管理系统
- 访问数据看板页面
- 验证4个卡片正常显示数据
- 测试刷新按钮功能
- 测试错误处理
- 如有问题,询问用户
- [ ] 14. 属性测试
- [ ] 14.1 编写今日订单数据一致性属性测试
- **Property 1: 今日订单数据一致性**
- **Validates: Requirements 1.2, 1.3, 1.4**
- [ ] 14.2 编写货币信息数据非负性属性测试
- **Property 2: 货币信息数据非负性**
- **Validates: Requirements 2.2-2.13**
- [ ] 14.3 编写利润计算正确性属性测试
- **Property 3: 利润计算正确性**
- **Validates: Requirements 3.11**
- [ ] 14.4 编写用户统计数据非负性属性测试
- **Property 4: 用户统计数据非负性**
- **Validates: Requirements 4.2-4.12**
- [ ] 14.5 编写API响应格式一致性属性测试
- **Property 5: API响应格式一致性**
- **Validates: Requirements 5.5**
- [ ] 15. Final Checkpoint - 最终验证
- 确保所有功能正常工作
- 确保所有测试通过
- 如有问题,询问用户
## Notes
- 需要先验证后端API是否已完成如未完成需要新增对应的接口
- 每个Checkpoint确保增量验证
- 属性测试验证通用正确性属性
- 后端API需要排除测试用户数据istest > 0