# Whitelist Service

### 1、批量新增白名单

#### 描述

```
批量新增白名单
接口地址（仅做说明使用）：https://api.polyv.net/meet/v1/channel/auth-whitelist/save-batch
```

#### 调用约束

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

#### 单元测试

```java
	@Test
	public void testWhitelistSaveBatch() throws IOException, NoSuchAlgorithmException {
        SeminarWhitelistSaveBatchRequest seminarWhitelistSaveBatchRequest = new SeminarWhitelistSaveBatchRequest();
        Boolean seminarWhitelistSaveBatchResponse;
        try {
            String channelId = super.getSeminarChannelId();
            seminarWhitelistSaveBatchRequest.setChannelId(channelId);
            List<SeminarWhitelistSaveBatchRequest.WhitelistInfo> whitelistInfos = new ArrayList<>();
            SeminarWhitelistSaveBatchRequest.WhitelistInfo whitelistInfo =
                    new SeminarWhitelistSaveBatchRequest.WhitelistInfo();
            whitelistInfo.setCode("code1").setName("name1").setGroupNo(1).setGroupRole("leader");
            whitelistInfos.add(whitelistInfo);
            seminarWhitelistSaveBatchRequest.setList(whitelistInfos);
            seminarWhitelistSaveBatchResponse = new SeminarWhitelistServiceImpl().whitelistSaveBatch(
                    seminarWhitelistSaveBatchRequest);
            Assert.assertNotNull(seminarWhitelistSaveBatchResponse);
            if (seminarWhitelistSaveBatchResponse != null) {
                //to do something ......
                log.debug("测试批量新增白名单成功 {}", JSON.toJSONString(seminarWhitelistSaveBatchResponse));
                //TODO 此处创建完成后删除了白名单，正式使用需删除该语句
                super.deleteWhitelist(channelId, "code1");
            }
        } 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、请求正确，返回Boolean对象，B端依据此对象处理业务逻辑；

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

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

#### 请求入参描述

| 参数名       | 必选   | 类型     | 说明                                                                                                                                        |
| --------- | ---- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------- |
| channelId | true | String | 频道号                                                                                                                                       |
| list      | true | Array  | 批量插入记录【详见[WhitelistInfo参数描述](https://git.polyv.net/help-center/document-center/-/blob/master/seminar/java/whitelistService.md?id=polyv8)】 |

[**WhitelistInfo参数描述**](#/whitelistService.md?id=polyv8)

| 参数名       | 必选    | 类型      | 说明                                                     |
| --------- | ----- | ------- | ------------------------------------------------------ |
| code      | true  | String  | 会员码，长度不超过64位（不可重复）                                     |
| name      | true  | String  | 参会人昵称，长度不超过64位                                         |
| groupNo   | false | Integer | 分组序号，1\~50之间（需与组内身份同时传或同时不传）                           |
| groupRole | false | String  | 组内身份，一个分组内不能多于一个组长（需与分组序号同时传或同时不传） leader：组长 member：组员 |

#### 返回对象描述

true为新增成功，false为新增失败\ <br>

***

\ <br>

### 2、删除单个白名单

#### 描述

```
删除单个白名单
接口地址（仅做说明使用）：https://api.polyv.net/meet/v1/channel/auth-whitelist/delete
```

#### 调用约束

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

#### 单元测试

```java
	@Test
	public void testDeleteWhitelist() throws IOException, NoSuchAlgorithmException {
        SeminarDeleteWhitelistRequest seminarDeleteWhitelistRequest = new SeminarDeleteWhitelistRequest();
        Boolean seminarDeleteWhitelistResponse;
        try {
            String channelId = super.getSeminarChannelId();
            seminarDeleteWhitelistRequest.setChannelId(channelId);
            seminarDeleteWhitelistRequest.setCode("code1");
            seminarDeleteWhitelistResponse = new SeminarWhitelistServiceImpl().deleteWhitelist(
                    seminarDeleteWhitelistRequest);
            Assert.assertNotNull(seminarDeleteWhitelistResponse);
            if (seminarDeleteWhitelistResponse != null) {
                //to do something ......
                log.debug("测试删除单个白名单成功 {}", JSON.toJSONString(seminarDeleteWhitelistResponse));
            }
        } 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、请求正确，返回Boolean对象，B端依据此对象处理业务逻辑；

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

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

#### 请求入参描述

| 参数名       | 必选   | 类型     | 说明                |
| --------- | ---- | ------ | ----------------- |
| channelId | true | String | 频道号               |
| code      | true | String | 需要删除的白名单，长度不超过64位 |

#### 返回对象描述

true为删除成功，false为删除失败\ <br>

***

\ <br>

### 3、清空白名单

#### 描述

```
清空白名单
接口地址（仅做说明使用）：https://api.polyv.net/meet/v1/channel/auth-whitelist/delete-all
```

#### 调用约束

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

#### 单元测试

```java
	@Test
	public void testDeleteAllWhitelist() throws IOException, NoSuchAlgorithmException {
        SeminarDeleteAllWhitelistRequest seminarDeleteAllWhitelistRequest = new SeminarDeleteAllWhitelistRequest();
        Boolean seminarDeleteAllWhitelistResponse;
        try {
            String channelId = super.getSeminarChannelId();
            seminarDeleteAllWhitelistRequest.setChannelId(channelId);
            seminarDeleteAllWhitelistResponse = new SeminarWhitelistServiceImpl().deleteAllWhitelist(
                    seminarDeleteAllWhitelistRequest);
            Assert.assertNotNull(seminarDeleteAllWhitelistResponse);
            if (seminarDeleteAllWhitelistResponse != null) {
                //to do something ......
                log.debug("测试清空白名单成功 {}", JSON.toJSONString(seminarDeleteAllWhitelistResponse));
            }
        } 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、请求正确，返回Boolean对象，B端依据此对象处理业务逻辑；

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

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

#### 请求入参描述

| 参数名       | 必选   | 类型     | 说明  |
| --------- | ---- | ------ | --- |
| channelId | true | String | 频道号 |

#### 返回对象描述

true为清空成功，false为清空失败\ <br>

***

\ <br>

### 4、分页查询白名单

#### 描述

```
分页查询白名单
接口地址（仅做说明使用）：https://api.polyv.net/meet/v1/channel/auth-whitelist/get
```

#### 调用约束

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

#### 单元测试

```java
	@Test
	public void testGetWhitelist() throws IOException, NoSuchAlgorithmException {
        SeminarGetWhitelistRequest seminarGetWhitelistRequest = new SeminarGetWhitelistRequest();
        SeminarGetWhitelistResponse seminarGetWhitelistResponse;
        try {
            String channelId = super.getSeminarChannelId();
            seminarGetWhitelistRequest.setChannelId(channelId);
            seminarGetWhitelistResponse = new SeminarWhitelistServiceImpl().getWhitelist(seminarGetWhitelistRequest);
            Assert.assertNotNull(seminarGetWhitelistResponse);
            if (seminarGetWhitelistResponse != null) {
                //to do something ......
                log.debug("测试分页查询白名单成功 {}", JSON.toJSONString(seminarGetWhitelistResponse));
            }
        } 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、请求正确，返回SeminarGetWhitelistResponse对象，B端依据此对象处理业务逻辑；

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

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

#### 请求入参描述

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

#### 返回对象描述

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

[**WhitelistInfo参数描述**](#/whitelistService.md?id=polyv9)

| 参数名       | 类型      | 说明                       |
| --------- | ------- | ------------------------ |
| channelId | String  | 频道号                      |
| userId    | String  | 账号id                     |
| code      | String  | 会员码                      |
| name      | String  | 参会昵称                     |
| groupNo   | Integer | 分组序号                     |
| groupName | String  | 分组名称                     |
| groupRole | String  | 组内身份 leader：组长 member：组员 |

\ <br>

***

\ <br>

### 5、更新白名单

#### 描述

```
更新白名单
接口地址（仅做说明使用）：https://api.polyv.net/meet/v1/channel/auth-whitelist/update
```

#### 调用约束

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

#### 单元测试

```java
	@Test
	public void testUpdateWhitelist() throws IOException, NoSuchAlgorithmException {
        SeminarUpdateWhitelistRequest seminarUpdateWhitelistRequest = new SeminarUpdateWhitelistRequest();
        Boolean seminarUpdateWhitelistResponse;
        try {
            String channelId = super.getSeminarChannelId();
            seminarUpdateWhitelistRequest.setChannelId(channelId);
            seminarUpdateWhitelistRequest.setOldCode("code2")
                    .setCode("code2")
                    .setName("newName")
                    .setGroupNo(2)
                    .setGroupRole("member");
            seminarUpdateWhitelistResponse = new SeminarWhitelistServiceImpl().updateWhitelist(
                    seminarUpdateWhitelistRequest);
            Assert.assertNotNull(seminarUpdateWhitelistResponse);
            if (seminarUpdateWhitelistResponse != null) {
                //to do something ......
                log.debug("测试更新白名单成功 {}", JSON.toJSONString(seminarUpdateWhitelistResponse));
            }
        } 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、请求正确，返回Boolean对象，B端依据此对象处理业务逻辑；

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

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

#### 请求入参描述

| 参数名       | 必选    | 类型      | 说明                                 |
| --------- | ----- | ------- | ---------------------------------- |
| channelId | true  | String  | 频道号                                |
| oldCode   | true  | String  | 需要更新的原白名单记录，长度不超过64位               |
| code      | true  | String  | 新的白名单记录，长度不超过64位                   |
| name      | false | String  | 新的昵称，长度不超过64位（不传则不修改）              |
| groupNo   | false | Integer | 新的分组序号，1\~50之间（不传则不修改）             |
| groupRole | false | String  | 新的组内身份（不传则不修改） leader：组长 member：组员 |

#### 返回对象描述

true为更新成功，false为更新失败<br>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://polyv.gitbook.io/document/docs/seminar/java/whitelistservice.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
