# 会员用户管理

> 模块标识：memberUser  |  接口数量：5

## 1. 获取会员用户列表
**方法**：	GET

**路径**：				/api/member-users

**功能说明**：
分页获取会员用户列表。会员用户用于将系统用户或客户端用户与会员（members）关联，供有状态会员 OpenAPI 校验使用。

### 请求参数
```json
{
  "query": [
    {
      "name": "pageNum",
      "type": "number",
      "required": false,
      "description": "页码，默认1"
    },
    {
      "name": "pageSize",
      "type": "number",
      "required": false,
      "description": "每页数量，默认10"
    },
    {
      "name": "status",
      "type": "number",
      "required": false,
      "description": "按状态筛选：1-有效，0-无效"
    },
    {
      "name": "memberId",
      "type": "string",
      "required": false,
      "description": "按会员ID筛选（会员管理记录的 _id 或 id）"
    }
  ]
}
```

### 响应示例
```json
{
  "success": {
    "code": "0000",
    "message": "获取成功",
    "data": {
      "list": [
        {
          "id": 1,
          "code": "MU0001",
          "userId": "abc123",
          "userType": "clientUser",
          "memberId": "member001",
          "status": 1
        }
      ],
      "total": 100,
      "pageNum": 1,
      "pageSize": 10
    }
  }
}
```

### 注意事项
- userId 为绑定的系统用户或客户端用户的主键（_id 或 id），统一存储在该字段
- userType 标识绑定用户类型：user（系统用户）或 clientUser（客户端用户）；OpenAPI 激活创建的记录可能未写入 userType，但有状态会员校验仍可通过 userId 匹配登录用户


## 2. 获取会员用户详情
**方法**：	GET

**路径**：				/api/member-users/{id}

**功能说明**：
根据会员用户ID获取详细信息

### 请求参数
```json
{
  "path": [
    {
      "name": "id",
      "type": "string",
      "required": true,
      "description": "会员用户ID（_id 或 id）"
    }
  ]
}
```

### 响应示例
```json
{
  "success": {
    "code": "0000",
    "message": "获取成功",
    "data": {
      "id": 1,
      "code": "MU0001",
      "userId": "abc123",
      "userType": "user",
      "memberId": "member001",
      "status": 1
    }
  },
  "failure": {
    "code": "4040",
    "message": "会员用户不存在",
    "data": null
  }
}
```


## 3. 创建会员用户
**方法**：	POST

**路径**：				/api/member-users

**功能说明**：
创建新的会员用户，手动绑定系统用户或客户端用户到会员记录

### 请求参数
```json
{
  "body": {
    "userId": "string｜可选，绑定的用户主键（users 或 clientUsers 的 _id/id）",
    "userType": "string｜可选，绑定用户类型：user（系统用户）、clientUser（客户端用户）。不传时按系统用户优先、客户端用户次之自动匹配",
    "memberId": "string｜可选，会员ID（会员管理记录的 _id/id），提供时会校验会员是否存在且有效",
    "status": "number｜可选，状态：1-有效，0-无效，默认1",
    "orderNum": "number｜可选，排序号，默认0"
  }
}
```

### 响应示例
```json
{
  "success": {
    "code": "0000",
    "message": "创建会员用户成功",
    "data": {
      "id": 1,
      "code": "MU0001",
      "userId": "abc123",
      "userType": "clientUser",
      "memberId": "member001",
      "status": 1
    }
  },
  "failure": {
    "code": "4000",
    "message": "关联的会员不存在",
    "data": null
  }
}
```

### 注意事项
- 若提供 userId，会在当前站点数据范围内校验用户是否存在：userType=user 时仅查 users 表；userType=clientUser 时仅查 clientUsers 表；未传 userType 时先查 users 再查 clientUsers
- 校验通过后服务端会写入 userType 字段，便于管理端区分绑定类型
- 若提供 memberId，会校验会员是否存在且有效（status=1），不存在或已停用分别返回：关联的会员不存在 / 关联的会员已停用
- 用户不存在或无权限访问时返回：用户不存在或无权限访问该用户；指定 clientUser 但未找到时返回：客户端用户不存在或无权限访问该客户端用户


## 4. 更新会员用户
**方法**：	PUT

**路径**：				/api/member-users/{id}

**功能说明**：
更新指定会员用户的信息，支持更换绑定的系统用户或客户端用户

### 请求参数
```json
{
  "body": {
    "userId": "string｜可选，绑定的用户主键（users 或 clientUsers 的 _id/id）",
    "userType": "string｜可选，绑定用户类型：user、clientUser。更换 userId 或未传 userType 时按创建接口相同规则校验；仅更新 userType 时会用现有 userId 重新校验",
    "memberId": "string｜可选，会员ID（会员管理记录的 _id/id），提供时会校验会员是否存在且有效",
    "status": "number｜可选，状态：1-有效，0-无效",
    "orderNum": "number｜可选，排序号"
  },
  "path": [
    {
      "name": "id",
      "type": "string",
      "required": true,
      "description": "会员用户ID（_id 或 id）"
    }
  ]
}
```

### 响应示例
```json
{
  "success": {
    "code": "0000",
    "message": "更新会员用户成功",
    "data": {
      "id": 1,
      "code": "MU0001",
      "userId": "abc123",
      "userType": "clientUser",
      "memberId": "member001",
      "status": 1
    }
  },
  "failure": {
    "code": "4000",
    "message": "关联的会员不存在",
    "data": null
  }
}
```

### 注意事项
- userId / userType 校验规则与创建接口一致
- 若提供 memberId，会校验会员是否存在且有效（status=1）
- organizationId、ownerId、ownerType 等归属字段不可通过本接口修改


## 5. 删除会员用户
**方法**：	DELETE

**路径**：				/api/member-users/{id}

**功能说明**：
删除指定的会员用户

### 请求参数
```json
{
  "path": [
    {
      "name": "id",
      "type": "string",
      "required": true,
      "description": "会员用户ID"
    }
  ]
}
```

### 响应示例
```json
{
  "success": {
    "code": "0000",
    "message": "删除会员用户成功",
    "data": {
      "result": true
    }
  },
  "failure": {
    "code": "4000",
    "message": "删除会员用户失败",
    "data": null
  }
}
```

