1.6 KiB
1.6 KiB
T589 — crm-stats-api-three-dimensions
Status:
done
Milestone:M5
Kind:feat
Est. change:~200 lines
Goal
完成後系統應:GET /api/v1/crm/stats 回關鍵字轉換率、回覆版本成功率、成交來源三維度,樣本 < 5 只給絕對數並標「樣本不足」。
Depends on
- T548、T572
Inputs
- Spec:
../spec.md§4.8、§9.5(ST-01~ST-03)
Outputs
程式變更(預期路徑)
| 路徑 | 動作 | 說明 |
|---|---|---|
apps/backend/generate/api/crm.api |
edit | stats resp type(三維度+insufficient_sample 標記) |
apps/backend/internal/logic/crm/getCrmStatsLogic.go |
edit | 聚合查詢 |
apps/backend/internal/module/crm/usecase/stats.go |
add | 三維度計算與樣本門檻判斷 |
行為變更
- 關鍵字維度:以 watch
term為單位,won/accepted,附 accepted/replied/won 絕對數。 - 回覆版本維度:以
variant為單位,(replied + won) / used(used來自 T548 的MarkUsed)。 - 來源維度:
radar/既有海巡/manual_import的成交筆數(P0 不含金額)。 - 任一維度樣本 < 5:
insufficient_sample=true,只回絕對數,不回百分比與排名。
Out of scope
- 金額維度(P1)
- 圖表(T591 用既有元件)
Acceptance
- ST-01:accepted 8/won 2 → 顯示轉換率與絕對數
- ST-02:樣本 3 →
insufficient_sample=true且無百分比 - ST-03:三種來源分列
- 指令:
cd apps/backend && make gen-api && go test ./internal/logic/crm/... ./internal/module/crm/... -count=1