feat: add commission settlement exports and proofs

This commit is contained in:
Codex
2026-06-29 21:03:57 +08:00
parent ec23cd3b9b
commit 8d4428214a
11 changed files with 706 additions and 24 deletions

View File

@@ -785,8 +785,12 @@ GET /api/tenant-admin/dashboard?timeRange=30d&regionId=<可选地区ID>&limit=10
| 分佣汇总 | `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/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` |
| 审核/打款状态 | `POST /api/commission/settlements/status` | `commission:review` |
| 查看凭证 | `GET /api/commission/settlements/proofs?settlementId=...` | `commission:read``commission:self` |
| 登记凭证 | `POST /api/commission/settlements/proofs` | `commission:review` |
| 凭证复核 | `POST /api/commission/settlements/proofs/status` | `commission:review` |
金额字段统一为分:
@@ -820,7 +824,10 @@ approved -> cancelled
- 已进入结算单的来源会返回 `settlementId/settlementStatus`,前端不要重复发起生成。
- 已打款结算单不可再修改状态;遇到 `COMMISSION_SETTLEMENT_LOCKED` 展示“已打款,不可变更”。
- `COMMISSION_NO_UNSETTLED_SOURCES` 表示当前账期无未结算来源,不是系统异常。
- 当前版本仅支持线下打款状态登记;真实银行/微信/支付宝打款、导出、发票/凭证和财务复核后续由 worker/provider 增强
- 导出接口返回 `contentBase64/sha256/filename/mimeType`H5 可转成下载,微信小程序端建议后续使用文件系统保存;前端不要直接查询 `commission_settlement_items` 拼文件
- 凭证支持 `assetId``externalUrl`。如果使用 `assetId`,必须先通过资料/对象存储台账上传凭证,后端会校验资源属于当前租户;`externalUrl` 只接受 http/https。
- `referrerUserId` 是受首绑保护的推广/分佣归属CRM 的 `assignedToUserId` 只是跟进负责人,不能作为分佣结算依据。
- 当前版本支持线下打款状态登记、结算导出、凭证登记和凭证复核;真实银行/微信/支付宝打款 provider、发票和批量凭证上传后续增强。
### 背单词计划与复习上报