lotteryService
1、获取频道抽奖记录列表
描述
获取频道抽奖记录列表(通过直播端发起抽奖)
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/lottery/list-lottery
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
单元测试
@Test
public void testListLottery() throws Exception, NoSuchAlgorithmException {
LiveListLotteryRequest liveListLotteryRequest = new LiveListLotteryRequest();
LiveListLotteryResponse liveListLotteryResponse;
try {
liveListLotteryRequest.setChannelId(super.createChannel())
.setStartTime(super.getDate(1601481600000l))
.setEndTime(super.getDate(2021,1,21))
.setPageSize(1);
liveListLotteryResponse = new LiveLotteryServiceImpl().listLottery(liveListLotteryRequest);
Assert.assertNotNull(liveListLotteryResponse);
if (liveListLotteryResponse != null) {
//to do something ......
log.debug("测试获取频道抽奖记录列表成功,{}", JSON.toJSONString(liveListLotteryResponse));
}
} 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、请求正确,返回LiveListLotteryResponse对象,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 | true | Date | 查询的开始日期 |
| endTime | true | Date | 查询的结束日期 |
| currentPage | false | Integer | 页数,默认为1【对应api文档的page字段】 |
| pageSize | false | Integer | 每页显示的数据条数,默认每页显示20条数据【对应api文档的limit字段】 |
| appId | false | String | POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
| appSecret | false | String | POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
返回对象描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| contents | Array | 抽奖记录列表【详见LotteryListModel参数描述】 |
| pageSize | Integer | 每页显示的数据条数,默认每页显示20条数据 |
| currentPage | Integer | 当前页【对应api文档的pageNumber字段】 |
| totalItems | Integer | 记录总条数 |
| totalPage | Integer | 总页数【对应api文档的totalPages字段】 |
LotteryListModel参数描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| lotteryId | String | 抽奖场次ID |
| channelId | String | 频道号 |
| sessionId | String | 抽奖时的直播场次ID |
| lotteryRange | String | 抽奖范围,取值:所有观众:all;当场直播未中奖用户:notWinning;已签到用户:signed;头衔:actor;已填问卷用户:questionnaire |
| actor | String | 抽奖范围为按头衔抽奖时的头衔 |
| prize | String | 奖品名称 |
| amount | Integer | 预设中奖人数 |
| preset | Integer | 预设中奖观众ID,多个ID 用英文逗号分开 |
| createdTime | Date | 抽奖时间 |
| winnerCount | Integer | 实际中奖人数 |
| ext | String | 表示抽奖的额外拓展信息,例:{"collectInfo":[{"field":"姓名:","tips":"请输入您的真实姓名"}]},field表示要填写的字段名,tips表示要填写的字段提示 |
2、获取频道单场抽奖的中奖记录
描述
获取频道单场抽奖的中奖记录
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/lottery/get-winner-detail
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
单元测试
@Test
public void testGetLotteryWinnerDetail() throws Exception, NoSuchAlgorithmException {
LiveLotteryWinnerDetailRequest liveLotteryWinnerDetailRequest = new LiveLotteryWinnerDetailRequest();
LiveLotteryWinnerDetailResponse liveLotteryWinnerDetailResponse;
try {
liveLotteryWinnerDetailRequest.setChannelId(super.createChannel())
.setLotteryId("fv3hogjmh3");
liveLotteryWinnerDetailResponse = new LiveLotteryServiceImpl().getLotteryWinnerDetail(
liveLotteryWinnerDetailRequest);
Assert.assertNotNull(liveLotteryWinnerDetailResponse);
if (liveLotteryWinnerDetailResponse != null) {
//to do something ......
log.debug("测试获取频道单场抽奖的中奖记录成功,{}", JSON.toJSONString(liveLotteryWinnerDetailResponse));
}
} 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、请求正确,返回LiveLotteryWinnerDetailResponse对象,B端依据此对象处理业务逻辑;
2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]
3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]
请求入参描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| channelId | true | String | 频道号 |
| lotteryId | true | String | 抽奖ID |
| currentPage | false | Integer | 页数,默认为1【对应api文档的page字段】 |
| pageSize | false | Integer | 每页显示的数据条数,默认每页显示20条数据【对应api文档的limit字段】 |
| appId | false | String | POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
| appSecret | false | String | POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
返回对象描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| contents | Array | 中奖记录表【详见LotteryWinnerDetail参数描述】 |
| pageSize | Integer | 每页显示的数据条数,默认每页显示20条数据 |
| currentPage | Integer | 当前页【对应api文档的pageNumber字段】 |
| totalItems | Integer | 记录总条数 |
| totalPage | Integer | 总页数【对应api文档的totalPages字段】 |
LotteryWinnerDetail参数描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| recordId | String | 中奖记录ID |
| channelId | String | 频道号 |
| sessionId | String | 抽奖时的直播场次ID |
| lotteryId | String | 抽奖ID |
| viewerId | String | 中奖用户ID |
| viewerName | String | 中奖用户昵称 |
| winnerCode | String | 中奖码 |
| prize | String | 奖品名称 |
| createdTime | Date | 中奖时间 |
| ext | String | 表示抽奖的额外拓展信息,例:{"collectInfo":[{"field":"姓名:","value":"钻石王老五"}]},field表示要填写的字段名,value表示要填写的字段提示 |
3、设置抽奖中奖者信息
描述
用于提交中奖者填写的信息
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/chat/add-receive-info
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
2、只能成功保存一次观众中奖信息
3、中奖信息需在7天内提交保存,否则会失效
单元测试
@Test
public void testSetLotteryWinnerInfo() throws Exception, NoSuchAlgorithmException {
LiveSetLotteryWinnerInfoRequest liveSetLotteryWinnerInfoRequest = new LiveSetLotteryWinnerInfoRequest();
Boolean liveSetLotteryWinnerInfoResponse;
try {
liveSetLotteryWinnerInfoRequest.setChannelId(super.createChannel())
.setLotteryId("fv3mao43u6")
.setWinnerCode("wMpUjVSi")
.setViewerId("asdadsdas")
.setName("sadboy")
.setTelephone("18974718689")
.setReceiveInfo("[{\"field\":\"姓名\",\"value\":\"测试\"},{\"field\":\"手机\",\"value\":\"13412345678\"}]");
liveSetLotteryWinnerInfoResponse = new LiveLotteryServiceImpl().setLotteryWinnerInfo(
liveSetLotteryWinnerInfoRequest);
Assert.assertNotNull(liveSetLotteryWinnerInfoResponse);
if (liveSetLotteryWinnerInfoResponse) {
//to do something ......
log.debug("测试设置抽奖中奖者信息成功");
}
} 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 | 频道号 |
| lotteryId | true | String | 抽奖场次ID |
| winnerCode | true | String | 中奖码 |
| viewerId | true | String | 中奖者ID |
| name | false | String | 中奖者姓名,如果传姓名,必须传中奖者手机号码,receiveInfo字段不需要传(无效) |
| telephone | false | String | 中奖者手机号码,如果传手机号,必须传中奖者姓名,receiveInfo字段不需要传(无效) |
| receiveInfo | false | String | 自定义字段数据,数据类型为数组JSON[{"field":"姓名","value":"测试"},{"field":"手机","value":"13412345678"}] field:字段名称,value:字段值,如果传这个参数,name和telephone字段不需要传(无效) |
| appId | false | String | POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
| appSecret | false | String | POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
返回对象描述
true为设置成功,false为设置失败
4、导出频道单场抽奖的中奖记录
描述
用于下载频道的单场抽奖的中奖记录
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/lottery/download-winner-detail
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
单元测试
@Test
public void testDownloadLotteryDetail() throws Exception, NoSuchAlgorithmException {
LiveDownloadLotteryDetailRequest liveDownloadLotteryDetailRequest = new LiveDownloadLotteryDetailRequest();
byte[] liveDownloadLotteryDetailResponse;
try {
//path设置为下载文件路径
String path = Paths.get(getClass().getResource("/file/").toURI()).toString() + "downLoadLotteryWinner.xlsx";
liveDownloadLotteryDetailRequest.setChannelId(createChannel())
.setLotteryId("fv3hogjmh3");
liveDownloadLotteryDetailResponse = new LiveLotteryServiceImpl().downloadLotteryDetail(
liveDownloadLotteryDetailRequest);
Assert.assertNotNull(liveDownloadLotteryDetailResponse);
if (liveDownloadLotteryDetailResponse != null) {
FileUtil.writeFile(liveDownloadLotteryDetailResponse, path);
//to do something ......
log.debug("测试导出频道单场抽奖的中奖记录成功, 文件长度 {}", liveDownloadLotteryDetailResponse.length);
}
} 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、请求正确,返回byte[]对象,B端依据此对象处理业务逻辑;
2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]
3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]
请求入参描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| channelId | true | String | 频道号 |
| lotteryId | true | String | 抽奖ID |
| appId | false | String | POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
| appSecret | false | String | POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
返回对象描述
返回的byte[]可以按照单元测试示例进行保存,也可以自行处理。
5、发送点赞
描述
用于实现用户自开发观看页点赞效果,通过调用接口可以进行点赞,默认每次请求都是一次点赞
接口地址(仅做说明使用):https://api.polyv.net/live/v2/channels/%s/like
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
2、接口内部进行了判断,每个观众的点赞间隔1s的限制,根据提交的观众ID来区分
3、如果有需求支持同时点多个赞,可提交非必填参数times,times最大不能超过30。*如果提交次数为n,则需n-1秒才能继续点赞
4、viewerId由调用端去进行区分用户即可
单元测试
@Test
public void testSendChannelLike() throws Exception, NoSuchAlgorithmException {
LiveSendChannelLikeRequest liveSendChannelLikeRequest = new LiveSendChannelLikeRequest();
Integer liveSendChannelLikeResponse;
try {
liveSendChannelLikeRequest.setChannelId(createChannel())
.setViewerId(getRandomString(16))
.setTimes(13);
liveSendChannelLikeResponse = new LiveLotteryServiceImpl().sendChannelLike(liveSendChannelLikeRequest);
Assert.assertNotNull(liveSendChannelLikeResponse);
if (liveSendChannelLikeResponse != null) {
//to do something ......
log.debug("测试发送点赞成功,{}", JSON.toJSONString(liveSendChannelLikeResponse));
}
} 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、请求正确,返回Integer对象,B端依据此对象处理业务逻辑;
2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]
3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]
请求入参描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| channelId | true | String | 频道号 |
| viewerId | true | String | 点赞观众的ID,由调用方自行创建、区分 |
| times | false | Integer | 点赞的数目,不能超过30,提交后在(times-1)秒后才能再点赞 |
| appId | false | String | POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
| appSecret | false | String | POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
返回对象描述
点赞数
6、发送打赏消息
描述
用于发送打赏消息,请求成功后,服务器会向聊天室的用户广播打赏消息
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/chat/send-reward-msg
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看 viewerId需要是在线的viewerId
单元测试
@Test
public void testSendChannelRewardMsg() throws Exception, NoSuchAlgorithmException {
LiveSendChannelRewardMsgRequest liveSendChannelRewardMsgRequest = new LiveSendChannelRewardMsgRequest();
Boolean liveSendChannelRewardMsgResponse;
try {
liveSendChannelRewardMsgRequest.setChannelId(createChannel())
.setNickname("sadboy")
.setAvatar("https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=3002379740,3965499425&fm=26&gp=0.jpg")
.setDonateType("cash")
.setContent("1")
.setGoodImage("https://s1.videocc.net/live-admin/img/icon-redpack-new.ae299535.png")
.setSessionId(null)
.setGoodNum("1")
.setNeedUserImage("N")
//通过外部授权等观看方式对接,由B端系统产生,通过白名单进入的,此处可使用会员码
.setViewerId(getRandomString(16));
liveSendChannelRewardMsgResponse = new LiveLotteryServiceImpl().sendChannelRewardMsg(
liveSendChannelRewardMsgRequest);
Assert.assertTrue(liveSendChannelRewardMsgResponse);
if (liveSendChannelRewardMsgResponse) {
//to do something ......
log.debug("测试发送打赏消息成功");
}
} 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 | 频道号 |
| nickname | true | String | 打赏者昵称 |
| avatar | true | String | 打赏者头像 |
| viewerId | true | String | 打赏者ID,通过外部授权等观看方式对接,由B端系统产生,通过百名单进入的,此处可使用会员码 |
| donateType | true | String | 打赏类型,(cash:现金打赏;good:道具打赏) |
| content | true | String | 打赏内容:礼物打赏为礼物名称,现金打赏为金额 |
| goodImage | false | String | 礼物打赏时为礼物图片,现金打赏时为空 |
| sessionId | false | String | 直播场次ID |
| goodNum | false | String | 打赏数量,不传默认为1 |
| needUserImage | false | String | 是否socket消息需要用户图片(是:Y,否:N。不传默认为N) |
| appId | false | String | POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
| appSecret | false | String | POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
返回对象描述
true为发送成功,false为发送失败
7、查询频道中奖统计记录
描述
查询频道中奖统计记录
接口地址(仅做说明使用):https://api.polyv.net/live/v4/channel/lottery/list
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
2、不传lotteryId抽奖Id时,startTime、endTime必传
3、传入lotteryId抽奖Id时,startTime、endTime可不传,即使传了也不生效
4、startTime、endTime查询时间跨度最大为365天
单元测试
@Test
public void testGetLotteryList() throws IOException, NoSuchAlgorithmException {
LiveGetLotteryListRequest liveGetLotteryListRequest = new LiveGetLotteryListRequest();
LiveGetLotteryListResponse liveGetLotteryListResponse;
try {
String channelId = createChannel();
liveGetLotteryListRequest.setChannelId(channelId)
.setStartTime(super.getXDay(new Date(), -60))
.setEndTime(super.getDate(System.currentTimeMillis()));
liveGetLotteryListResponse = new LiveLotteryServiceImpl().getLotteryList(liveGetLotteryListRequest);
Assert.assertNotNull(liveGetLotteryListResponse);
if (liveGetLotteryListResponse != null) {
//to do something ......
log.debug("测试查询频道中奖统计记录成功 {}", JSON.toJSONString(liveGetLotteryListResponse));
}
} 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、请求正确,返回LiveGetLotteryListResponse对象,B端依据此对象处理业务逻辑;
2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]
3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]
请求入参描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| channelId | true | String | 频道号 |
| lotteryId | false | String | 抽奖ID |
| sessionId | false | String | 场次ID |
| startTime | false | Date | 开始时间,13位毫秒级时间戳 |
| endTime | false | Date | 结束时间,13位毫秒级时间戳 |
| currentPage | false | Integer | 页数,默认为1【对应api文档的pageNumber字段】 |
| pageSize | false | Integer | 每页显示的数据条数,默认每页显示20条数据 |
| appId | false | String | POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
| appSecret | false | String | POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
返回对象描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| contents | Array | 中奖记录列表【详见LotteryListContents参数描述】 |
| pageSize | Integer | 每页显示的数据条数,默认每页显示20条数据 |
| currentPage | Integer | 当前页【对应api文档的pageNumber字段】 |
| totalItems | Integer | 记录总条数 |
| totalPage | Integer | 总页数【对应api文档的totalPages字段】 |
LotteryListContents参数描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| winnerCount | Integer | 实际中奖人数 |
| totalUsers | Integer | 参与抽奖的人数 |
| lotteryId | String | 抽奖场次ID |
| channelId | String | 频道号 |
| userId | String | 账号userId |
| sessionId | String | 抽奖时的直播场次ID |
| lotteryRange | String | 抽奖候选人范围 |
| actor | String | 按头衔抽奖时的头衔名称 |
| prize | String | 奖品名称 |
| amount | Integer | 中奖人数 |
| preset | String | 预设中奖者,以英文逗号隔开 |
| lotteryExt | LotteryListExt | 抽奖的额外拓展信息【详见LotteryListExt参数描述】 |
| createdTime | Date | 抽奖时间 |
LotteryListExt参数描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| collectInfo | Array | 中奖用户领奖收集信息列表【详见LotteryListExtCollectInfo参数描述】 |
LotteryListExtCollectInfo参数描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| field | String | 字段名称 |
| tips | String | 填写提示 |
8、查询多个频道抽奖记录
描述
获取一段时间内的多个直播频道发起抽奖记录列表
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/lottery/list-channels-lottery
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
单元测试
@Test
public void testListChannelsLottery() throws IOException, NoSuchAlgorithmException {
LiveListChannelsLotteryRequest liveListChannelsLotteryRequest = new LiveListChannelsLotteryRequest();
LiveListChannelsLotteryResponse liveListChannelsLotteryResponse;
try {
String channelId = super.createChannel();
liveListChannelsLotteryRequest.setChannelIds(channelId);
liveListChannelsLotteryRequest.setStartTime(super.getDate(1601481600000L));
liveListChannelsLotteryRequest.setEndTime(super.getDate(1615357743000L));
liveListChannelsLotteryResponse = new LiveLotteryServiceImpl().listChannelsLottery(
liveListChannelsLotteryRequest);
Assert.assertNotNull(liveListChannelsLotteryResponse);
if (liveListChannelsLotteryResponse != null) {
//to do something ......
log.debug("测试查询多个频道抽奖记录成功 {}", JSON.toJSONString(liveListChannelsLotteryResponse));
}
} 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、请求正确,返回LiveListChannelsLotteryResponse对象,B端依据此对象处理业务逻辑;
2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]
3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]
请求入参描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| channelIds | true | String | 频道号,多个频道使用“,”进行分割 |
| startTime | true | Date | 查询的开始日期 |
| endTime | true | Date | 查询的结束日期 |
| sessionId | false | String | 要查询的直播场次ID,默认查询该频道中所有场次 |
| currentPage | false | Integer | 页数,默认为1【对应api文档的page字段】 |
| pageSize | false | Integer | 每页显示的数据条数,默认每页显示20条数据【对应api文档的limit字段】 |
| appId | false | String | POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
| appSecret | false | String | POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
返回对象描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| contents | Array | 抽奖记录列表 【详见LotteryListModel参数描述】 |
| pageSize | Integer | 每页显示的数据条数,默认每页显示20条数据 |
| currentPage | Integer | 当前页【对应api文档的pageNumber字段】 |
| totalItems | Integer | 记录总条数 |
| totalPage | Integer | 总页数【对应api文档的totalPages字段】 |
LotteryListModel参数描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| lotteryId | String | 抽奖场次ID |
| channelId | String | 频道号 |
| sessionId | String | 抽奖时的直播场次ID |
| userId | String | 账号userId |
| lotteryRange | String | 抽奖范围 all:所有观众 notWinning:当场直播未中奖用户 signed:已签到用户 actor:头衔 questionnaire:已填问卷用户 |
| actor | String | 抽奖范围为按头衔抽奖时的头衔 |
| prize | String | 奖品名称 |
| amount | Integer | 预设中奖人数 |
| preset | String | 预设中奖观众ID,多个ID 用英文逗号分开 |
| createdTime | Date | 抽奖时间 |
| lastModified | Date | 最后修改时间 |
| winnerCount | String | 实际中奖人数 |
| ext | String | json 格式的字符串,表示抽奖的额外拓展信息,对应模型类:LotteryListModelExt字段说明 |
