94 lines
4.1 KiB
Markdown
94 lines
4.1 KiB
Markdown
# 交互设计 · 支付记录
|
||
|
||
> 订阅权益与充值入账的登记面(管理入口名「支付记录」)+ 系统核对提示——「只有作者知道」的信息的唯一录入处。物理上分 `subscriptions` / `topups` 两表(`payments建模评估.md` 方案 B),界面仍作**一个菜单项**,两 Tab 各登记各的。
|
||
|
||
| 项目 | 内容 |
|
||
|------|------|
|
||
| 状态 | 定稿(2026-10-12,作者认可实现) |
|
||
| 关联 | 《交互设计-总览与共性》· `subscriptions表字段设计.md` · `topups表字段设计.md` · R7/R8 |
|
||
| 数据 | `subscriptions` + `topups` · 日志观测的订阅 ID(核对提示) |
|
||
|
||
---
|
||
|
||
## 1. 页结构:两 Tab
|
||
|
||
菜单仍叫「支付记录」;页内 Tab:
|
||
|
||
| Tab | 清单 | 登记 |
|
||
|-----|------|------|
|
||
| **订阅** | 订阅权益表 | 登记订阅 |
|
||
| **充值** | 充值入账表 | 登记充值 |
|
||
|
||
筛选随 Tab:
|
||
|
||
| Tab | 筛选 | URL |
|
||
|-----|------|-----|
|
||
| 订阅 | 订阅 ID / 期间与所选窗口重叠(拆表后) | `tab=subs` |
|
||
| 充值 | **仅类型**(付费时间筛选已撤——`paid_at` 语义待拆表钉死) | `tab=topups` · `kind` |
|
||
|
||
当前实现(拆表前):仅「类型」筛选;补录审计可看「登记」列(`created_at`)。
|
||
|
||
## 2. 订阅清单列
|
||
|
||
| 列 | 内容 |
|
||
|----|------|
|
||
| 订阅 ID | `subscription_id` |
|
||
| 期间 | `[period_start, period_end)`,未结束「进行中」 |
|
||
| 额度 | quota + $ 双单位 |
|
||
| 付款 | `paid_amount` / `paid_at`(可空显示「—」) |
|
||
| 备注 | `remark` |
|
||
| 登记 | `created_at` |
|
||
| 操作 | 编辑 / 删除 |
|
||
|
||
## 3. 充值清单列(对齐上游充值单)
|
||
|
||
| 列 | 内容 |
|
||
|----|------|
|
||
| 时间 | `paid_at`(= 上游 `complete_time`,平台展示时刻;倒序) |
|
||
| 充值金额 | `amount`(平台计费侧充值额,不标币种) |
|
||
| 实付金额 | `money`(如 `2.04`,纯数字) |
|
||
| 交易号 / 渠道 | `trade_no` · `payment_method` / `payment_provider` |
|
||
| 派生额度 | `amount × qpu` + $(展示,不入库) |
|
||
| 备注 / 登记 | `remark` · `created_at` |
|
||
| 账本域 | `billing_domain`(可空;列表可按域筛,含「未标注」) |
|
||
| 操作 | 编辑 / 删除 |
|
||
|
||
## 4. 登记表单(分 Tab,不再 `kind` 切换)
|
||
|
||
**订阅**:订阅 ID · 期间起止(结束可空)· 额度(quota / 美元双输入)· 付款金额(可空)· 付款时间(可空)· 账本域(可空,已有值联想)· 备注 · **「从平台选用」**(辅助登录 → 订阅列表)
|
||
|
||
**充值**:时间 `paid_at`(必填)· `amount`(必填)· `money`(必填)· 交易号 / 渠道(可空)· 账本域(可空,已有值联想)· 备注 · **「从平台选用」**(辅助登录 → 充值单分页列表);**无「换得额度」输入框**(派生)
|
||
|
||
### 4.1 选用弹层(订阅 / 充值同规则)
|
||
|
||
与 `platform-subscription-picker` 同壳:账号密码 → 代拉 → 选用。**已登记灰显**两套一致:
|
||
|
||
| 实体 | 去重键 | 已登记表现 |
|
||
|------|--------|------------|
|
||
| 订阅 | `subscription_id` | 灰 +「已登记」,不可选用 |
|
||
| 充值 | `upstream_id` | 灰 +「已登记」,不可选用 |
|
||
|
||
**充值分页**(上游仅 `p` / `page_size`,无时间参数):
|
||
|
||
| 行为 | 策略 |
|
||
|------|------|
|
||
| 列表 | 当前页(`page_size=10`) |
|
||
| 翻页 | 传统分页:共 N 条 · 上一页 / 页码 / 下一页 |
|
||
| 范围 | 可翻至尽头;**不做时间筛选** |
|
||
| 401 | 重登;token 仅 sessionStorage |
|
||
|
||
订阅列表为全量一次拉取(`all_subscriptions`),无分页问题。
|
||
|
||
- 金额脚注:「金额数值——币种由你们约定,系统不预设」
|
||
- 订阅额度双输入:原始 quota 或美元(按 `qpu/latest` 预览),落库恒 quota
|
||
- 编辑 / 删除有确认;改错即修
|
||
|
||
## 5. 核对提示(只对订阅 Tab)
|
||
|
||
| 提示 | 触发 | 文案 |
|
||
|------|------|------|
|
||
| 未对应登记 | 观测到某 `subscription_id` 有消耗、`subscriptions` 无此行 | 「观测到订阅 #N 有消耗,但尚无对应登记——请核对补录」 |
|
||
| 正常 | 均有登记 | 不显示 |
|
||
|
||
- 只提示不回填;`subscriptions` + `topups` 皆空时**自动静默**(纯用量模式)
|