保利威文档中心

幫助中心

lessonService

更新時間:2024-10-21 09:33:43

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

联系客服,在线咨询