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

6.5 KiB
Raw Blame History

Implementation Plan: 仪表盘数据看板

Overview

本实现计划将仪表盘数据看板模块从老项目PHP ThinkPHP + Layui迁移到新项目ASP.NET Core + Vue 3 + Element Plus。实现分为后端API开发和前端页面开发两个主要部分。

Tasks

  • 1. 验证和补充后端API - 今日订单统计

    • 1.1 检查后端是否已有今日订单统计API

      • 检查 StatisticsController 是否存在
      • 检查是否有 GetTodayOrderStats 方法
      • 如果不存在,需要创建
      • Requirements: 5.1
    • 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
  • 2. 验证和补充后端API - 货币信息统计

    • 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
  • 3. 验证和补充后端API - 收入汇总统计

    • 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
  • 4. 验证和补充后端API - 用户统计

    • 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
  • 5. Checkpoint - 后端API验证

    • 启动后端服务
    • 使用Swagger测试所有4个统计API
    • 验证返回数据结构符合预期
    • 确保权限验证正常工作
    • 如有问题,询问用户
  • 6. 前端API层开发

    • 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
  • 7. 前端组件开发 - 今日订单卡片

    • 7.1 创建今日订单卡片组件
      • 创建 src/views/business/statistics/components/TodayOrderCard.vue
      • 实现卡片布局3行4列网格
      • 实现数据展示10个数据项
      • 实现加载状态和刷新按钮
      • 实现错误处理和降级展示
      • Requirements: 1.1-1.12, 6.2, 6.3, 6.4
  • 8. 前端组件开发 - 货币信息卡片

    • 8.1 创建货币信息卡片组件
      • 创建 src/views/business/statistics/components/CurrencyInfoCard.vue
      • 实现卡片布局3行4列网格
      • 实现数据展示12个数据项钻石、UU币、达达券的今日/昨日发放/消费)
      • 实现加载状态和刷新按钮
      • 实现错误处理和降级展示
      • Requirements: 2.1-2.14, 6.2, 6.3, 6.4
  • 9. 前端组件开发 - 收入汇总卡片

    • 9.1 创建收入汇总卡片组件
      • 创建 src/views/business/statistics/components/IncomeSummaryCard.vue
      • 实现表格布局11行数据
      • 实现数据展示(包含利润计算公式)
      • 实现利润负值红色高亮
      • 实现加载状态和刷新按钮
      • 实现错误处理和降级展示
      • Requirements: 3.1-3.14, 6.2, 6.3, 6.4
  • 10. 前端组件开发 - 用户统计卡片

    • 10.1 创建用户统计卡片组件
      • 创建 src/views/business/statistics/components/UserStatsCard.vue
      • 实现表格布局6行2列
      • 实现数据展示11个数据项
      • 实现加载状态和刷新按钮
      • 实现错误处理和降级展示
      • Requirements: 4.1-4.13, 6.2, 6.3, 6.4
  • 11. 前端页面开发 - 数据看板主页面

    • 11.1 创建数据看板主页面
      • 创建 src/views/business/statistics/data-stand.vue
      • 实现两列布局
      • 集成4个卡片组件
      • 实现页面加载时自动加载所有卡片数据
      • 实现响应式布局
      • Requirements: 6.1, 6.5, 6.6
  • 12. 前端路由配置

    • 12.1 配置统计模块路由
      • router/modules/business.ts 添加数据看板路由
      • 配置路由权限
      • Requirements: 6.1
  • 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