# Invite Poster Service

### 1、查询邀请海报明细数据

#### 描述

```
分页查询邀请海报明细数据统计
接口地址（仅做说明使用）：https://api.polyv.net/live/v4/channel/invite/list
```

#### 调用约束

1、接口调用有频率限制，[详细请查看](https://git.polyv.net/help-center/document-center/-/blob/master/live/java/limit.md)，调用常见异常，[详细请查看](https://git.polyv.net/help-center/document-center/-/blob/master/live/java/exceptionDoc/README.md)

#### 单元测试

```java
	@Test
	public void testGetInviteStats() throws IOException, NoSuchAlgorithmException {
        LiveGetInviteStatsRequest liveGetInviteStatsRequest = new LiveGetInviteStatsRequest();
        LiveGetInviteStatsResponse liveGetInviteStatsResponse;
        try {
            String channelId = super.getAloneNewChannelId();
            liveGetInviteStatsRequest.setChannelId(channelId)
                    .setStartTime(super.getDate(1651219474000L))
                    .setEndTime(super.getDate(1651219478000L));
            liveGetInviteStatsResponse = new ILiveInvitePosterServiceImpl().getInviteStats(liveGetInviteStatsRequest);
            Assert.assertNotNull(liveGetInviteStatsResponse);
            if (liveGetInviteStatsResponse != null) {
                //to do something ......
                log.debug("测试查询邀请海报明细数据成功 {}", JSON.toJSONString(liveGetInviteStatsResponse));
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误，错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑，记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }
```

#### 单元测试说明

1、请求正确，返回LiveGetInviteStatsResponse对象，B端依据此对象处理业务逻辑；

2、请求参数校验不合格，抛出PloyvSdkException，错误信息见PloyvSdkException.getMessage()，如 \[ 输入参数 \[xxx.chat.LivexxxRequest]对象校验失败，失败字段 \[pic不能为空 / msg不能为空] ]

3、服务器处理异常，抛出PloyvSdkException，错误信息见PloyvSdkException.getMessage()，如 \[ 保利威请求返回数据错误，请求流水号：66e7ad29fd04425a84c2b2b562d2025b，错误原因： invalid signature. ]

#### 请求入参描述

| 参数名         | 必选    | 类型      | 说明                                |
| ----------- | ----- | ------- | --------------------------------- |
| channelId   | true  | String  | 频道号                               |
| startTime   | false | Date    | 受邀开始时间                            |
| endTime     | false | Date    | 受邀结束时间                            |
| currentPage | false | Integer | 页数，默认为1【对应api文档的**pageNumber**字段】 |
| pageSize    | false | Integer | 每页显示的数据条数，默认每页显示20条数据             |

#### 返回对象描述

| 参数名         | 类型      | 说明                                                                                                                                                                |
| ----------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| contents    | Array   | 当前页内容【详见[InviteStats参数描述](https://git.polyv.net/help-center/document-center/-/blob/master/live/java/invitePosterService.md?id=p96781336b673ebefc486f84709ceb729)】 |
| pageSize    | Integer | 每页显示的数据条数，默认每页显示20条数据                                                                                                                                             |
| currentPage | Integer | 当前页【对应api文档的**pageNumber**字段】                                                                                                                                     |
| totalItems  | Integer | 记录总条数                                                                                                                                                             |
| totalPage   | Integer | 总页数【对应api文档的**totalPages**字段】                                                                                                                                     |

[**InviteStats参数描述**](#/invitePosterService.md?id=p96781336b673ebefc486f84709ceb729)

| 参数名              | 类型     | 说明                    |
| ---------------- | ------ | --------------------- |
| invitee          | String | 自定义邀请Id（默认为空，需要配置才有值） |
| openId           | String | 邀请人微信openId           |
| viewerId         | String | 邀请人ViewerID           |
| nickname         | String | 邀请人昵称                 |
| avatar           | String | 邀请人头像url              |
| createdTime      | Date   | 海报生成时间，13位毫秒级时间戳      |
| receiverNickname | String | 受邀人昵称                 |
| receiverOpenId   | String | 受邀人微信openId           |
| receiverViewerId | String | 受邀人ViewerId           |
| receiverTime     | Date   | 受邀时间，13位毫秒级时间戳        |
| receiverAvatar   | String | 受邀人头像url              |

\
\


***

\
\


### 2、创建邀请者

#### 描述

```
邀请海报-创建邀请者
接口地址（仅做说明使用）：https://api.polyv.net/live/v4/channel/invite/poster/create
```

#### 调用约束

1、接口调用有频率限制，[详细请查看](https://git.polyv.net/help-center/document-center/-/blob/master/live/java/limit.md)，调用常见异常，[详细请查看](https://git.polyv.net/help-center/document-center/-/blob/master/live/java/exceptionDoc/README.md)

#### 单元测试

```java
	@Test
	public void testCreateInviter() throws IOException, NoSuchAlgorithmException {
        LiveCreateInviterRequest liveCreateInviterRequest = new LiveCreateInviterRequest();
        LiveCreateInviterResponse liveCreateInviterResponse;
        try {
            String channelId = super.createChannel();
            liveCreateInviterRequest.setChannelId(channelId);
            liveCreateInviterRequest.setOpenId("1yexRmHZoJrcw40");
            liveCreateInviterRequest.setNickname("张三");
            liveCreateInviterResponse = new ILiveInvitePosterServiceImpl().createInviter(liveCreateInviterRequest);
            Assert.assertNotNull(liveCreateInviterResponse);
            if (liveCreateInviterResponse != null) {
                //to do something ......
                log.debug("测试创建邀请者成功 {}", JSON.toJSONString(liveCreateInviterResponse));
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误，错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑，记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }
```

#### 单元测试说明

1、请求正确，返回LiveCreateInviterResponse对象，B端依据此对象处理业务逻辑；

2、请求参数校验不合格，抛出PloyvSdkException，错误信息见PloyvSdkException.getMessage()，如 \[ 输入参数 \[xxx.chat.LivexxxRequest]对象校验失败，失败字段 \[pic不能为空 / msg不能为空] ]

3、服务器处理异常，抛出PloyvSdkException，错误信息见PloyvSdkException.getMessage()，如 \[ 保利威请求返回数据错误，请求流水号：66e7ad29fd04425a84c2b2b562d2025b，错误原因： invalid signature. ]

#### 请求入参描述

| 参数名       | 必选    | 类型     | 说明                      |
| --------- | ----- | ------ | ----------------------- |
| channelId | true  | String | 频道号                     |
| openId    | true  | String | 邀请者用户ID                 |
| nickname  | true  | String | 邀请者昵称                   |
| avatar    | false | String | 邀请者头像url地址，如果为空，则使用默认头像 |
| viewerId  | false | String | 邀请者观众ID                 |
| invitee   | false | String | 自定义邀请ID                 |

#### 返回对象描述

| 参数名            | 类型     | 说明      |
| -------------- | ------ | ------- |
| invitePosterId | String | 邀请海报ID  |
| channelId      | String | 频道ID    |
| openId         | String | 邀请者用户ID |
| invitee        | String | 自定义邀请ID |

\
