127 lines
7.2 KiB
Markdown
127 lines
7.2 KiB
Markdown
# Requirements Document
|
||
|
||
## Introduction
|
||
|
||
本文档定义了仪表盘数据看板模块的迁移需求。该模块将从老项目(PHP ThinkPHP + Layui)迁移到新项目(ASP.NET Core + Vue 3 + Element Plus)。数据看板是后台管理系统的核心运营分析页面,提供全面的业务数据统计概览,包含4个主要卡片区域:今日订单、今日货币信息、今日收入汇总、用户数据统计。
|
||
|
||
## Glossary
|
||
|
||
- **Dashboard**: 仪表盘,后台管理系统的首页
|
||
- **Data_Stand**: 数据看板,展示关键业务数据的核心页面
|
||
- **Today_Order_Card**: 今日订单卡片,展示当日订单相关统计数据
|
||
- **Currency_Info_Card**: 今日货币信息卡片,展示钻石、UU币、达达券的发放和消费数据
|
||
- **Income_Summary_Card**: 今日收入汇总卡片,展示收入、支出和利润数据
|
||
- **User_Stats_Card**: 用户数据统计卡片,展示用户相关的汇总统计数据
|
||
- **Statistics_Service**: 统计服务,后端提供统计数据的服务层
|
||
- **Admin_Web**: 新项目前端,基于 Vue 3 + Element Plus 的后台管理前端
|
||
|
||
## Requirements
|
||
|
||
### Requirement 1: 今日订单卡片
|
||
|
||
**User Story:** As a 运营人员, I want to 查看今日订单的详细统计数据, so that I can 了解当日订单和支付情况。
|
||
|
||
#### Acceptance Criteria
|
||
|
||
1. WHEN 用户访问数据看板页面 THEN THE Today_Order_Card SHALL 显示今日订单统计数据
|
||
2. THE Today_Order_Card SHALL 展示发起订单数(今日创建的订单总数)
|
||
3. THE Today_Order_Card SHALL 展示支付订单数(今日支付成功的订单数)
|
||
4. THE Today_Order_Card SHALL 展示消费人数(今日有消费的用户数)
|
||
5. THE Today_Order_Card SHALL 展示订单总金额(今日订单折后总金额)
|
||
6. THE Today_Order_Card SHALL 展示出货总金额(今日出货奖品总价值)
|
||
7. THE Today_Order_Card SHALL 展示优惠券抵扣(今日优惠券抵扣总额)
|
||
8. THE Today_Order_Card SHALL 展示RMB支付(今日微信支付总额)
|
||
9. THE Today_Order_Card SHALL 展示钻石支付(今日钻石支付总额)
|
||
10. THE Today_Order_Card SHALL 展示UU币支付(今日UU币支付总额)
|
||
11. THE Today_Order_Card SHALL 展示达达券支付(今日达达券支付总额)
|
||
12. WHEN 用户点击刷新按钮 THEN THE Today_Order_Card SHALL 重新加载数据
|
||
|
||
### Requirement 2: 今日货币信息卡片
|
||
|
||
**User Story:** As a 运营人员, I want to 查看货币发放和消费情况, so that I can 监控虚拟货币的流通状况。
|
||
|
||
#### Acceptance Criteria
|
||
|
||
1. WHEN 用户访问数据看板页面 THEN THE Currency_Info_Card SHALL 显示货币信息统计数据
|
||
2. THE Currency_Info_Card SHALL 展示今日发放钻石
|
||
3. THE Currency_Info_Card SHALL 展示今日消费钻石
|
||
4. THE Currency_Info_Card SHALL 展示昨日发放钻石
|
||
5. THE Currency_Info_Card SHALL 展示昨日消费钻石
|
||
6. THE Currency_Info_Card SHALL 展示今日发放UU币
|
||
7. THE Currency_Info_Card SHALL 展示今日消费UU币
|
||
8. THE Currency_Info_Card SHALL 展示昨日发放UU币
|
||
9. THE Currency_Info_Card SHALL 展示昨日消费UU币
|
||
10. THE Currency_Info_Card SHALL 展示今日发放达达券
|
||
11. THE Currency_Info_Card SHALL 展示今日消费达达券
|
||
12. THE Currency_Info_Card SHALL 展示昨日发放达达券
|
||
13. THE Currency_Info_Card SHALL 展示昨日消费达达券
|
||
14. WHEN 用户点击刷新按钮 THEN THE Currency_Info_Card SHALL 重新加载数据
|
||
|
||
### Requirement 3: 今日收入汇总卡片
|
||
|
||
**User Story:** As a 运营人员, I want to 查看今日收入和利润情况, so that I can 了解当日的盈利状况。
|
||
|
||
#### Acceptance Criteria
|
||
|
||
1. WHEN 用户访问数据看板页面 THEN THE Income_Summary_Card SHALL 显示收入汇总数据
|
||
2. THE Income_Summary_Card SHALL 展示订单收入(RMB+钻石)
|
||
3. THE Income_Summary_Card SHALL 展示RMB收入
|
||
4. THE Income_Summary_Card SHALL 展示钻石商城收入
|
||
5. THE Income_Summary_Card SHALL 展示其他收入
|
||
6. THE Income_Summary_Card SHALL 展示订单出货(今日出货奖品总价值)
|
||
7. THE Income_Summary_Card SHALL 展示支出
|
||
8. THE Income_Summary_Card SHALL 展示当天发货金额
|
||
9. THE Income_Summary_Card SHALL 展示当天用户剩余达达券
|
||
10. THE Income_Summary_Card SHALL 展示盒柜剩余价值
|
||
11. THE Income_Summary_Card SHALL 展示利润(收入 - 发货金额 - 用户剩余达达券 - 盒柜剩余)
|
||
12. THE Income_Summary_Card SHALL 展示利润计算公式
|
||
13. WHEN 利润为负值 THEN THE Income_Summary_Card SHALL 以红色显示利润数值
|
||
14. WHEN 用户点击刷新按钮 THEN THE Income_Summary_Card SHALL 重新加载数据
|
||
|
||
### Requirement 4: 用户数据统计卡片
|
||
|
||
**User Story:** As a 运营人员, I want to 查看用户相关的汇总统计数据, so that I can 了解用户整体情况。
|
||
|
||
#### Acceptance Criteria
|
||
|
||
1. WHEN 用户访问数据看板页面 THEN THE User_Stats_Card SHALL 显示用户统计数据
|
||
2. THE User_Stats_Card SHALL 展示绑定手机号人数
|
||
3. THE User_Stats_Card SHALL 展示抽奖人数(有抽奖记录的用户总数)
|
||
4. THE User_Stats_Card SHALL 展示用户剩余钻石
|
||
5. THE User_Stats_Card SHALL 展示用户剩余UU币
|
||
6. THE User_Stats_Card SHALL 展示用户剩余达达券
|
||
7. THE User_Stats_Card SHALL 展示微信支付金额(历史微信支付总额)
|
||
8. THE User_Stats_Card SHALL 展示订单支付数量(历史支付成功订单总数)
|
||
9. THE User_Stats_Card SHALL 展示用户出货总金额
|
||
10. THE User_Stats_Card SHALL 展示用户盒柜剩余价值
|
||
11. THE User_Stats_Card SHALL 展示用户已兑换的达达券
|
||
12. THE User_Stats_Card SHALL 展示用户已发货金额
|
||
13. WHEN 用户点击刷新按钮 THEN THE User_Stats_Card SHALL 重新加载数据
|
||
|
||
### Requirement 5: 后端API集成
|
||
|
||
**User Story:** As a 开发人员, I want to 前端正确调用后端统计API, so that I can 获取准确的统计数据。
|
||
|
||
#### Acceptance Criteria
|
||
|
||
1. THE Statistics_Service SHALL 提供 `GET /api/admin/business/statistics/today-order` 获取今日订单数据
|
||
2. THE Statistics_Service SHALL 提供 `GET /api/admin/business/statistics/currency-info` 获取货币信息数据
|
||
3. THE Statistics_Service SHALL 提供 `GET /api/admin/business/statistics/income-summary` 获取收入汇总数据
|
||
4. THE Statistics_Service SHALL 提供 `GET /api/admin/business/statistics/user-stats` 获取用户统计数据
|
||
5. WHEN API返回成功 THEN THE Admin_Web SHALL 正确解析并展示所有统计字段
|
||
6. WHEN API请求失败 THEN THE Admin_Web SHALL 显示错误提示并展示默认值
|
||
7. THE Admin_Web SHALL 在API模块中定义完整的TypeScript接口类型
|
||
|
||
### Requirement 6: 页面布局和交互
|
||
|
||
**User Story:** As a 运营人员, I want to 数据看板有清晰的布局和良好的交互体验, so that I can 高效地查看数据。
|
||
|
||
#### Acceptance Criteria
|
||
|
||
1. THE Data_Stand SHALL 使用两列布局,左侧显示今日订单和今日收入汇总,右侧显示今日货币信息和用户数据统计
|
||
2. THE Data_Stand SHALL 每个卡片区域独立异步加载,避免页面阻塞
|
||
3. THE Data_Stand SHALL 每个卡片显示加载动画,提升用户体验
|
||
4. THE Data_Stand SHALL 每个卡片有独立的刷新按钮
|
||
5. WHEN 页面加载时 THEN THE Data_Stand SHALL 自动加载所有卡片数据
|
||
6. THE Data_Stand SHALL 使用响应式布局,在不同屏幕尺寸下自适应
|