[R3-08][low] 后台加人把已在群内的编号记成审计成功 #72

Closed
opened 2026-09-30 17:18:26 +08:00 by nixevol · 3 comments
Owner

现象

基线 origin/main 0c9b459。AdminAddMembers 对已在群内和重复编号是静默跳过,不放进 failed。审计用 len(req.MemberIDs) - len(failed) 当成功条数。请求里全是已有成员时 failed 为空,审计写成 ok,HTTP 的 failed 也是空数组,界面会提示已经加人,实际插入 0 行。

成员表本身没有写错,错的是成功口径。

位置

  • internal/admin/groups.go:group_add_members 的 okN 与 batchAuditResult

方案

用实际插入数(或请求数减去失败数再减去跳过数)计算审计结果。全部跳过、没有新成员时不要记成 ok。响应里的 failed 仍只包含真正失败的编号;若现有界面只看 failed 为空就提示成功,响应里增加已跳过或实际加入数量,让界面按实际加入数提示。不要把已是成员改成错误码,除非产品本来就把重复加人当失败。当前产品是静默跳过,只修正审计和提示。

补测试:三个重复的已有成员,审计不是 ok,插入行数为 0。

约束

只改 internal/admin/groups.go、对应测试,以及若响应字段有变时的 web/src 群成员添加提示。偏差节 ### 复审修复 R3-08。

## 现象 基线 `origin/main` `0c9b459`。`AdminAddMembers` 对已在群内和重复编号是静默跳过,不放进 `failed`。审计用 `len(req.MemberIDs) - len(failed)` 当成功条数。请求里全是已有成员时 `failed` 为空,审计写成 `ok`,HTTP 的 `failed` 也是空数组,界面会提示已经加人,实际插入 0 行。 成员表本身没有写错,错的是成功口径。 ## 位置 - `internal/admin/groups.go`:`group_add_members` 的 `okN` 与 `batchAuditResult` ## 方案 用实际插入数(或请求数减去失败数再减去跳过数)计算审计结果。全部跳过、没有新成员时不要记成 `ok`。响应里的 `failed` 仍只包含真正失败的编号;若现有界面只看 `failed` 为空就提示成功,响应里增加已跳过或实际加入数量,让界面按实际加入数提示。不要把已是成员改成错误码,除非产品本来就把重复加人当失败。当前产品是静默跳过,只修正审计和提示。 补测试:三个重复的已有成员,审计不是 `ok`,插入行数为 0。 ## 约束 只改 `internal/admin/groups.go`、对应测试,以及若响应字段有变时的 `web/src` 群成员添加提示。偏差节 `### 复审修复 R3-08`。
Author
Owner

???(?? feat/fix-r3-72-audit,HEAD 8b7b780)?

  • handleGroupAddMembers ????? group_members ??????? added;????? len(member_ids)-len(failed)?
  • ???????/??????? 0 ??,?? result=noop(?? ok);failed ????????,???????????
  • ???? added;???????????
  • ??:go test ./internal/admin/ ??;pnpm test -- src/views/GroupsView.spec.ts ???????????
  • ???,?? main?
???(?? `feat/fix-r3-72-audit`,HEAD `8b7b780`)? - `handleGroupAddMembers` ????? `group_members` ??????? `added`;????? `len(member_ids)-len(failed)`? - ???????/??????? 0 ??,?? `result=noop`(?? `ok`);`failed` ????????,??????????? - ???? `added`;??????????? - ??:`go test ./internal/admin/` ??;`pnpm test -- src/views/GroupsView.spec.ts` ??????????? - ???,?? `main`?
Author
Owner

已合入 main:b9b88f1 (#72);当前 origin/main HEAD 2d1dfd7。

已合入 main:`b9b88f1` (#72);当前 origin/main HEAD `2d1dfd7`。
Author
Owner

复查后补了一处并发口径:added 改为写事务内实际插入数 069039f (#72),不再用事务外两次 COUNT 的差。

复查后补了一处并发口径:`added` 改为写事务内实际插入数 `069039f` (#72),不再用事务外两次 COUNT 的差。
Sign in to join this conversation.