feat: 移除“租户管理员为用户充值 / 每租户一套余额”能力:余额统一为全局用户余额

This commit is contained in:
2025-12-23 10:59:59 +08:00
parent dd7bcdfb98
commit a80c9b759b
39 changed files with 566 additions and 1869 deletions

View File

@@ -172,8 +172,7 @@
### 7.1 订单类型(建议)
为后续扩展预留 `order_type`
- `content_purchase`:购买内容(本 spec 核心)
- `topup`:充值订单(租户发放/用户支付)
> 你已确认本期只做 1.A + 2.A因此 `content_purchase` + `topup(tenant_grant)` 为主,`user_pay`/`service_fee` 仅作为未来扩展位保留。
> 已移除“租户为用户充值 / topup”特性用户余额为全局属性`users.balance`),可在加入的任意租户内消费。
### 7.2 订单状态(建议)
以余额支付为例(不接三方):
@@ -218,7 +217,6 @@
- 所有入账/出账/退款都强制关联“业务单据”(订单/退款单)。
### 8.2 流水类型(建议)
- `credit_topup`:充值入账
- `debit_purchase`:购买扣款
- `credit_refund`:退款回滚
- `freeze` / `unfreeze`:冻结/解冻(可选)
@@ -235,12 +233,8 @@
2) 创建 `TenantUser(tenant_id,user_id,role=member,balance=0)`
3) tenant_admin 可提升为 `tenant_admin`
### 9.2 租户为用户充值
1) tenant_admin 在后台选择 tenant_user、输入金额、填写备注/原因
2) 创建 `topup` 订单(或 topup 记录)
3) 写入 ledger`credit_topup`
4) 增加 tenant_user.balance
5) 返回充值结果与可用余额
### 9.2 (已移除)租户为用户充值
本项目不支持“租户管理员为用户充值”。余额为 users 全局余额,用户可在已加入租户内共享消费。
### 9.3 用户购买内容(余额支付)
1) buyer 选择 tenant 下某 content
@@ -259,7 +253,7 @@
1) tenant_admin 选中订单,校验可退款(状态/风控/时间窗)
2) 创建退款记录可选订单状态→refunding
3) 写入 ledger`credit_refund`(金额=退款金额)
4) 增加 tenant_user.balance(可用余额)
4) 增加用户全局余额(可用余额)
5) 订单状态→refunded记录 refunded_at 与操作者
6) 收回/标记权益(若需要)
@@ -370,7 +364,7 @@
### 13.7 balance_ledgers强烈建议新增
- `id`, `tenant_id`, `user_id`(或 `tenant_user_id`
- `direction`credit/debit
- `type`credit_topup/debit_purchase/credit_refund/...
- `type`debit_purchase/credit_refund/...
- `amount`(正数)
- `balance_before`, `balance_after`(可选但强审计)
- `biz_ref_type`, `biz_ref_id`(唯一约束,幂等)
@@ -385,8 +379,6 @@
## 14. API 草案(只描述意图,不锁死路径)
### 14.1 租户侧Tenant Admin
- 充值:
- `POST /tenants/:tenant_id/users/:user_id/topup`amount, note, idempotency_key
- 订单查询:
- `GET /tenants/:tenant_id/orders`(分页+筛选)
- `GET /tenants/:tenant_id/orders/:id`