lessonService
1、创建课节
描述
创建课节
接口地址(仅做说明使用):https://api.polyv.net/hi-class-api/open/lesson/v1/add
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
单元测试
@Test
public void testAddLesson() throws Exception {
VClassAddLessonRequest vClassAddLessonRequest;
VClassAddLessonResponse vClassAddLessonResponse;
try {
vClassAddLessonRequest = VClassAddLessonRequest.builder()
.name("SDK测试创建课节")
.duration(30)
.startTime(super.getDate(System.currentTimeMillis() + 10 * 86400000))
.watchCondition(VClassConstant.AuthType.NULL.getCode())
.linkNumber(2)
.build();
vClassAddLessonResponse = new VClassLessonServiceImpl().addLesson(vClassAddLessonRequest);
Assert.assertNotNull(vClassAddLessonResponse);
if (vClassAddLessonResponse != null) {
log.debug("测试创建课节成功,{}", JSON.toJSONString(vClassAddLessonResponse));
//TODO 此处创建完成后删除了课节,正式使用需删除该语句
super.deleteLesson(vClassAddLessonResponse.getLessonId());
}
} 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、请求正确,返回VClassAddLessonResponse对象,B端依据此对象处理业务逻辑;
2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]
3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]
请求入参描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| name | true | String | 课节名称,长度1~128 |
| startTime | true | Date | 开始时间 |
| duration | true | Integer | 上课时长,单位: 分钟,5~180 |
| linkNumber | true | Integer | 连麦人数,0~16 |
| autoConnectMicroEnabled | false | String | 是否自动连麦,默认:N Y:自动连麦 N:手动上麦 |
| autoRecordCourseEnabled | false | String | 是否自动录制课程,默认:N Y:自动录制 N:手动录制 |
| watchCondition | true | String | 观看条件 NULL:无条件 CODE:验证码 WHITE_LIST:白名单 DIRECT:独立授权 |
| code | false | String | 当观看条件为CODE时需要填写观看验证码(限制16位以内) |
| secretKey | false | String | 观看条件为独立授权时传,不传则后台自动生成(限制32位以内) |
| resolution | false | Integer | 录制清晰度, 720, 1080 |
| playResolution | false | Integer | 上课清晰度, 360(如果需要设置更高的清晰度,请联系相关工作人员) |
| cover | false | String | 封面地址URL,长度1~255 |
| teacherId | false | String | 老师id,如不传,则根据teacherMobile查找现有老师,如果查找不到,则创建一个老师 |
| teacherCode | false | String | 老师登录手机区号,默认 +86 |
| teacherMobile | false | String | 老师手机号,长度5~15 |
| teacherName | false | String | 老师名称,如传入的信息可以查找到现有老师,会更新老师名称 |
| teacherPasswd | false | String | 老师密码,长度6~8 |
返回对象描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| lessonId | Long | 课节ID |
| name | String | 课节名称 |
| teacherId | String | 老师ID |
| teacherCode | String | 老师登录手机区号 |
| teacherName | String | 老师名称 |
| teacherMobile | String | 老师账号 |
| teacherPasswd | String | 老师账号密码 |
| startTime | Date | 开始时间 |
| endTime | Date | 开始时间 |
| duration | Integer | 上课时长,单位: 分钟 |
| linkNumber | Integer | 连麦人数 0 - 16 |
| autoConnectMicroEnabled | String | 是否自动连麦 Y:自动连麦 N:不自动连麦 |
| autoRecordCourseEnabled | String | 是否自动录制 Y:自动录制 N:不自动录制 |
| watchCondition | String | 观看条件 NULL:无条件 CODE:验证码 WHITE_LIST:白名单 DIRECT:独立授权 |
| code | String | 当观看条件为CODE时需要填写观看验证码(限制16位以内) |
| secretKey | String | 授权观看KEY |
| cover | String | 封面URL |
| resolution | Integer | 录制清晰度, 720, 1080 |
| playResolution | Integer | 上课清晰度, 360 |
2、获取课节信息
描述
获取课节信息
接口地址(仅做说明使用):https://api.polyv.net/hi-class-api/open/lesson/v1/get
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
单元测试
@Test
public void testGetLessonInfo() throws IOException, NoSuchAlgorithmException {
VClassGetLessonInfoRequest vClassGetLessonInfoRequest;
VClassGetLessonInfoResponse vClassGetLessonInfoResponse;
try {
vClassGetLessonInfoRequest = VClassGetLessonInfoRequest.builder().lessonId(super.createLesson()).build();
vClassGetLessonInfoResponse = new VClassLessonServiceImpl().getLessonInfo(vClassGetLessonInfoRequest);
Assert.assertNotNull(vClassGetLessonInfoResponse);
if (vClassGetLessonInfoResponse != null) {
//to do something ......
log.debug("测试获取课节信息成功{}", JSON.toJSONString(vClassGetLessonInfoResponse));
}
} 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、请求正确,返回VClassGetLessonInfoResponse对象,B端依据此对象处理业务逻辑;
2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]
3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]
请求入参描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| lessonId | true | Long | 课节号 |
返回对象描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| lessonId | Long | 课节ID |
| name | String | 课节名称 |
| teacherId | String | 老师ID |
| teacherCode | String | 老师登录手机区号 |
| teacherName | String | 老师名称 |
| teacherMobile | String | 老师账号 |
| teacherPasswd | String | 老师账号密码 |
| startTime | Date | 开始时间 |
| endTime | Date | 结束时间 |
| duration | Integer | 上课时长,单位: 分钟 |
| linkNumber | Integer | 连麦人数 0 - 16 |
| autoConnectMicroEnabled | String | 是否自动连麦 Y:自动连麦 N:手动上麦 |
| autoRecordCourseEnabled | String | 是否自动录制课程 Y:自动录制 N:手动录制 |
| watchCondition | String | 观看条件 NULL:无条件 CODE:验证码 WHITE_LIST:白名单 DIRECT:独立授权 |
| code | String | 观看密码,当观看条件为CODE时需要填写密码 |
| secretKey | String | 授权观看KEY |
| cover | String | 封面URL |
| resolution | Integer | 录制清晰度, 720, 1080 |
| playResolution | Integer | 上课清晰度, 360 |
3、更新课节信息
描述
更新课节信息
接口地址(仅做说明使用):https://api.polyv.net/hi-class-api/open/lesson/v1/update
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
单元测试
@Test
public void testUpdateLessonInfo() throws IOException, NoSuchAlgorithmException {
VClassUpdateLessonInfoRequest vClassUpdateLessonInfoRequest;
Boolean vClassUpdateLessonInfoResponse;
try {
Long lessonId = super.createLesson();
vClassUpdateLessonInfoRequest = VClassUpdateLessonInfoRequest.builder()
.lessonId(lessonId)
.duration(60)
.linkNumber(0)
.autoConnectMicroEnabled(VClassConstant.Flag.YES.getFlag())
.autoRecordCourseEnabled(VClassConstant.Flag.YES.getFlag())
.watchCondition(VClassConstant.AuthType.WHITE_LIST.getCode())
.resolution(720)
.playResolution(720)
.build();
vClassUpdateLessonInfoResponse = new VClassLessonServiceImpl().updateLessonInfo(
vClassUpdateLessonInfoRequest);
Assert.assertTrue(vClassUpdateLessonInfoResponse);
if (vClassUpdateLessonInfoResponse) {
//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. ]
请求入参描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| lessonId | true | Long | 课节号 |
| name | false | String | 课节名称,长度1~128 |
| startTime | false | Date | 开始时间 |
| duration | false | Integer | 上课时长,单位: 分钟,5~180 |
| linkNumber | false | Integer | 连麦人数,0~16 |
| autoConnectMicroEnabled | false | String | 是否自动连麦 Y:自动连麦 N:手动上麦 |
| autoRecordCourseEnabled | false | String | 是否自动录制课程 Y:自动录制 N:手动录制 |
| watchCondition | false | String | 观看条件 NULL:无条件 CODE:验证码 WHITE_LIST:白名单 DIRECT:独立授权 |
| code | false | String | 当观看条件为CODE时需要填写观看验证码(限制16位以内) |
| secretKey | false | String | 观看条件为独立授权时传,不传则后台自动生成(限制32位以内) |
| resolution | false | Integer | 录制清晰度, 720, 1080 |
| playResolution | false | Integer | 上课清晰度, 360(如果需要设置更高的清晰度,请联系相关工作人员) |
| cover | false | String | 封面地址URL,长度1~255 |
| teacherId | false | String | 老师id,如不传,则不更新,如果传入的是新的id,则根据下列老师信息创新一个新的老师 |
| teacherName | false | String | 老师名称,如传入的信息可以查找到现有老师,会更新老师名称 |
| teacherCode | false | String | 老师登录手机区号,默认 +86 |
| teacherMobile | false | String | 老师手机号,长度5~15 |
| teacherPasswd | false | String | 老师密码,长度6~8 |
返回对象描述
更新课节信息返回实体
4、删除课节
描述
删除课节
接口地址(仅做说明使用):https://api.polyv.net/hi-class-api/open/lesson/v1/delete
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
单元测试
@Test
public void testDeleteLesson() throws IOException, NoSuchAlgorithmException {
VClassDeleteLessonRequest vClassDeleteLessonRequest;
Boolean vClassDeleteLessonResponse;
try {
vClassDeleteLessonRequest = VClassDeleteLessonRequest.builder().lessonId(super.createLesson()).build();
vClassDeleteLessonResponse = new VClassLessonServiceImpl().deleteLesson(vClassDeleteLessonRequest);
Assert.assertTrue(vClassDeleteLessonResponse);
if (vClassDeleteLessonResponse) {
//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. ]
请求入参描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| lessonId | true | Long | 课节号 |
返回对象描述
删除课节返回实体
5、修改课节状态为禁止上课
描述
禁止课节上课,禁止有效期为24小时,24小时后会恢复课节允许上课(如果课节已到达下课时间,则不允许再上课)
接口地址(仅做说明使用):https://api.polyv.net/hi-class-api/open/lesson/v1/%s/cutoff
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
单元测试
@Test
public void testCutoffLesson() throws IOException, NoSuchAlgorithmException {
VClassCutoffLessonRequest vClassCutoffLessonRequest;
Boolean vClassCutoffLessonResponse;
try {
vClassCutoffLessonRequest = VClassCutoffLessonRequest.builder().lessonId(super.createLesson()).build();
vClassCutoffLessonResponse = new VClassLessonServiceImpl().cutoffLesson(vClassCutoffLessonRequest);
Assert.assertTrue(vClassCutoffLessonResponse);
if (vClassCutoffLessonResponse) {
//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. ]
请求入参描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| lessonId | true | Long | 课节号 |
返回对象描述
修改课节状态为禁止上课返回实体
6、恢复课节状态为可以上课
描述
恢复课节状态为可以上课(如果课节已到达下课时间,则不允许再上课)
接口地址(仅做说明使用):https://api.polyv.net/hi-class-api/open/lesson/v1/%s/resume
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
单元测试
@Test
public void testResumeLesson() throws IOException, NoSuchAlgorithmException {
VClassResumeLessonRequest vClassResumeLessonRequest;
Boolean vClassResumeLessonResponse;
try {
vClassResumeLessonRequest = VClassResumeLessonRequest.builder().lessonId(super.createLesson()).build();
vClassResumeLessonResponse = new VClassLessonServiceImpl().resumeLesson(vClassResumeLessonRequest);
Assert.assertTrue(vClassResumeLessonResponse);
if (vClassResumeLessonResponse) {
//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. ]
请求入参描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| lessonId | true | Long | 课节号 |
返回对象描述
恢复课节状态为可以上课返回实体
7、查询课节实时状态和在线人数
描述
查询课节实时状态和在线人数
接口地址(仅做说明使用):https://api.polyv.net/hi-class-api/open/lesson/v1/getLessonLiveInfo
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
单元测试
@Test
public void testGetLessonLiveInfo() throws IOException, NoSuchAlgorithmException {
VClassGetLessonLiveInfoRequest vClassGetLessonLiveInfoRequest;
List<VClassGetLessonLiveInfoResponse> vClassGetLessonLiveInfoResponse;
try {
vClassGetLessonLiveInfoRequest = VClassGetLessonLiveInfoRequest.builder()
.lessonIds(String.format("%s", super.createLesson()))
.build();
vClassGetLessonLiveInfoResponse = new VClassLessonServiceImpl().getLessonLiveInfo(
vClassGetLessonLiveInfoRequest);
Assert.assertNotNull(vClassGetLessonLiveInfoResponse);
if (vClassGetLessonLiveInfoResponse != null) {
//to do something ......
log.debug("测试查询课节实时状态和在线人数成功 {}", JSON.toJSONString(vClassGetLessonLiveInfoResponse));
}
} 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、请求正确,返回VClassGetLessonLiveInfoResponse对象,B端依据此对象处理业务逻辑;
2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]
3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]
请求入参描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| lessonIds | true | String | 课节号,以逗号分隔(上限100个课节) 例如:1015,1016 |
返回对象描述
返回对象是List<VClassGetLessonLiveInfoResponse>,VClassGetLessonLiveInfoResponse具体元素内容如下:
| 参数名 | 类型 | 说明 |
|---|---|---|
| lessonId | Long | 课节ID |
| currentTime | Date | 当前时间【对应api文档的timestamp字段】 |
| teacherOnlineCount | Long | 课节内老师人数 |
| studentOnlineCount | Long | 课节内学生人数 |
| status | Integer | 课节状态 0:未开始 1:上课中 2:已下课 11:禁止上课 |
8、查询课节回放视频
描述
查询课节回放视频
接口地址(仅做说明使用):https://api.polyv.net/hi-class-api/open/lesson/v1/getPlaybackVideo
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
单元测试
@Test
public void testGetPlaybackVideo() throws IOException, NoSuchAlgorithmException {
VClassGetPlaybackVideoRequest vClassGetPlaybackVideoRequest;
List<VClassGetPlaybackVideoResponse> vClassGetPlaybackVideoResponse;
try {
vClassGetPlaybackVideoRequest = VClassGetPlaybackVideoRequest.builder()
.lessonId(super.createLesson())
.build();
vClassGetPlaybackVideoResponse = new VClassLessonServiceImpl().getPlaybackVideo(
vClassGetPlaybackVideoRequest);
Assert.assertNotNull(vClassGetPlaybackVideoResponse);
if (vClassGetPlaybackVideoResponse != null) {
//to do something ......
log.debug("测试查询课节回放视频成功 {}", JSON.toJSONString(vClassGetPlaybackVideoResponse));
}
} 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、请求正确,返回VClassGetPlaybackVideoResponse对象,B端依据此对象处理业务逻辑;
2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]
3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]
请求入参描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| lessonId | true | Long | 课节号 |
返回对象描述
返回对象是List<VClassGetPlaybackVideoResponse>,VClassGetPlaybackVideoResponse具体元素内容如下:
| 参数名 | 类型 | 说明 |
|---|---|---|
| lessonId | Long | 课节ID |
| lessonName | String | 课节名称 |
| firstImage | String | 首屏截图 |
| duration | String | 视频时长,格式 HH:mm:ss |
| vid | String | 视频id |
| status | Long | 视频状态码 60/61:已发布 10:等待编码 20:正在编码 40:编码失败 50:等待审核 51:审核不通过 |
| createTime | Date | 视频创建时间 |
| videoSize | Long | 视频文件大小,单位:Bytes |
| playTimes | Long | 播放次数 |
| url | String | 视频链接 |
