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;
}
}
}
