feat: 移除“租户管理员为用户充值 / 每租户一套余额”能力:余额统一为全局用户余额
This commit is contained in:
@@ -149,27 +149,19 @@
|
||||
- refunding 期间不得重复扣款/重复回收权益;
|
||||
- 失败可重试(明确重试幂等键策略)。
|
||||
|
||||
## Epic E:审计字段结构化(当前充值操作者更多在 snapshot/remark)
|
||||
## Epic E:审计字段结构化(操作者/业务引用结构化)
|
||||
|
||||
### E1(P1, DB/API)tenant_ledgers 增加操作者字段与业务引用字段
|
||||
|
||||
- **DB 变更**(建议):
|
||||
- `tenant_ledgers.operator_user_id bigint NULL`
|
||||
- `tenant_ledgers.biz_ref_type varchar(32) NULL`(order/refund/topup/etc)
|
||||
- `tenant_ledgers.biz_ref_type varchar(32) NULL`(order/refund/etc)
|
||||
- `tenant_ledgers.biz_ref_id bigint NULL`
|
||||
- 对 `(tenant_id, biz_ref_type, biz_ref_id, type)` 做唯一约束(或与 idempotency_key 二选一作为主幂等源)。
|
||||
- **验收用例**:
|
||||
- 充值/退款/购买相关 ledger 必须写入 operator_user_id(admin/buyer/system);
|
||||
- 购买/退款/调账等敏感 ledger 必须写入 operator_user_id(admin/buyer/system);
|
||||
- 后台可按 operator_user_id 检索敏感操作流水。
|
||||
|
||||
### E2(P1, DB/Order)topup 结构化操作者字段(可选)
|
||||
|
||||
- **DB 变更**(二选一):
|
||||
1) 在 `orders` 增加 `operator_user_id`(对 topup 更直观)
|
||||
2) 保持在 snapshot,但保证 ledger/operator 字段可追溯
|
||||
- **验收用例**:
|
||||
- 导出订单时能明确区分“充值发起人”和“充值受益人”。
|
||||
|
||||
## 1. 建议交付顺序(最小闭环)
|
||||
|
||||
1) A1 → A2(先把公开读能力与语义定死)
|
||||
|
||||
Reference in New Issue
Block a user