Lesson Service
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
视频链接
Last updated
Was this helpful?