# 用户邀请记录 API 文档
本文档专门描述用户邀请记录管理相关的接口。
## 1. 基础信息
* **URL 前缀**: `/v2/user/invite`
* **响应格式**: 统一使用 `GlobalResponseWrapper`
---
## 2. 接口列表
### 2.1 获取用户邀请记录列表
* **URL**: `/list`
* **Method**: `GET`
* **描述**: 分页查询用户邀请记录列表。接口会同时返回**邀请人**和**被邀请人**的详细信息,并支持通过这些用户属性进行搜索。
#### 请求参数
| 字段名 | 类型 | 必填 | 说明 |
| :--- | :--- | :--- | :--- |
| `page` | integer | 否 | 页码,默认 1 |
| `size` | integer | 否 | 每页大小,默认 10 |
| `userId` | integer | 否 | 精确筛选用户ID(匹配邀请人或被邀请人) |
| `keyword` | string | 否 | **多字段模糊搜索**。支持匹配邀请人或被邀请人的以下字段:
1. 昵称 (`nickname`)
2. 邮箱 (`email`)
3. 苹果ID (`appleUserId`)
4. 原始交易ID (`originalTransactionId`) |
| `startTime` | string | 否 | 开始时间 (yyyy-MM-dd HH:mm:ss) |
| `endTime` | string | 否 | 结束时间 (yyyy-MM-dd HH:mm:ss) |
#### 响应参数 (`data` 字段)
返回 Mybatis-Plus `Page` 对象,`records` 列表中的元素结构如下:
| 字段名 | 类型 | 说明 |
| :--- | :--- | :--- |
| `id` | integer | 记录ID |
| `userId` | integer | 邀请人ID |
| `inviteeId` | integer | 被邀请人ID |
| `createTime` | string | 创建时间 |
| **邀请人信息** | | |
| `inviterNickname` | string | 邀请人昵称 |
| `inviterEmail` | string | 邀请人邮箱 |
| `inviterAppleUserId` | string | 邀请人苹果ID |
| `inviterOriginalTransactionId` | string | 邀请人原始交易ID |
| `inviterIsVip` | integer | 邀请人是否VIP (0:否 1:是) |
| `inviterPlatform` | string | 邀请人平台 |
| `inviterLanguage` | string | 邀请人语言 |
| **被邀请人信息** | | |
| `inviteeNickname` | string | 被邀请人昵称 |
| `inviteeEmail` | string | 被邀请人邮箱 |
| `inviteeAppleUserId` | string | 被邀请人苹果ID |
| `inviteeOriginalTransactionId` | string | 被邀请人原始交易ID |
| `inviteeIsVip` | integer | 被邀请人是否VIP (0:否 1:是) |
| `inviteePlatform` | string | 被邀请人平台 |
| `inviteeLanguage` | string | 被邀请人语言 |
#### 示例响应
```json
{
"code": 200,
"message": "success",
"data": {
"records": [
{
"id": 1001,
"userId": 10086,
"inviteeId": 10087,
"createTime": "2023-10-27 10:00:00",
"inviterNickname": "邀请大师",
"inviterEmail": "inviter@example.com",
"inviterIsVip": 1,
"inviterPlatform": "IOS",
"inviterLanguage": "zh-CN",
"inviteeNickname": "新用户小明",
"inviteeEmail": "newbie@example.com",
"inviteeIsVip": 0,
"inviteePlatform": "ANDROID",
"inviteeLanguage": "en-US"
}
],
"total": 1,
"size": 10,
"current": 1
}
}
```