# Red Pack Service

## 描述

```
分页查询频道红包派发数据统计
接口地址（仅做说明使用）：https://api.polyv.net/live/v4/channel/red-pack/statistics/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 testGetRedPackStats() throws IOException, NoSuchAlgorithmException {
        LiveGetRedPackStatsRequest liveGetRedPackStatsRequest = new LiveGetRedPackStatsRequest();
        LiveGetRedPackStatsResponse liveGetRedPackStatsResponse;
        try {
            String channelId = super.createChannel();
            liveGetRedPackStatsRequest.setChannelId(channelId);
            liveGetRedPackStatsResponse = new ILiveRedPackServiceImpl().getRedPackStats(liveGetRedPackStatsRequest);
            Assert.assertNotNull(liveGetRedPackStatsResponse);
            if (liveGetRedPackStatsResponse != null) {
                //to do something ......
                log.debug("测试查询红包派发数据统计成功 {}", JSON.toJSONString(liveGetRedPackStatsResponse));
            }
        } 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、请求正确，返回LiveGetRedPackStatsResponse对象，B端依据此对象处理业务逻辑；

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

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

## 请求入参描述

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

## 返回对象描述

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

[**RedPackStats参数描述**](#/redPackService.md?id=p8b4e1d8b424aa5f6bf500a7f9cd1d7e2)

| 参数名                | 类型     | 说明                                                                                                                                                            |
| ------------------ | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| redPackId          | String | 红包ID                                                                                                                                                          |
| userId             | String | 用户微信OPENID                                                                                                                                                    |
| channelId          | String | 频道号                                                                                                                                                           |
| nickName           | String | 昵称                                                                                                                                                            |
| amount             | Float  | 红包金额                                                                                                                                                          |
| balance            | Float  | 红包余额                                                                                                                                                          |
| allotType          | String | 分配方式名称： 随机分配红包 平均分配红包                                                                                                                                         |
| createdTime        | Date   | 创建时间，13位毫秒级时间戳                                                                                                                                                |
| status             | String | 状态名称： 进行中 已结束 退款中 已退款                                                                                                                                         |
| redPackType        | String | 红包类型名称 红包雨 口令红包 普通红包                                                                                                                                          |
| redPackReceiveList | Array  | 领取用户列表【详见[ReceiveList参数描述](https://git.polyv.net/help-center/document-center/-/blob/master/live/java/redPackService.md?id=p50b03f17e83cd9f5fd632e3706993105)】 |

[**ReceiveList参数描述**](#/redPackService.md?id=p50b03f17e83cd9f5fd632e3706993105)

| 参数名         | 类型     | 说明           |
| ----------- | ------ | ------------ |
| redPackId   | String | 红包ID         |
| userId      | String | 用户微信OPENID   |
| nickName    | String | 昵称           |
| avatar      | String | 头像           |
| amount      | Float  | 领取金额（小数点后两位） |
| createdTime | Date   | 领取时间         |

\
