3.3 KiB
3.3 KiB
摘要
为 pages/mall/admin/user/Statistic.uvue 的“用户统计”页面接入数据库(复用 analytics RPC),并补齐“用户性别比例”模块的数据库接入。按项目规范新增模块内 test/ 与 docs/,并将满足权威准入要求的性别比例 RPC 归档到 docs/sql/30_rpc/analytics/。
动机
- 现有 admin 用户统计页 KPI/趋势/性别比例均为静态数据,无法反映真实业务数据。
- 按
docs/AGENT_PROJECT_SPEC.md的两阶段 SQL 工作流:模块内测试test/先验证,满足安全准入后才进入docs/sql/权威目录。
影响范围
- 页面:
pages/mall/admin/user/Statistic.uvue - 组件:
components/analytics/AnalyticsUserGenderSection.uvue - SQL(模块测试):
pages/mall/admin/user/test/*.sql - SQL(权威入库):
docs/sql/30_rpc/analytics/rpc_analytics_user_gender_distribution_v1.sql
变更清单
新增文件
pages/mall/admin/user/test/01_ml_admin_user_statistics_verify.sqlpages/mall/admin/user/test/99_ml_admin_user_statistics_verify.sqlpages/mall/admin/user/test/02_ml_admin_user_gender_rpc.sql(测试/验证脚本)pages/mall/admin/user/docs/USER_STATISTICS_DB.mddocs/sql/00_meta/README.mddocs/sql/10_schema/README.mddocs/sql/20_rls/README.mddocs/sql/30_rpc/README.mddocs/sql/40_grants/README.mddocs/sql/90_archive/README.mddocs/sql/30_rpc/analytics/rpc_analytics_user_gender_distribution_v1.sqlpages/mall/admin/user/docs/ops/2026-02-04__admin-user__user-statistics-db-and-gender-rpc.md(本文件)
修改文件
pages/mall/admin/user/Statistic.uvue- KPI/趋势改为 RPC 动态加载
- 月份范围筛选(当前月默认)
- 将
startDate/endDate透传给性别比例组件
components/analytics/AnalyticsUserGenderSection.uvue- 静态数据改为 RPC 动态加载
pages/mall/admin/user/docs/USER_STATISTICS_DB.md- 更新权威 RPC 引用路径
删除文件
- 无
兼容性与风险
- RPC 权限风险:权威 RPC 使用
SECURITY DEFINER绕过 RLS,必须依赖public.get_current_user_role()做入口鉴权。 - 数据口径风险:当前
ak_users.gender取值为male/other/NULL,映射为男/未知(并兼容 futurefemale)。 - 部署风险:需确保数据库已执行权威 SQL(或在迁移流程中纳入)。
回滚方案
- 前端回滚:
- 回滚
pages/mall/admin/user/Statistic.uvue与components/analytics/AnalyticsUserGenderSection.uvue到改动前版本。
- 回滚
- 数据库回滚:
- 执行
DROP FUNCTION IF EXISTS public.rpc_analytics_user_gender_distribution(DATE, DATE); - 或将权威 RPC 文件从迁移/部署流程移除。
- 执行
验证方式
-
数据库验证(管理员/analytics 身份):
- 执行
docs/sql/30_rpc/analytics/rpc_analytics_user_gender_distribution_v1.sql - 调用:
SELECT * FROM public.rpc_analytics_user_gender_distribution('2026-01-01','2026-01-31');
- 确认返回
未知/男/女分布。
- 执行
-
前端验证:
- 打开 admin 用户统计页:KPI 与趋势显示为动态数据。
- 选择月份后:KPI、趋势与“用户性别比例”同步刷新。
关联文档
docs/AGENT_PROJECT_SPEC.mddocs/sql/11_roles_and_permissions_strategy.md