语言 / LanguagePRD v1.9

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

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

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

L0 · 快速掌握

充值方式管理限额设置资讯图表

① 一句话需求

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

② 术语写死表

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

③ 全局红线表

不变量 违反后果 验证锚点
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. 页面与资料

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. 新增与账号解析

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 阻断 阻断整批
4 账号存在且为总代 对应对象错误 剔除该项
5 总代 BRAND 在管理员可操作范围 对应权限错误 剔除该项
6 总代 BRAND = 本充值方式 BRAND 对应品牌错误 剔除该项
7 本充值方式尚无该总代记录 重复提示 剔除该项

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

3. 取值、生效与联动

3.1 限额规则

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

3.2 玩家提交取值

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

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

3.3 充值方式联动

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

4. 修改、删除、批量与并发

4.1 修改与删除

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

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

4.2 选取与并发

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

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

5. 权限、提示与留痕

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 · 验收与附录

附录 A:验收标准
# 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 缺查看权限时入口不显示;缺写权限时控件仍显示但提交被前后端拒绝。
附录 B:取值决策表
本清单记录 玩家类型 取值
有 首充/非首充 同一组本清单值
无/本清单读取失败 首充 基本配置首充值
无/本清单读取失败 非首充 基本配置非首充值
附录 C:原型视觉清单

原型视觉清单

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

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