Эх сурвалжийг харах

docs(ac20): 校正 MaxDivideBizDepth 的出处 —— 行号 26→32,路径补全到 mock/routes

原注释抄的是任务单里的转述(divide-into.ts:26),本机前端仓实读后校正:
- 真实路径 DEV-MERGE-LEGACY-PC-FRONTEND-2026/src/api/mock/routes/divide-into.ts
- 常量在 :32(不是 :26),判据在 :107 parent.layer >= MAX_DIVIDE_DEPTH
- 判据等价性写进注释:mock 的 parent.layer>=3 ⇔ 本服务 nextLayer>3,同一 3111 边界
- 标注 mock 里「B-2 待业务拍板」的注释已过期(2026-11-10 已定硬规则)

顺带补回被我改丢的一句:超限一律 3111,靠 message 与另外三种 3111 语义区分。
无行为变化(纯注释)。
Q 7 цаг өмнө
parent
commit
c385dac942

+ 13 - 2
internal/academic/service/divide_service.go

@@ -52,9 +52,20 @@ import (
 const MaxDivideDepth int32 = 100
 
 // MaxDivideBizDepth 是分账层级的**业务规则**上限:最多 3 层(超管 → 校区主任 → 老师)。
+// 超限一律 apperr.ErrDivideQuotaExceeded(3111),与其它三种 3111 语义共用错误码、靠 message 区分。
 //
-// 拍板日期 2026-11-10(业务确认为**硬规则**,不是建议),来源 = 前端 mock
-// `divide-into.ts:26 MAX_DIVIDE_DEPTH = 3`。超限一律 apperr.ErrDivideQuotaExceeded(3111)。
+// 拍板日期 2026-11-10(业务确认为**硬规则**,不是建议)。
+//
+// 出处(已按本机前端仓实读校正,不是转述):
+//
+//	DEV-MERGE-LEGACY-PC-FRONTEND-2026/src/api/mock/routes/divide-into.ts:32
+//	const MAX_DIVIDE_DEPTH = 3;
+//	:107  if (parent.layer >= MAX_DIVIDE_DEPTH) return fail(3111, '分账层级超限(最多 3 层)');
+//
+// 判据等价:mock 的 `parent.layer >= 3` ⇔ 本服务的 `parent.Layer+1 > 3`(即 nextLayer > 3),
+// 同一个边界、同一个 3111、同一个"第 4 层被拒"语义 —— 前后端不会出现"前端不让点、
+// 后端却能建"或"后端拒了、前端以为能建"的错位。
+// (注:mock 里那句注释「B-2 待业务拍板,暂保留 3」已过期,2026-11-10 已成硬规则。)
 //
 // 为什么必须落在后端而不是只靠前端常量:mock 里的常量只保证"界面上不让你点"。
 // 真后端一旦没有这道校验,绕过前端(或第三方直接调 API)就能建出第 4 层,