---
name: "getUsers"
mode: "api"
versionRequirements:
  - { name: "@ray-js/lock-sdk", version: "1.0.0" }
title: "getUsers - 获取门锁成员列表。"
summary: "获取门锁成员列表。"
---

## getUsers

> [VERSION] @ray-js/lock-sdk >= 1.0.0

### 描述

分页/关键字查询用户列表。

### 参数

`Params`

| 参数 | 类型 | 必填 | 描述 |
| --- | --- | --- | --- |
| `params` | `GetUsersParams` | 否 | 查询参数（page 页码、pageSize 每页条数、keyword 搜索关键字） |

### 返回值

类型: `Promise<getUsersResult>`

用户列表结果

##### getUsersResult

| 属性 | 类型 | 描述 |
| --- | --- | --- |
| `list` | `UserInfo[]` | 用户列表 |
| `hasMore` | `boolean` | 是否还有更多数据 |

### 引用对象

##### `interface` GetUsersParams

| 属性 | 类型 | 描述 |
| --- | --- | --- |
| `page` | `number` | 当前页码 |
| `pageSize` | `number` | 每页条数 |
| `keyword` | `string` | 搜索关键字 |

##### `interface` UserInfo

| 属性 | 类型 | 描述 |
| --- | --- | --- |
| `userId` | `string` | 云端用户 id |
| `lockUserId` | `number` | 锁端用户 id |
| `avatarUrl` | `string` | 头像 URL |
| `backHomeNotifyAttr` | `number` | 回家通知相关属性位 |
| `effectiveFlag` | `number` | 生效状态标记 |
| `nickName` | `string` | 昵称 |
| `offlineUnlock` | `boolean` | 是否支持离线开锁 |
| `timeScheduleInfo` | `Object` | 生效时间段与重复规则 |
| `unlockDetails` | `Object[]` | 按开锁方式类型分组的明细 |
| `userContact` | `string` | 用户联系方式（账号） |
| `userType` | `"UserType.ADMIN" \\| "UserType.MEMBER" \\| "UserType.UNKNOW" \\| "UserType.SHARE" \\| "UserType.OWNER"` | 用户类型 |
| `isFamilyUser` | `boolean` | 是否为家庭体系成员 |

##### `type` Week

周重复位图：下标 0–6 对应周日–周六，0 不生效 1 生效

```typescript
export type Week = [
  BitStatus,
  BitStatus,
  BitStatus,
  BitStatus,
  BitStatus,
  BitStatus,
  BitStatus,
];
```

##### `interface` UnlockMethodBaseInfo

| 属性 | 类型 | 描述 |
| --- | --- | --- |
| `unlockId` | `number` | 开锁方式硬件/实例 id |
| `unlockName` | `string` | 开锁方式名称 |
| `isBound` | `boolean` | 是否已与云端用户绑定 |
| `id` | `number` | 云端分配的开锁方式记录 id |
| `photoUnlock` | `boolean` | 是否图片类开锁方式 |
| `isSpecial` | `boolean` | 是否特殊开锁方式（通知等扩展） |

##### `enum` UserType

| 枚举值 | 实际值 | 描述 |
| --- | --- | --- |
| `UserType.ADMIN` | `10` | 管理员 |
| `UserType.MEMBER` | `20` | 普通成员 |
| `UserType.UNKNOW` | `30` | 匿名 |
| `UserType.SHARE` | `40` | 分享成员 |
| `UserType.OWNER` | `50` | 家庭拥有者 |

##### `type` UserInfo.timeScheduleInfo

| 属性 | 类型 | 描述 |
| --- | --- | --- |
| `userTimeSet` | `string` | 用户时间配置 |
| `effectiveTime` | `number` | 生效时间（毫秒时间戳） |
| `expiredTime` | `number` | 失效时间（毫秒时间戳） |
| `permanent` | `boolean` | 是否永久有效 |
| `scheduleDetails` | `Object` | 非永久时的重复明细 |

##### `type` UserInfo.timeScheduleInfo.scheduleDetails

| 属性 | 类型 | 描述 |
| --- | --- | --- |
| `repeat` | `boolean` | 是否按周重复 |
| `effectiveTime` | `number` | 每日生效时刻（从 0 点算起的分钟） |
| `invalidTime` | `number` | 每日失效时刻（分钟） |
| `timeZoneId` | `string` | 时区 id |
| `weeks` | `Week` | 周位图 |

##### `type` UserInfo.unlockDetails

| 属性 | 类型 | 描述 |
| --- | --- | --- |
| `count` | `number` | 该组条数 |
| `dpCode` | `string` | 该组对应 DP code |
| `dpId` | `number` | 该组对应 DP id |
| `type` | `"finger" \| "face" \| "password" \| "card" \| "fingerVein" \| "hand" \| "eye"` | 开锁方式类型 |
| `unlockList` | `UnlockMethodBaseInfo[]` | 组内各开锁方式 |


### 示例代码

```ts
import { getUsers } from '@ray-js/lock-sdk';
const users = await getUsers({ page: 1, pageSize: 10 });
```
