# 充值方式管理 · 限额设置 · PRD

**作者** Luke　**版本** v1.9　**日期** 2026-09-11　**状态** 进行中　**平台** BRAND_A & BRAND_B　**类** M

<details>
<summary><b>版本记录</b></summary>

| 版本 | 日期 | 变更摘要 |
|---|---|---|
| v1.9 | 2026-09-11 | [§2.2](#sec-2) 写死批量新增 0 项成功时的通用提示，不再借用单一对象的「非总代」错误；补入中英对照及验收落点。 |
| v1.8 | 2026-09-11 | [L0](#l0) 重绘资讯图表，补入容错解析、对象／业务错误与充值读取失败回落基本配置；同步 BO HTML 的现行 PRD 链接。 |
| v1.7 | 2026-09-11 | [§2](#sec-2) 依开发确认改为容错解析：英文／中文逗号、英文／中文分号、空白与换行均可识别，空项跳过、大小写不敏感、同批重复去重，不再产生“账号格式错误”；只有账号查无、非总代、重复、品牌或权限不符才走对象类失败。全文按需求 27–32 的最短路径重写，保留既有业务边界与完整版本历史；新增 BO HTML 原型。既有资讯图表未涉及解析规则，内容核对后沿用。 |
| v1.6 | 2026-09-01 | ✅ **`OP-5` 结案，待确认项 1 → 0**（`ruling:R-184` ③，Luke 2026-09-01 逐字「**不用改动，可以定稿了**」）。<br>**§8.1 标 `📐` 的 6 条（第 `6`、`8`、`12`、`13`、`14`、`19` 条）与 §1.4 弹窗顶部的 `本次将修改 {n} 笔限额配置`，一律照现文定稿**。<br>🔴 **`📐` 这个图标不换**——`📐` 的语义是「本 PRD 拟稿」，与「有没有被核定」是两回事；核定过了仍然是本 PRD 拟的稿。**改的是图例那句「上线前可能变」**（§8.1 导语），它现在不成立了。<br>⚠️ **`§8.2` 的错误码字面值不在本次定稿范围内**——那属开发定（§7.1），照旧。 |
| v1.5 | 2026-08-13 | **L0 六件减为四件**：③ 业务流程图移出（它画的就是 §2.1 的取值优先级）、⑤ 角色路由表删除，② 删「总代」一条（原型图看得到）。**`G1`–`G7` 改写为大白话**，一句话讲完、解释归「违反后果」列。**平台既有事实一律不复述**：§2.1 的 `usertree` 上溯 / 总代稳定性 / 三个前提表、§2.2 金额单位精度、§1.2 分页、§1.3 值域重述与「0 无上限」、§2.3 三方交叉校验、§5 权限点授予方式与命名注记、§6 日志六原则与日志权限、§7.1 三项。🔴 **删掉一个不存在的场景**：§2.1 原写「会员若曾变更过线路按发起那一刻算」——**平台没有换线这回事**，整段删除。🔴 **删除方式定案为物理删除**（原写「开发二选一」），§1.5 / §1.7 / §3 / `AC45` / `E_LIMIT_DUPLICATED` 同步——`AC45` 原本在物删下恒过、属假绿，现已可执行。**补 9 处 `⚠️ 设计如此`**（v1.4 曾把这类段落整批删掉）：读不到就放行 / 一组值通吃首充非首充 / 删除是回落不是禁充 / 金额栏不回显 / 批量修改不设二次确认 / 批量不报明细 / 系统异常直抛 / 禁用态照样可配 / 下限写 1 是为兼容三方。**表已说清楚的不再重讲**：§5 表下三段、§1.5 与 §8 重复的两段、§1.7 与 §1.5 重复的一段。**章节层级对齐**：加 `# L1 · 完整规格`，正文 `# N.` 降为 `## N.`。<br>🔴 **改完再逐行通读一遍，抓到 6 处**：① **§5 与 `G5` 硬矛盾**——原写「他进得去的清单里，总代 BRAND **恒等于**该充值方式的 BRAND」，若成立则校验第 8 项、`G5`、`AC17`、`E_AGENT_BRAND_MISMATCH`、§8.1 第 12 条**全是死码**；而 `AC17` 的构造方法正是它的反例（同时持两个品牌权限的管理员）。已改写为「**不保证同品牌，必须靠校验第 8 项拦下**」。② `AC35` 出处指向 §2.2 的金额单位段，该段本版已删——改指 §1.3 字段表。③ §2.2 举例表的 `M` 代称删去，直接写 `50000`（§1.3 已写死，多一层代称要回头查）。④ §1.4 两条「留空」紧邻易读混（一条说打开时留空、一条说提交不许留空），已并成一条讲清。⑤ §2.4 的 `设计如此` 去掉跨 case 对照（v1.4 曾刻意删过这类内容）。⑥ §7.1 导语比表还长，收成一句。另统一术语「清单表格」→「限额清单」。<br>🔴 **第二轮精简（Luke 逐条点名）**：L0 ① 删两句（第一句就是 `G1`、第二句就是 L0 ④ 第 7 条）；§1.1 「只有该点」改写清楚是**权限点**；§1.2 比照提款侧改成栏位清单式、删掉「页面由三块组成」（原型图看得到）；§1.4 整节精简——弹窗标题、按钮、以及「为什么不重跑其余校验」的解释全删，`总代` 栏合并成一句；§2.1 删「匹配主键这一对，缺一不可」整段（唯一键 §1.3 已定）。<br>🔴 **第二轮通读又抓 4 处**：① `AC35` 上一轮改了出处（§2.2 金额单位 → §1.3 字段表）后**与 `G1` 不再相关**，红线列改 `—`，`G1` 锚点同步移除——**这是本轮减法自己造出来的错配**；② §3「不存在跨 BRAND 的存量脏数据」太绝对，与 §5 刚补的「可以填错、靠校验第 8 项拦」互相削弱，已限定为「不会因渠道改品牌而产生」；③ §1.1 一边写「既有行为本档不重述」一边把既有三个动作的权限行为重述了一遍，已收成一句；④ `AC51` 尾巴「删除后不再出现且不可恢复」与 `AC10` 重复，删。 |
| v1.4 | 2026-08-12 | **只删不增的精简版，零口径变更。** 读者设定改为「**已经建过这个模块的开发**」，据此拿掉三类内容：<br>1. **理由与防呆**——全部 `⚠️ 设计如此` 段、跨 case（提款侧）对照、「否则会 / 会让人误以为 / 别读反」这类论证句。**规范句一句未动**，删的只是它后面解释「为什么这么定」的部分。<br>2. **重复**——`§1.7` 与 `§2.1` 都写过「总代冻结不影响配置」、`§2.1` 前提表与其上方都写过「不存在没有总代的会员」、`§7` 与 `§1.5` 都写过「软删还是物删」，各留一处。<br>3. 🔴 **附录 A 由 58 条 AC 压到 12 条**——只留「读懂文档也未必测得出来」的：需要特定构造 ／ 跨节叠加 ／ 时序并发 ／ 需注入故障。其余用例**交测试按 §1–§8 自行编制**；另留 **P0 编号索引 33 条**，因为「哪条是发版阻断」是产品判断、测试推不出来。<br>⚠️ **L0 六件、`§8` 提示语与错误码全表、版本记录与 TOC 均完整保留**——L0 是结构强制项，`§8` 含原型逐字文案、开发推不出来。 |
| v1.3 | 2026-08-12 | **全文通读的一致性修正，共 8 处，全部是 v1.2 改动带进去的残留。** 关键的三件：<br>1. 🔴 **补回一条丢失的提示语与错误码**（§8.1 新第 12 条 ／ §8.2 `E_AGENT_BRAND_MISMATCH`）——`§1.3` 校验第 8 项（总代 BRAND ＝ 充值方式 BRAND）是硬阻断、挂红线 `G5`、有 `AC17` P0 验收，但 v1.2 把 §8.1 从带字母子号重编成纯数字时，**这一条被顶掉、错误码整条消失**，「拒绝时说什么」全文无答案。补回后 §8.1 由 19 条增至 20 条，原 12–19 条顺延为 13–20。<br>2. 🔴 **修三处过期编号**——§1.3 引用的「§8 第 3c 条」（现为第 8 条）、§9 `OP-5` 括号里整组 v1.1 旧编号（现改为逐条列出实际标 📐 的条目）、以及 §1.5 ／ §1.6 因本次插条而顺延的条号。<br>3. 🔴 **`§5` 权限通则句限定范围**——「无权限时控件照常渲染」原文无限定，字面覆盖了它上方表格第 1 行的反例（`_设置限额` 是「入口不显示」），现限定为**上表 2–4 三个写权限点**。<br>另修：`AC14` 旧文案同步为 §8 逐字文案 ／ §7 编号断层（只有 7.3、无 7.1）／ 补 `§5` 权限点命名注记 ／ 补 `§2.1` 指向 §2.4 第 1 层的指针。<br>🔴 **第 9 处（Luke 二次裁决后补入本版，不另升版）**：`§5` 后端二次校验的**读取**那行原写「校验 `…_设置限额`。**只锁写接口**，越权者仍可读到…」，省略条件连词后字面读成「本方案只锁写接口」，与同段首句「读接口与写接口都要」及 `AC38`（P0）**语义倒置**；现补回 v1.1 本有的「**同样**」并改为「**不能**只锁写接口——否则…」，规则与理由拆成两行。 |
| v1.2 | 2026-08-12 | **与提款侧同类页面做定版对照后的全面对齐，共 24 处。** 关键的八件：<br>1. 🔴 **权限点由一个拆成四个**（§5）——`充值方式管理_设置限额` ＋ `_设置限额新增` `_设置限额修改` `_设置限额删除`，查看与三个写动作各自独立授予；**由此存在「只读态」**，无权限时控件照常渲染、点了才报。原写「新增一个、查改合一、无只读态」。<br>2. 🔴 **值域由占位改为写死 `1`–`50000`**（§1.3）——全平台统一、不按渠道区分，`AC13` 随之可执行。<br>3. 🔴 **「取不到」拆成四层归三种后果**（§2.4）——补上「未分配 / 判不出总代 ⇒ 渠道不显示」与「本清单与基本配置都读不到 ⇒ 渠道呈现 `0`–`0`、实际不可用」两层；**读取失败仍回落基本配置放行**，并写明理由（充值优先让用户充得进来）与它和提款侧刻意不同的原因。<br>4. 🔴 **默认排序由 `更新时间` 倒序改为 `ID` 正序**（§1.2）——`ID` 天然唯一，不需要次级排序键；原写法在批量修改把多条刷成同一秒后翻页会漏行或重复。<br>5. 🔴 **删除必须二次确认**（§1.5、§8）——单条与批量共用一个弹窗，**逐个列出总代账号、不给笔数、不得截断**；弹窗内不设备注栏。<br>6. 🔴 **删除完成不跳独立成功页**——改为弹窗 `操作成功`、关闭后刷新清单。<br>7. **账号解析除大小写外零容错**（§1.3）——前后空白**不去除**、连续逗号的空项**属格式错误**。<br>8. **提示语整表改用逐字文案**（§8），成功提示统一 `操作成功`、**弹窗、不带笔数**；另补齐 11 项（取消分配不联动删除、批量修改显示影响笔数、金额栏不回显、修改接口收到总代即拒绝、限额作用于整条代理线立红线 `G7`、系统异常抛原始错误、幂等约束、§7「本文档不定的事」一节等）。 |
| v1.1 | 2026-08-11 | **一轮口径收敛，共 40 处。** 关键的七件：<br>1. 🔴 **权限模型改写**（§5）——本需求**新增一个 `设置限额` 权限点**（含查看与编辑）；同时把充值方式管理既有的五个点（新增 / 编辑 / 启用禁用 / 批量排序 / 删除）如实列出。原写法「并入既有『操作』点、不新增权限点」与后台实际不符。<br>2. 🔴 **读不到限额配置时改为回落基本配置**（§2.4）——原写「拒绝本次发起」，现改为按未配置处理、照常放行，并记系统运行日志。玩家端因此不再需要新增提示。<br>3. 🔴 **「发起时」锁定为「玩家点击提交、后端受理该请求」那一刻**（§2.3），此后不再重读限额。<br>4. 🔴 **删除口径改写**（§1.5）——硬约束是「**删完同一个总代必须能重新加回来**」；软删与物理删除**开发二选一**，无论选哪个，删除动作都必须完整留痕到管理员操作日志，**留存由日志承担、不由数据行承担**。<br>5. 🔴 **金额单位与精度写死**（§2.2）——**元、整数、不支持小数**；输入值域是一个**固定上限**，不按渠道区分。<br>6. **批量口径补齐**（§1.3 / §1.4 / §1.5 / §1.6）：逐条独立处理、部分成功、并发撞唯一键按剔除、删除成功页与返回落点；🔴 **表头全选框勾中的是整份清单、不是当前页**。<br>7. **补错误码 ↔ 提示语映射表**（§8.2）、日志查看权限（§6）、账号解析规则（§1.3）。 |
| v1.0 | 2026-08-11 | 初版。在「充值方式管理」列表的操作列新增 `设置限额`，为每个充值方式维护一份「总代 × 单笔充值最小 / 最大限额」清单。配进清单的总代，其会员发起充值时取本清单的限额；没配进来的沿用基本配置里该充值渠道的限额。<br>本版同时定案四项判定口径：**一组值同时覆盖首充与非首充两套**（§2.2）、**以发起时的配置为准、在途订单不重算**（§2.3）、**删除即回落原本配置而非禁止充值**（§1.5）、**总代 BRAND 必须与充值方式 BRAND 一致**（§1.3）。 |

</details>

<details>
<summary><b>目录</b></summary>

[TOC]

</details>

---

<a id="l0"></a>

## L0 · 快速掌握

![充值方式管理限额设置资讯图表](infographic/prd_v1.8_infographic.png)
<!-- infographic-md5: 9e2aca3f80dd90b18c0fb577b0a2d0fc -->

### ① 一句话需求

在 `充提渠道管理 ▸ 充值方式管理` 的每个充值方式新增 `设置限额`，按总代维护单笔充值最小／最大限额；有记录取本清单值，没有记录才取基本配置。

### ② 术语写死表

| 词 | 唯一含义 |
|---|---|
| 本清单 | 一个充值方式底下的“总代 × 限额”覆盖表，各充值方式不共用。 |
| 基本配置 | 该充值渠道既有的首充／非首充两组限额。 |
| 覆盖 | 本清单的一组值同时替换首充与非首充两组值。 |
| 删除 | 移除覆盖并回落基本配置，不是禁止充值。 |

### ③ 全局红线表

| 不变量 | 违反后果 | 验证锚点 |
|---|---|---|
| **G1** 同一充值方式、同一总代最多一条有效记录；有记录取本清单，无记录取基本配置 | 用错限额或产生两套真相 | `AC1` `AC2` `AC11` |
| **G2** 本清单一组值同时覆盖首充与非首充 | 首充／非首充出现不同结果 | `AC3` `AC4` |
| **G3** 玩家提交时读取一次；之后改／删不重判在途充值 | 追溯改变已发起订单 | `AC5` `AC6` |
| **G4** 删除后回落基本配置；充值方式停用保留记录，删除才连带删除 | 删除被做成拉黑或留下孤儿资料 | `AC7` `AC8` |
| **G5** 总代 BRAND 必须等于充值方式 BRAND，且在管理员范围内 | 写入永远不会被消费的脏数据 | `AC15` `AC16` |
| **G6** 账号输入只做容错解析，不产生格式错误；对象查不到或不合业务条件才失败 | 合法名单因标点被拦 | `AC12` `AC13` `AC14` |
| **G7** 最小、最大均为 `1–50000` 正整数，且最小严格小于最大 | 形成无效区间 | `AC9` `AC10` |
| **G8** 表头全选覆盖整份清单；删除为物理删除并可重新新增 | 批量范围错误或永久无法重建 | `AC19` `AC20` |

### ④ 适用范围与「不做」边界

本期包含入口、限额列表、增改删、批量改删、取值优先级、充值方式联动、四个权限点与管理员日志。不改充值方式既有创建／修改／删除／启停逻辑、充值渠道分配、基本配置、玩家端页面／文案；不做首充／非首充分开设置、清单筛选搜索、导入导出或批量失败明细。

---

## 1. 页面与资料 <a id="sec-1"></a>

### 1.1 入口

**1.1.1** 充值方式列表既有 `修改`、`删除`、`启用／禁用` 不变，末尾新增 `设置限额`。有查看权限才显示入口；充值方式停用时仍可进入配置。

### 1.2 限额列表

**1.2.1** 标题为 `充值方式管理列表–{充值渠道}–限额列表`。一个充值方式一份列表，本页不做筛选与搜索。

| 顺序 | 栏位 | 规则 |
|:-:|---|---|
| 1 | 勾选 | 表头全选＋逐行勾选 |
| 2 | ID | 自增主键；批量操作以 ID 定位 |
| 3 | 总代 | 创建后不可修改 |
| 4–5 | 单笔最小／最大限额 | 正整数 |
| 6 | 更新时间 | `YYYY-MM-DD HH:mm:ss`，最后一次人工写入 |
| 7 | 管理员 | 最后一次人工写入者 |
| 8 | 操作 | `修改`、`删除`，恒显示 |

**1.2.2** 默认按 ID 正序。

## 2. 新增与账号解析 <a id="sec-2"></a>

### 2.1 表单与容错解析

**2.1.1** 页顶包含 `添加代理（仅限总代）` 多行输入、`单笔最小限额`、`单笔最大限额`、`添加`、`返回`。一次可输入多个总代，共用一组限额。账号栏内提示为 `可用逗号、分号、空格或换行分隔`。

**2.1.2** 前后端使用同一条管线：

1. 将英文逗号 `,`、中文逗号 `，`、英文分号 `;`、中文分号 `；`、Tab、空格与换行识别为分隔。
2. 去除每项前后空白并跳过空项；连续、开头或结尾分隔符都不报错。
3. 账号按大小写不敏感去重；同批重复只算一项。
4. 以清洗去重后的账号数判断单条／批量与 100 个上限。

**2.1.3** 清洗后 0 个账号按必填未填；大于 100 个整批不提交并保留输入。不存在“账号格式错误”分支：无法对应账号的字串按“查无此账号”处理。

### 2.2 对象校验与部分成功

| 顺序 | 校验 | 单条不过 | 批量不过 |
|:-:|---|---|---|
| 1 | 三个栏位都有值 | 阻断 | 阻断整批 |
| 2 | 清洗后账号数 ≤ 100 | 阻断 | 阻断整批 |
| 3 | 两个限额符合 [§3.1](#sec-3) | 阻断 | 阻断整批 |
| 4 | 账号存在且为总代 | 对应对象错误 | 剔除该项 |
| 5 | 总代 BRAND 在管理员可操作范围 | 对应权限错误 | 剔除该项 |
| 6 | 总代 BRAND ＝ 本充值方式 BRAND | 对应品牌错误 | 剔除该项 |
| 7 | 本充值方式尚无该总代记录 | 重复提示 | 剔除该项 |

**2.2.1** 批量逐条独立写入；有成功项就只回成功数，不列失败明细；0 项成功时统一回 `本批次无可新增的总代账号`，不借用任一单一对象错误。同批重复去重，并发撞唯一键只剔除冲突项。不校验总代是否已被分配该充值渠道。

## 3. 取值、生效与联动 <a id="sec-3"></a>

### 3.1 限额规则

**3.1.1** 两个限额都只收 `1–50000` 的正整数，含端点，不收 `0`、负数、小数或千分位；最小必须严格小于最大。本清单可比基本配置更宽或更严，不取交集。

### 3.2 玩家提交取值

1. 以玩家所属总代＋本次充值方式查本清单；有记录就取本清单的一组值，并同时用于首充与非首充。
2. 没有记录或本清单读取失败时，回落基本配置：首充取首充值，非首充取非首充值；读取失败同时写系统运行日志。
3. 基本配置也取不到时，该充值方式不可用并沿用既有处理。

**3.2.1** 限额作用于总代整条代理线。玩家点击提交时读取并校验一次；保存后的改动只影响之后的新提交，在途充值订单与后续支付回调不重判。下游只回本次生效的最小／最大值，不回来源层级。

### 3.3 充值方式联动

**3.3.1** 停用充值方式时保留全部限额记录；玩家不能选择该方式，重新启用后原记录恢复生效。物理删除充值方式时，同一事务物理删除其全部限额记录并写日志；受影响总代回落对应基本配置。取消渠道分配不删除记录，重新分配后恢复生效。

## 4. 修改、删除、批量与并发 <a id="sec-4"></a>

### 4.1 修改与删除

**4.1.1** 单条与批量修改共用弹窗：顶部显示 `本次将修改 {n} 笔限额配置`，总代栏禁用且完整可滚动，两个金额栏留空且都必填；确认后统一改为同一组值，不设二次确认。请求若带总代字段，拒绝整个请求。

**4.1.2** 单条与批量删除共用二次确认，不设备注；弹窗完整列出账号，不截断。确认后物理删除，立即回落基本配置；同一总代可重新新增并取得新 ID。

### 4.2 选取与并发

**4.2.1** 批量修改／删除未勾选时不发请求。逐行勾选只在当前页有效；表头全选覆盖整份清单并跨页。批量遇已删除或越权项时跳过，其余继续，结果统一显示 `操作成功` 且不带笔数。

**4.2.2** 同一记录并发修改以后保存者为准；被删除后再单条修改／删除则提示刷新。所属充值方式已删除时退回充值方式列表。重复提交不得产生重复记录或重复删除。

## 5. 权限、提示与留痕 <a id="sec-5"></a>

### 5.1 权限

| 权限点 | 控制 | 无权限时 |
|---|---|---|
| `充值方式管理_设置限额` | 入口、页面、读取 | 入口不显示 |
| `充值方式管理_设置限额新增` | 添加 | 控件仍显示，提交时报无权限 |
| `充值方式管理_设置限额修改` | 单条／批量修改 | 同上 |
| `充值方式管理_设置限额删除` | 单条／批量删除 | 同上 |

**5.1.1** 后端每次读写都复核页面权限、写权限、管理员 BRAND 与充值方式 BRAND。

### 5.2 后台提示语

| 场景 | 逐字文案 | 呈现 |
|---|---|---|
| 未勾选批量操作 | `请先选择用户，再操作` | 弹窗 |
| 清洗去重后超过 100 个账号 | `仅支持单笔 100 个账号` | 弹窗；保留输入 |
| 必填未填／清洗后无账号 | `请填写完整` | Inline |
| 限额格式或值域错误 | `请输入 1-50000 的正整数` | Inline |
| 最小 ≥ 最大 | `单笔最大限额 需大于 单笔最小限额` | Inline |
| 单条查无账号 | `查无此账号，请检查确认` | 弹窗 |
| 单条非总代 | `该用户非总代,请检查确认` | 弹窗 |
| 单条重复 | `{总代账号} 该总代之前已添加,请勿重复提交` | 弹窗 |
| 批量新增 0 项成功 | `本批次无可新增的总代账号` | 弹窗；不带单一对象失败原因 |
| 越管理员 BRAND | `该总代不在您的可操作范围内` | 弹窗 |
| 与充值方式不同 BRAND | `该总代与本充值方式不属于同一平台，无法配置` | 弹窗 |
| 缺写权限 | `您没有操作权限，请联系管理员` | 弹窗 |
| 目标已删除 | `该笔配置已被删除，请刷新后重试` | 弹窗；关闭后刷新 |
| 充值方式已删除 | `该充值方式已被删除` | 弹窗；关闭后返回列表 |
| 单条删除确认 | `{总代账号},是否确认删除?` | 弹窗 |
| 批量删除确认 | `{账号1},{账号2} 是否确认删除?` | 弹窗；完整列出 |
| 成功／批量部分成功 | `操作成功` | 弹窗；不带笔数 |
| 限额列表 0 笔 | `No More Data` | 页内空态 |

**5.2.1** 格式符号本身不触发提示。系统查询／写入异常沿用后台原始错误呈现，不包装新文案。

### 5.3 留痕

**5.3.1** 新增、修改、删除及充值方式连带删除写管理员操作日志，记录对象 ID、总代、充值方式、前后值；批量记一条汇总并带对象 ID 清单。批量新增另记提交数、成功数、剔除数及被剔账号。日志不设备注／操作原因。降级读取写系统运行日志。

---

## L2 · 验收与附录

<details>
<summary><b>附录 A：验收标准</b></summary>

| # | P | 验收点 |
|---|:-:|---|
| AC1 | P0 | 有记录取本清单值，无记录取基本配置（`G1`）。 |
| AC2 | P0 | 本清单值可比基本配置更宽或更严，不取交集（`G1`）。 |
| AC3 | P0 | 已配置总代首充取本清单值（`G2`）。 |
| AC4 | P0 | 同一总代非首充也取同一组本清单值（`G2`）。 |
| AC5 | P0 | 保存新值后，下一次充值提交使用新值（`G3`）。 |
| AC6 | P0 | 保存前已发起、之后才付款的订单不重判（`G3`）。 |
| AC7 | P0 | 删除记录后回落基本配置并仍可充值（`G4`）。 |
| AC8 | P0 | 停用保留记录；删除充值方式时连带删除全部记录并留痕（`G4`）。 |
| AC9 | P0 | `1` 与 `50000` 可输入；`0`、负数、小数、千分位、`50001` 被拦（`G7`）。 |
| AC10 | P0 | 最小等于或大于最大时阻断（`G7`）。 |
| AC11 | P0 | 并发新增同充值方式、同总代只成功一条（`G1`）。 |
| AC12 | P0 | `agentA,, agentB；\nAGENTA，agentC;` 解析为 `agentA／agentB／agentC`，不报格式错（`G6`）。 |
| AC13 | P0 | 只输入逗号、分号与空白时按必填未填（`G6`）。 |
| AC14 | P0 | `not-exist@@` 不报格式错，按查无账号处理（`G6`）。 |
| AC15 | P0 | 管理员同时有两 BRAND 权限时，跨充值方式 BRAND 的总代仍被拒绝（`G5`）。 |
| AC16 | P0 | 越管理员 BRAND 时前后端拒绝（`G5`）。 |
| AC17 | P1 | 清洗去重后 100 个可提交，101 个整批不提交且保留内容。 |
| AC18 | P1 | 批量中无效、非总代、越权、跨 BRAND 或重复项被剔除，有效项照常写入；全数被剔除时只显示 `本批次无可新增的总代账号`。 |
| AC19 | P0 | 未勾选不发请求；表头全选覆盖整份清单的跨页结果（`G8`）。 |
| AC20 | P0 | 删除后记录消失并可重新新增取得新 ID（`G8`）。 |
| AC21 | P1 | 修改弹窗金额不回显，总代不可编辑；请求带总代字段时整笔拒绝。 |
| AC22 | P1 | 批量修改影响数取实际选中数；已删除项跳过，其余成功。 |
| AC23 | P0 | 注入本清单读取失败时回落基本配置并写运行日志。 |
| AC24 | P0 | 缺查看权限时入口不显示；缺写权限时控件仍显示但提交被前后端拒绝。 |

</details>

<details>
<summary><b>附录 B：取值决策表</b></summary>

| 本清单记录 | 玩家类型 | 取值 |
|---|---|---|
| 有 | 首充／非首充 | 同一组本清单值 |
| 无／本清单读取失败 | 首充 | 基本配置首充值 |
| 无／本清单读取失败 | 非首充 | 基本配置非首充值 |

</details>

<details>
<summary><b>附录 C：原型视觉清单</b></summary>

## 原型视觉清单

| 视觉 ID | 载体 | 用途 | 证据 |
|---|---|---|---|
| `VIS-BO-NONE` | BO | 后台页面不使用图片或图片占位 | BO 原型只有表单、表格与弹窗 |
| `VIS-CLIENT-NONE` | Client | 本需求不产出客户端页面 | [L0 ④](#l0) |

</details>

---

文档版本：v1.9 | 日期: 2026-09-11 | 作者: Luke | 文档状态：进行中
