---
name: "updateUserLimitTime"
mode: "api"
versionRequirements:
  - { name: "@ray-js/lock-sdk", version: "1.0.0" }
title: "updateUserLimitTime - 更新用户的时效性。"
summary: "更新用户的时效性。"
---

## updateUserLimitTime

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

### 描述

更新用户有效期、永久标记、离线开锁等限制信息。

### 参数

| 参数 | 类型 | 必填 | 描述 |
| --- | --- | --- | --- |
| `userId` | `string` | 是 | 用户 id |
| `lockUserId` | `number` | 是 | 设备端用户编号 |
| `permanent` | `boolean` | 是 | 是否永久有效 |
| `effective` | `EffectiveConfig` | 否 | 有效期配置 |
| `offlineUnlock` | `boolean` | 否 | 是否允许离线开锁 |

### 返回值

类型: `Promise<void>`

无

### 错误码

| 错误码 | 错误信息 |
| --- | --- |
| `1014` | 设备不支持该功能 |
| `1069` | 无权限修改成员时效（非管理员） |
| `1049` | 不支持修改管理员时效 |
| `1032` | 非永久时未传入有效期配置 |
| `1033` | 未配置有效期起始日期 |
| `1034` | 未配置有效期结束日期 |
| `1010` | 生效时间不能大于失效时间 |
| `1035` | 周重复时未配置 weeks |
| `1011` | 设备端更新成员时效失败 |
| `1012` | 云端更新成员时效失败 |

### 引用对象

##### `interface` EffectiveConfig

| 属性 | 类型 | 描述 |
| --- | --- | --- |
| `effectiveDate` | `number` | 生效日（秒级时间戳） |
| `expiredDate` | `number` | 失效日（秒级时间戳） |
| `repeat` | `"none" \| "week"` | 重复策略：无或按周 |
| `weeks` | `[0 \| 1, 0 \| 1, 0 \| 1, 0 \| 1, 0 \| 1, 0 \| 1, 0 \| 1]` | 周重复位图 |
| `effectiveTime` | `number` | 每日生效开始时间，单位：分钟 |
| `expiredTime` | `number` | 每日失效结束时间，单位：分钟 |

##### `type` Week

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

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

##### `type` BitStatus

位开关：0 关、1 开 / Single-bit flag

```typescript
export type BitStatus = 0 | 1;
```


### 示例代码

#### 示例

```ts
import { updateUserLimitTime } from '@ray-js/lock-sdk';
await updateUserLimitTime({ userId: 'user_001', lockUserId: 1, permanent: true });
```
