Code

描述

由于创建频道同时设置观看条件为白名单,由于白名单列表为空,则会抛出异常;则需要先创建频道号,再添加频道白名单,再设置观看权限

单元测试

请确认已经全局调用了初始化系统

    /**
     * 1、创建并初始化频道
     * 2、设置频道主要观看条件白名单(主要观看条件白名单和次要观看条件白名单不互用)
     * 3、设置观看条件为白名单
     * @throws IOException
     * @throws NoSuchAlgorithmException
     */
    @Test
    public void testCreateChannelInitWriteList() throws IOException, NoSuchAlgorithmException {
        LiveChannelInitRequest liveChannelInitRequest = new LiveChannelInitRequest();
        LiveChannelInitResponse liveChannelInitResponse = null;
        try {
            //1、创建并初始化频道
            LiveChannelInitRequest.BasicSetting basicSetting = new LiveChannelInitRequest.BasicSetting().setName(
                    "创建并初始化频道-白名单观看")
                    .setChannelPasswd(getRandomString(6))
                    .setAutoPlay(1)
                    .setPlayerColor("#666666")
                    .setScene(LiveConstant.SceneType.ALONE.getDesc())
                    .setCategoryId(340019)
                    .setMaxViewer(0)
                    .setStartTime(null)
                    .setDesc("这是一个描述")
                    .setPublisher("sadboy主讲")
                    .setLinkMicLimit(-1)
                    .setPureRtcEnabled("N")
                    .setReceiveChannelIds(null)
                    .setOnlyOneLiveEnabled("N");
            liveChannelInitRequest.setBasicSetting(basicSetting);
            liveChannelInitResponse = new LiveChannelOperateServiceImpl().createChannelInit(liveChannelInitRequest);
            Assert.assertNotNull(liveChannelInitResponse);
            if (liveChannelInitResponse != null) {
                //to do something ......
                log.debug("测试创建并初始化频道 验证码观看创建成功{}", JSON.toJSONString(liveChannelInitResponse));
                //2、设置频道主要观看条件白名单(主要观看条件白名单和次要观看条件白名单不互用)
                LiveCreateChannelWhiteListRequest liveCreateChannelWhiteListRequest =
                        new LiveCreateChannelWhiteListRequest();
                Boolean liveCreateChannelWhiteListResponse;
                liveCreateChannelWhiteListRequest.setChannelId(liveChannelInitResponse.getChannelId()).setRank(1)
                        //此处一般设置为观众手机号或者学生学号等
                        .setCode(String.valueOf(System.currentTimeMillis()))
                        //此处设置为观众名称
                        .setName("学员1");
                liveCreateChannelWhiteListResponse = new LiveWebAuthServiceImpl().createChannelWhiteList(
                        liveCreateChannelWhiteListRequest);
                Assert.assertNotNull(liveCreateChannelWhiteListResponse);
                if (liveCreateChannelWhiteListResponse) {
                    //to do something ......
                    log.debug("测试添加单个白名单-全局白名单成功");
                    //3、设置观看条件为白名单
                    LiveUpdateChannelAuthRequest liveUpdateChannelAuthRequest = new LiveUpdateChannelAuthRequest();
                    Boolean liveUpdateChannelAuthResponse;
                    LiveChannelSettingRequest.AuthSetting authSetting = new LiveChannelSettingRequest.AuthSetting().setAuthType(
                            LiveConstant.AuthType.PHONE.getDesc())
                            .setEnabled("Y").setRank(1)
                            .setAuthTips("请输入手机号");
                    List<LiveChannelSettingRequest.AuthSetting> authSettings =
                            new ArrayList<LiveChannelSettingRequest.AuthSetting>();
                    authSettings.add(authSetting);
                    liveUpdateChannelAuthRequest.setChannelId(liveChannelInitResponse.getChannelId())
                            .setAuthSettings(authSettings);
                    liveUpdateChannelAuthResponse = new LiveWebAuthServiceImpl().updateChannelAuth(
                            liveUpdateChannelAuthRequest);
                    Assert.assertNotNull(liveUpdateChannelAuthResponse);
                    if (liveUpdateChannelAuthResponse) {
                        log.debug("测试设置观看条件成功");
                    }
                }
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage(),B
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }

Last updated