7.2 KiB
7.2 KiB
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
- WHEN 用户访问数据看板页面 THEN THE Today_Order_Card SHALL 显示今日订单统计数据
- THE Today_Order_Card SHALL 展示发起订单数(今日创建的订单总数)
- THE Today_Order_Card SHALL 展示支付订单数(今日支付成功的订单数)
- THE Today_Order_Card SHALL 展示消费人数(今日有消费的用户数)
- THE Today_Order_Card SHALL 展示订单总金额(今日订单折后总金额)
- THE Today_Order_Card SHALL 展示出货总金额(今日出货奖品总价值)
- THE Today_Order_Card SHALL 展示优惠券抵扣(今日优惠券抵扣总额)
- THE Today_Order_Card SHALL 展示RMB支付(今日微信支付总额)
- THE Today_Order_Card SHALL 展示钻石支付(今日钻石支付总额)
- THE Today_Order_Card SHALL 展示UU币支付(今日UU币支付总额)
- THE Today_Order_Card SHALL 展示达达券支付(今日达达券支付总额)
- WHEN 用户点击刷新按钮 THEN THE Today_Order_Card SHALL 重新加载数据
Requirement 2: 今日货币信息卡片
User Story: As a 运营人员, I want to 查看货币发放和消费情况, so that I can 监控虚拟货币的流通状况。
Acceptance Criteria
- WHEN 用户访问数据看板页面 THEN THE Currency_Info_Card SHALL 显示货币信息统计数据
- THE Currency_Info_Card SHALL 展示今日发放钻石
- THE Currency_Info_Card SHALL 展示今日消费钻石
- THE Currency_Info_Card SHALL 展示昨日发放钻石
- THE Currency_Info_Card SHALL 展示昨日消费钻石
- THE Currency_Info_Card SHALL 展示今日发放UU币
- THE Currency_Info_Card SHALL 展示今日消费UU币
- THE Currency_Info_Card SHALL 展示昨日发放UU币
- THE Currency_Info_Card SHALL 展示昨日消费UU币
- THE Currency_Info_Card SHALL 展示今日发放达达券
- THE Currency_Info_Card SHALL 展示今日消费达达券
- THE Currency_Info_Card SHALL 展示昨日发放达达券
- THE Currency_Info_Card SHALL 展示昨日消费达达券
- WHEN 用户点击刷新按钮 THEN THE Currency_Info_Card SHALL 重新加载数据
Requirement 3: 今日收入汇总卡片
User Story: As a 运营人员, I want to 查看今日收入和利润情况, so that I can 了解当日的盈利状况。
Acceptance Criteria
- WHEN 用户访问数据看板页面 THEN THE Income_Summary_Card SHALL 显示收入汇总数据
- THE Income_Summary_Card SHALL 展示订单收入(RMB+钻石)
- THE Income_Summary_Card SHALL 展示RMB收入
- THE Income_Summary_Card SHALL 展示钻石商城收入
- THE Income_Summary_Card SHALL 展示其他收入
- THE Income_Summary_Card SHALL 展示订单出货(今日出货奖品总价值)
- THE Income_Summary_Card SHALL 展示支出
- THE Income_Summary_Card SHALL 展示当天发货金额
- THE Income_Summary_Card SHALL 展示当天用户剩余达达券
- THE Income_Summary_Card SHALL 展示盒柜剩余价值
- THE Income_Summary_Card SHALL 展示利润(收入 - 发货金额 - 用户剩余达达券 - 盒柜剩余)
- THE Income_Summary_Card SHALL 展示利润计算公式
- WHEN 利润为负值 THEN THE Income_Summary_Card SHALL 以红色显示利润数值
- WHEN 用户点击刷新按钮 THEN THE Income_Summary_Card SHALL 重新加载数据
Requirement 4: 用户数据统计卡片
User Story: As a 运营人员, I want to 查看用户相关的汇总统计数据, so that I can 了解用户整体情况。
Acceptance Criteria
- WHEN 用户访问数据看板页面 THEN THE User_Stats_Card SHALL 显示用户统计数据
- THE User_Stats_Card SHALL 展示绑定手机号人数
- THE User_Stats_Card SHALL 展示抽奖人数(有抽奖记录的用户总数)
- THE User_Stats_Card SHALL 展示用户剩余钻石
- THE User_Stats_Card SHALL 展示用户剩余UU币
- THE User_Stats_Card SHALL 展示用户剩余达达券
- THE User_Stats_Card SHALL 展示微信支付金额(历史微信支付总额)
- THE User_Stats_Card SHALL 展示订单支付数量(历史支付成功订单总数)
- THE User_Stats_Card SHALL 展示用户出货总金额
- THE User_Stats_Card SHALL 展示用户盒柜剩余价值
- THE User_Stats_Card SHALL 展示用户已兑换的达达券
- THE User_Stats_Card SHALL 展示用户已发货金额
- WHEN 用户点击刷新按钮 THEN THE User_Stats_Card SHALL 重新加载数据
Requirement 5: 后端API集成
User Story: As a 开发人员, I want to 前端正确调用后端统计API, so that I can 获取准确的统计数据。
Acceptance Criteria
- THE Statistics_Service SHALL 提供
GET /api/admin/business/statistics/today-order获取今日订单数据 - THE Statistics_Service SHALL 提供
GET /api/admin/business/statistics/currency-info获取货币信息数据 - THE Statistics_Service SHALL 提供
GET /api/admin/business/statistics/income-summary获取收入汇总数据 - THE Statistics_Service SHALL 提供
GET /api/admin/business/statistics/user-stats获取用户统计数据 - WHEN API返回成功 THEN THE Admin_Web SHALL 正确解析并展示所有统计字段
- WHEN API请求失败 THEN THE Admin_Web SHALL 显示错误提示并展示默认值
- THE Admin_Web SHALL 在API模块中定义完整的TypeScript接口类型
Requirement 6: 页面布局和交互
User Story: As a 运营人员, I want to 数据看板有清晰的布局和良好的交互体验, so that I can 高效地查看数据。
Acceptance Criteria
- THE Data_Stand SHALL 使用两列布局,左侧显示今日订单和今日收入汇总,右侧显示今日货币信息和用户数据统计
- THE Data_Stand SHALL 每个卡片区域独立异步加载,避免页面阻塞
- THE Data_Stand SHALL 每个卡片显示加载动画,提升用户体验
- THE Data_Stand SHALL 每个卡片有独立的刷新按钮
- WHEN 页面加载时 THEN THE Data_Stand SHALL 自动加载所有卡片数据
- THE Data_Stand SHALL 使用响应式布局,在不同屏幕尺寸下自适应