artist 资格状态改为 artist.status (2026-03-09)
本文档覆盖 2026-03-09 这次需求的最终对接方案。 旧方案中的
artist_role_revoked_at/is_artist_qualification_canceled已废弃,前端不要再使用。
影响接口
GET /api/user/infoPOST /api/content/artist/listGET /api/content/artist/infoPOST /api/content/service/listGET /api/content/service/infoPOST /api/content/artwork/listGET /api/content/artwork/infoPOST /api/chats/listPOST /api/chats/createPOST /api/chats/new_chatsPOST /api/groups/listPOST /api/groups/infoPOST /api/groups/new_groups- Echo 事件中的
chat/group.users[*]:ChatCreatedChatUpdatedChatMessageCreatedChatMessageTranslateSuccessedGroupCreatedGroupUpdatedGroupMessageCreated
变更点
- artist 资格状态的唯一来源改为
artist.status。 artist.status取值:activerevoked
artist.revoked_at表示 artist 资格被取消的时间;当status = active时应视为null。- 以下旧字段不再作为前端对接字段使用:
artist_role_revoked_atis_artist_qualification_canceled
1) user info
GET /api/user/info的data.artist对“历史上是 artist,但当前资格已取消”的用户仍然会返回,不会再强制为null。GET /api/user/info的data.artist里应读取:statusrevoked_at
GET /api/user/info的data.is_artist含义变为:- 当前是否仍是“可用中的 artist”
- 即:有 artist profile,且
artist.status = active
GET /api/user/info的data.permissions现在可能包含:view_deposit_wallet
view_deposit_wallet的前端含义:- 是否展示提现钱包相关入口/页面
- 以下用户会返回
view_deposit_wallet:- 当前仍是 artist 的用户
- artist 资格已取消,但仍保留 artist 历史身份的用户
- 被封禁用户不会返回
view_deposit_wallet。
2) content list / search
- content list / 搜索接口会隐藏以下内容:
- 被封禁用户的 artist / service / artwork
artist.status = revoked的 artist / service / artwork
- 前端对 list 结果无需再自行过滤 revoked artist。
3) content info
- content info 接口与 list 的可见性不再完全一致。
- 对于仅“artist 资格被取消”的对象:
artist info仍可通过已知id / cname访问service info仍可通过已知 id 访问artwork info仍可通过已知 id 访问
- 对于“用户已被封禁”的对象:
- content info 仍不可访问
- 前端可继续支持“直接输入链接访问 artist 主页”的场景。
- info 返回里的 artist 状态字段:
GET /api/content/artist/info:读取data.status、data.revoked_atGET /api/content/service/info:读取data.artist.status、data.artist.revoked_atGET /api/content/artwork/info:读取data.artist.status、data.artist.revoked_at
4) chat / group
- chat / group 用户对象中的
artist不会因为资格被取消而强制变成null。 - 也就是说,资格被取消的 artist,在聊天和群聊里仍然会返回 artist 头像、artist 名称等资料。
- 资格被取消后,
roles里可能不再包含artist;因此:- 不能再用
roles.includes('artist')判断“是否展示 artist 身份信息” - 应改为根据
artist !== null判断“该用户是否有 artist 身份资料”
- 不能再用
- 是否展示“已取消 artist 资格”标记,应基于:
artist?.status === 'revoked'
- 聊天 / 群聊头像旁标签优先级:
is_user_bannedartist?.status === 'revoked'- 其他角色标记,例如
admin
请求示例
请求参数无新增;本次主要是返回结构与可见性语义调整。
user info
content list
返回示例
user info
聊天 / 群聊用户对象
artist info
service info
兼容性说明
- 前端不要再读取:
artist_role_revoked_atis_artist_qualification_canceled
- 前端不要再用
roles是否包含artist来决定聊天/群聊里展示 user 信息还是 artist 信息。 - 前端不要再用
artist !== null直接判断“是否仍具备有效 artist 资格”;因为 revoked artist 仍然会返回artist。 - 判断“当前是否仍具备有效 artist 资格”,应优先读取:
artist.status === 'active'- 或
GET /api/user/info中的is_artist
- 判断“是否显示已取消 artist 资格标记”,应读取:
artist.status === 'revoked'
- 提现钱包相关入口应基于
permissions中是否包含view_deposit_wallet渲染,而不是基于roles中是否包含artist。 - content list 不可见,不代表 content info 一定不可见:
- revoked artist:list 不可见,info 可访问
- banned user:list 不可见,info 也不可访问

