feat(api): 用户前缀查找并入 displayName——成员添加可按姓名搜人(方案 A)

线上根因:V1.1 账号=手机号,运营按姓名搜索恒空(accountPrefix 仅匹配
account)。扩展为 account OR displayName 前缀(括号分组保资格过滤不被
短路),大小写敏感/激活过滤/account 升序语义不变;与管理列表 query 模式
对齐。契约描述同步。附 members-categories e2e 冷启动超时对齐 120s。

Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
浅念
2026-09-29 15:20:09 +08:00
parent 8c47a88c79
commit b0a3515bf2
5 changed files with 55 additions and 9 deletions
+6 -4
View File
@@ -1313,9 +1313,11 @@ paths:
双模式统一端点(P4a 决策:与 P1b 账号前缀查询合一,响应统一
AdminUserList——条目为 AdminUser 字段超集,管理端 UI 按场景裁剪展示):
· 前缀模式(提供 accountPrefix):邀请协作者前置查询,沿用 P1b 语义
——大小写敏感前缀匹配(服务端按二进制校对执行 LIKE prefix%)、
仅「激活资格」用户(credentialStatus=active 且 sourceStatus≠disabled
且 !localLocked,与成员添加的目标校验一致)、account 升序;
——大小写敏感前缀匹配(服务端按二进制校对执行 LIKE prefix%,匹配
account **或 displayName** 前缀——2026-09-29 扩展:V1.1 账号=手机号,
运营按姓名搜人是自然预期)、仅「激活资格」用户(credentialStatus=
active 且 sourceStatus≠disabled 且 !localLocked,与成员添加的目标
校验一致)、account 升序;
访问策略沿用 P1b 决策:任何已认证工作人员可用(邀请发起方不限于
创建者/管理员,泄露面为已认证内部人员,风险可接受)。
· 管理列表模式(未提供 accountPrefix):全量用户治理列表(游标分页,
@@ -1328,7 +1330,7 @@ paths:
parameters:
- name: accountPrefix
in: query
description: 账号前缀(≥2 字符以防过宽匹配;提供即进入前缀模式)。
description: 账号或姓名前缀(≥2 字符以防过宽匹配;提供即进入前缀模式;大小写敏感——中文姓名无大小写语义)。
schema:
type: string
minLength: 2
+6 -4
View File
@@ -557,9 +557,11 @@ export interface paths {
* @description 双模式统一端点(P4a 决策:与 P1b 账号前缀查询合一,响应统一
* AdminUserList——条目为 AdminUser 字段超集,管理端 UI 按场景裁剪展示):
* · 前缀模式(提供 accountPrefix):邀请协作者前置查询,沿用 P1b 语义
* ——大小写敏感前缀匹配(服务端按二进制校对执行 LIKE prefix%)、
* 仅「激活资格」用户(credentialStatus=active 且 sourceStatus≠disabled
* 且 !localLocked,与成员添加的目标校验一致)、account 升序;
* ——大小写敏感前缀匹配(服务端按二进制校对执行 LIKE prefix%,匹配
* account **或 displayName** 前缀——2026-09-29 扩展:V1.1 账号=手机号,
* 运营按姓名搜人是自然预期)、仅「激活资格」用户(credentialStatus=
* active 且 sourceStatus≠disabled 且 !localLocked,与成员添加的目标
* 校验一致)、account 升序;
* 访问策略沿用 P1b 决策:任何已认证工作人员可用(邀请发起方不限于
* 创建者/管理员,泄露面为已认证内部人员,风险可接受)。
* · 管理列表模式(未提供 accountPrefix):全量用户治理列表(游标分页,
@@ -4440,7 +4442,7 @@ export interface operations {
listAdminUsers: {
parameters: {
query?: {
/** @description 账号前缀(≥2 字符以防过宽匹配;提供即进入前缀模式)。 */
/** @description 账号或姓名前缀(≥2 字符以防过宽匹配;提供即进入前缀模式;大小写敏感——中文姓名无大小写语义)。 */
accountPrefix?: string;
/**
* @description 管理列表过滤:账号或展示名前缀(大小写敏感二进制前缀匹配,同