## P1 数据库基础 - zqyy_app: 创建 auth/biz schema、FDW 连接 etl_feiqiu - etl_feiqiu: 创建 app schema RLS 视图、商品库存预警表 - 清理 assistant_abolish 残留数据 ## P2 ETL/DWS 扩展 - 新增 DWS 助教订单贡献度表 (dws.assistant_order_contribution) - 新增 assistant_order_contribution_task 任务及 RLS 视图 - member_consumption 增加充值字段、assistant_daily 增加处罚字段 - 更新 ODS/DWD/DWS 任务文档及业务规则文档 - 更新 consistency_checker、flow_runner、task_registry 等核心模块 ## P3 小程序鉴权系统 - 新增 xcx_auth 路由/schema(微信登录 + JWT) - 新增 wechat/role/matching/application 服务层 - zqyy_app 鉴权表迁移 + 角色权限种子数据 - auth/dependencies.py 支持小程序 JWT 鉴权 ## 文档与审计 - 新增 DOCUMENTATION-MAP 文档导航 - 新增 7 份 BD_Manual 数据库变更文档 - 更新 DDL 基线快照(etl_feiqiu 6 schema + zqyy_app auth) - 新增全栈集成审计记录、部署检查清单更新 - 新增 BACKLOG 路线图、FDW→Core 迁移计划 ## Kiro 工程化 - 新增 5 个 Spec(P1/P2/P3/全栈集成/核心业务) - 新增审计自动化脚本(agent_on_stop/build_audit_context/compliance_prescan) - 新增 6 个 Hook(合规检查/会话日志/提交审计等) - 新增 doc-map steering 文件 ## 运维与测试 - 新增 ops 脚本:迁移验证/API 健康检查/ETL 监控/集成报告 - 新增属性测试:test_dws_contribution / test_auth_system - 清理过期 export 报告文件 - 更新 .gitignore 排除规则
70 lines
3.5 KiB
Markdown
70 lines
3.5 KiB
Markdown
# P2:ETL 扩展层 — etl-dws-miniapp-extensions
|
||
|
||
> 优先级:P2(依赖 P1)
|
||
> 预估工作量:大
|
||
|
||
---
|
||
|
||
## 需求(Requirements)
|
||
|
||
### 用户故事
|
||
|
||
1. 作为产品经理,我需要 SPI 消费力指数来评估客户消费层级,替代现有的 `customer_tier` 分层。
|
||
2. 作为产品经理,我需要助教订单流水四项统计(订单总流水/订单净流水/时效贡献流水/时效净贡献),以便评估助教个人能力。
|
||
3. 作为产品经理,我需要客户 30/60/90 天充值次数和金额、次均消费,以便在客户看板中展示。
|
||
4. 作为产品经理,我需要定档折算惩罚数据,以便在绩效页面展示折算详情。
|
||
|
||
### 验收标准
|
||
|
||
- AC1:`dws_member_spending_power_index` 表存在,SPI 展示分 0-10 分布合理
|
||
- AC2:`dws_assistant_order_contribution` 表存在,四项统计数值可对照 PRD 示例验算
|
||
- AC3:`dws_member_consumption_summary` 新增字段有值(`recharge_count_30d/60d/90d`、`recharge_amount_30d/60d/90d`、`avg_ticket_amount`)
|
||
- AC4:`dws_assistant_daily_detail` 新增字段在符合惩罚条件的订单上正确填充
|
||
- AC5:新表的 RLS 视图和 FDW 映射已同步创建
|
||
- AC6:`cfg_index_parameters` 中新增 `SPI` 类型的配置行 ✅(已完成,26 个参数,effective_from=2026-02-23)
|
||
|
||
---
|
||
|
||
## 设计要点
|
||
|
||
### SPI 指数
|
||
- 完整算法见 `docs/prd/SPI 消费力指数.md`
|
||
- 新建 ETL 任务 `SpendingPowerIndexTask`,继承 `BaseIndexTask`
|
||
- 粒度:`(site_id, member_id)`,每日计算
|
||
|
||
### 助教订单流水四项统计
|
||
- 新建 ETL 任务 `AssistantOrderContributionTask`
|
||
- 粒度:`(site_id, assistant_id, stat_date)`
|
||
- 计算逻辑见 PRD "新增统计"节
|
||
|
||
### 命名方案
|
||
|
||
| 中文名 | 字段名 | 含义 |
|
||
|--------|--------|------|
|
||
| 订单总流水 | `order_gross_revenue` | 助教参与订单的全部流水 |
|
||
| 订单净流水 | `order_net_revenue` | 总流水 - 助教服务分成 |
|
||
| 时效贡献流水 | `time_weighted_revenue` | 按服务时长折算的个人贡献 |
|
||
| 时效净贡献 | `time_weighted_net_revenue` | 时效贡献 - 助教服务分成 |
|
||
|
||
### 定档折算惩罚
|
||
- 扩展 `dws_assistant_daily_detail`:`penalty_minutes`、`penalty_reason`、`is_exempt`、`per_hour_contribution`
|
||
- 检测逻辑:同一台桌同一时段 >2 名助教 → 计算单人贡献流水 → <24 元则按比例折算
|
||
- 豁免标记:在订单级别打标(`is_exempt` 字段)
|
||
- 每日 ETL 自动计算
|
||
|
||
---
|
||
|
||
## 任务清单
|
||
|
||
- [x] T1:设计并创建 `dws_member_spending_power_index` 表 ✅(已完成,24 字段 + 2 索引,迁移脚本 `2026-02-23_create_dws_member_spending_power_index.sql`,测试库已建表,0 行待跑数)
|
||
- [x] T2:实现 `SpendingPowerIndexTask`(含 Level/Speed/Stability 子分)✅(已完成,代码 `tasks/dws/index/spending_power_index_task.py`,已注册 task_registry,含单元测试 + 属性测试 + BD_Manual 文档)
|
||
- [x] T3:在 `cfg_index_parameters` 中插入 SPI 默认参数 ✅(已完成,27 个参数含 Level/Speed/Stability 权重、压缩基数、窗口天数等)
|
||
- [ ] T4:设计并创建 `dws_assistant_order_contribution` 表
|
||
- [ ] T5:实现 `AssistantOrderContributionTask`
|
||
- [ ] T6:扩展 `dws_member_consumption_summary`(充值窗口 + 次均消费字段)
|
||
- [ ] T7:修改 `MemberConsumptionSummaryTask` 填充新字段
|
||
- [ ] T8:扩展 `dws_assistant_daily_detail`(定档折算惩罚字段)
|
||
- [ ] T9:实现定档折算惩罚检测与计算逻辑
|
||
- [ ] T10:为新表创建 RLS 视图 + FDW 映射
|
||
- [ ] T11:影子跑数验证(SPI 分布、流水统计对账)
|