feat: add referral conversion report

This commit is contained in:
Codex
2026-06-30 23:56:35 +08:00
parent 9891fe9ef3
commit 88640f8262
12 changed files with 899 additions and 25 deletions

View File

@@ -859,6 +859,7 @@ GET /api/tenant-admin/dashboard?timeRange=30d&regionId=<可选地区ID>&limit=10
| 设置销售/代理个人比例 | `PUT /api/commission/member-rate` | `commission:write` |
| 分佣汇总 | `GET /api/commission/summary?startDate=YYYY-MM-DD&endDate=YYYY-MM-DD&referrerUserId=...` | `commission:read``commission:self` |
| 分佣来源明细 | `GET /api/commission/orders?...` | `commission:read``commission:self` |
| 销售/代理转化报表 | `GET /api/referral/conversion-report?startDate=YYYY-MM-DD&endDate=YYYY-MM-DD&referrerUserId=...` | `referral:read``referral:self` |
| 结算单列表 | `GET /api/commission/settlements?...` | `commission:read``commission:self` |
| 导出结算明细 | `GET /api/commission/settlements/export?settlementId=...&format=csv` | `commission:read``commission:self` |
| 生成结算单 | `POST /api/commission/settlements/generate` | `commission:write` |
@@ -904,6 +905,35 @@ approved -> cancelled
- `referrerUserId` 是受首绑保护的推广/分佣归属CRM 的 `assignedToUserId` 只是跟进负责人,不能作为分佣结算依据。
- 当前版本支持线下打款状态登记、结算导出、凭证登记和凭证复核;真实银行/微信/支付宝打款 provider、发票和批量凭证上传后续增强。
### 销售/代理转化报表
销售/代理转化报表由后端聚合客资、订单、激活码、CRM 队列和跟进任务,前端不要自行读取这些表后拼统计。接口:
```http
GET /api/referral/conversion-report?startDate=2026-06-01&endDate=2026-06-30&referrerUserId=<可选>&limit=30
```
返回结构包含:
```text
item.range
item.summary
item.funnel
item.byReferrer
item.dailyTrend
item.recentUnconvertedLeads
```
前端展示建议:
- 租户管理员、运营等有 `referral:read` 的账号可看全局或指定成员;销售/代理通常只有 `referral:self`,后端会强制只返回本人数据。
- `summary.leadCount/convertedLeadCount/paidSourceCount/grossAmountCents/commissionAmountCents/crmFailedCount/openFollowupCount` 可作为顶部指标。
- `funnel` 直接展示触达、客资、已分配、有效成交、成交来源漏斗,不要在前端重新计算。
- `byReferrer` 展示成员排行,`conversionRate/paidLeadRate` 是 0 到 1 的比例。
- `recentUnconvertedLeads` 用于运营跟进,但只能展示后端返回字段;不要把它当成修改客资归属的入口。
- 区分 `referrerUserId``assignedToUserId`:前者是首绑保护下的推广/分佣归属,后者只是 CRM 跟进负责人。
- 大租户上线后会补日/小时预聚合;前端只消费该接口,不依赖当前 SQL 的中间口径。
### 背单词计划与复习上报
背单词页面分三类数据:单元列表、每日计划、单词进度。前端不需要计算下次复习日期,只提交“认识/不认识”,由后端统一更新 `nextReviewDate`、连续正确、掌握状态和每日复习计划。
@@ -3164,7 +3194,7 @@ GET /api/ai/school-recommendations/export?reportId=<reportId>&format=html
- 勋章:`GET/PUT /api/tenant-admin/badges``GET/POST /api/tenant-admin/badge-grants`
- 考试日期:`GET/PUT /api/tenant-admin/exam-dates`
- 题目反馈:`GET /api/tenant-admin/feedbacks``GET /api/tenant-admin/feedbacks/report``POST /api/tenant-admin/feedbacks/status``GET /api/tenant-admin/feedbacks/events`
- 销售/代理/CRM 队列、CRM 配置、CRM 跟进分配策略、CRM 死信失败池、脱敏日志、手动重试/忽略、分佣规则、成员分佣比例、分佣订单、结算单审核和线下打款登记;当前 Taro 租户营销中心已接 CRM 配置、队列、死信失败池、日志、重试/忽略、分佣、优惠券规则和核销报表第一版,财务运营页已接退款、官方账单、对账异常、差错工单和调整凭证第一版。真实打款 provider、发票、生产账单抽样验收和更完整财务复核体验后续增强。
- 销售/代理/CRM 队列、CRM 配置、CRM 跟进分配策略、CRM 死信失败池、脱敏日志、手动重试/忽略、销售/代理转化报表、分佣规则、成员分佣比例、分佣订单、结算单审核和线下打款登记;当前 Taro 租户营销中心已接 CRM 配置、队列、死信失败池、日志、重试/忽略、销售/代理转化、分佣、优惠券规则和核销报表第一版,财务运营页已接退款、官方账单、对账异常、差错工单和调整凭证第一版。真实打款 provider、发票、生产账单抽样验收和更完整财务复核体验后续增强。
CRM 分配策略由后端执行,前端只提交配置: