聊天用户字段调整:roles + is_user_banned (2026-02-27)

影响接口

  • POST /api/chats/list
  • POST /api/chats/new_chats
  • POST /api/chats/create
  • POST /api/groups/list
  • POST /api/groups/new_groups
  • POST /api/groups/info
  • POST /api/admin_center/group_message/list
  • Echo 事件中的 chat/group.users
    • ChatCreated
    • ChatUpdated
    • ChatMessageCreated
    • ChatMessageTranslateSuccessed
    • GroupCreated
    • GroupUpdated
    • GroupMessageCreated

变更点

  • 聊天/群聊返回的用户对象新增:
    • is_user_banned: boolean(是否被封禁)
  • 聊天/群聊返回的用户对象中:
    • roles 统一为角色名数组($user->roles->pluck('name')),例如 ["artist"]["admin"]
  • 聊天/群聊返回的用户对象中:
    • 移除 is_artist 字段(前端通过 roles 判断是否 artist)
  • 保留兼容逻辑:
    • 若用户不包含 artist 角色,则强制返回 artist: null

请求示例

请求参数无变化。

{
  "size": 15,
  "ts": 1740643200000,
  "cursor": null
}

返回示例

{
  "data": [
    {
      "id": 123,
      "users": [
        {
          "id": 10001,
          "name": "alice",
          "roles": ["artist"],
          "is_user_banned": false,
          "artist": {
            "id": 20001,
            "user_id": 10001,
            "name": "alice_artist"
          }
        },
        {
          "id": 10002,
          "name": "bob",
          "roles": ["admin"],
          "is_user_banned": true,
          "artist": null
        }
      ]
    }
  ]
}

兼容性说明

  • 前端如仍依赖 is_artist,需改为 roles.includes("artist")
  • roles 由“角色对象数组”调整为“角色名字符串数组”,前端渲染逻辑需按字符串处理。