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