handUp method

Future<void> handUp(
  1. String userId
)

Implementation

Future<void> handUp(String userId) async {
  // 判断当前已经上台人数和课堂最大允许上台人数
  var classInfo = await getClassInfo();
  if (classInfo != null) {
    final maxRtcMember = classInfo.roomInfo.maxRtcMember;
    final currentRtcMember =
        _membersInfoObs.memberIds.where((memberId) {
          final member = _membersInfoObs.membersInfo[memberId];
          return member?.stage == 1 && member?.role != RoleEnum.teacher.index;
        }).length;
    TCICLog.info("maxRtcMember: $maxRtcMember currentRtcMember: $currentRtcMember", actionModule: ActionModule.tcicController.name, actionName: ActionName.handUp.name);
    if (maxRtcMember > 0) {
      if (currentRtcMember >= maxRtcMember) {
        TCICLog.error("当前课程已经达到最大上台人数", actionModule: ActionModule.tcicController.name, actionName: ActionName.handUp.name);
        TCICToast.show(StringEnum.maxOnStageTips);
        return;
      }
      await sendAction(userId, MemberActionType.handUp);
    } else {
      TCICLog.error("当前课程不允许用户上台", actionModule: ActionModule.tcicController.name, actionName: ActionName.handUp.name);
      TCICToast.show(StringEnum.maxOnStageTips);
    }
  } else {
    TCICLog.error("当前课程不存在", actionModule: ActionModule.tcicController.name, actionName: ActionName.handUp.name);
    TCICToast.show(StringEnum.classNotExist);
  }
}