站点用户管理

更新时间:2022-02-17 07:02:07

查询成员列表

可通过如下方法查询当前站点成员列表。

fun fetchSiteResidentList(
        homeId: Long, callback: Business.ResultListener<ArrayList<InvitationMemberBean?>?>
    )

InvitationMemberBean 字段说明

字段名称 类型 说明
uid String 用户 ID
gid Long 站点 ID
name String 用户昵称
admin Boolean 是否是管理员
id Long 默认 ID 编号
headPic String 头像地址
mobile String 电话号码
username String 用户名
dealStatus Int 授权状态
  • 0:待生效
  • 1:已生效
  • 2:已逾期
  • 3:永久
role Int 角色
  • 0:主入住人
  • 1:同住人
validTime Long 有效时间
invitationId Long 邀请 ID
invitationCode String 邀请码

示例代码

TuyaSmartResidenceSdk.siteManager().fetchSiteResidentList(Global.currentSite
        ?.homeId?:return, object : Business.ResultListener<ArrayList<InvitationMemberBean?>?> {
        override fun onFailure(
            p0: BusinessResponse?,
            p1: ArrayList<InvitationMemberBean?>?,
            p2: String?
        ) {
            L.d(TAG, "fetchMemberList: onFailure: ${p0?.errorMsg}")
        }

        override fun onSuccess(
            p0: BusinessResponse?,
            p1: ArrayList<InvitationMemberBean?>?,
            p2: String?
        ) {

        }

    })

邀请成员

通过邀请码邀请成员

可以通过邀请码的方式邀请的方式邀请新成员进入空间。

fun invitationMember(
    homeId: Long,
    listener: Business.ResultListener<InviteMessageBean?>?
    )

InviteMessageBean 字段说明

字段名称 类型 说明
invitationMsgContent String 邀请信息
invitationCode String 邀请码

受邀用户可以使用邀请码加入站点,这时需要调用以下方法。

fun joinSite(
    code: String?,
    listener: Business.ResultListener<Boolean?>?
    )

也可以取消这个邀请码。首先通过以下接口查询当前邀请记录:

fun fetchInvitationRecordList(
        homeId: Long,
        callback: IFamilyDataCallback<List<MemberBean>?>
    )

MemberBean 中包含了 invitationId,将 invitationId 传入下面方法,即可取消该邀请码。

fun cancelInvitation(
    invitationId: Long,
    callback: Business.ResultListener<Boolean?>?
    )

同时,邀请码的有效期为 3 天,您可以通过以下方法重新使邀请码生效:

fun inviteAgainMember(
    invitationId: Long,
    callback: Business.ResultListener<InviteMessageBean?>?
    )

示例代码

fun createInvitationCode() {
    TuyaSmartResidenceSdk.siteManager().invitationMember(
        Global.currentSite?.homeId?:return,
        object: Business.ResultListener<InviteMessageBean?> {
        override fun onFailure(p0: BusinessResponse?, p1: InviteMessageBean?, p2: String?) {
            L.d(TAG, "createInvitationCode: onFailure: ${p0?.errorMsg}")
        }

        override fun onSuccess(p0: BusinessResponse?, p1: InviteMessageBean?, p2: String?) {
            L.d(TAG, "createInvitationCode: onSuccess: ${p1?.invitationMsgContent}")
            invitationCode.value = p1?.invitationCode?:""
            fetchInvitationRecordList()
        }

    })
}

fun fetchInvitationRecordList() {
    TuyaSmartResidenceSdk.siteManager().fetchInvitationRecordList(
        Global.currentSite?.homeId?:return, object : IFamilyDataCallback<List<MemberBean>?> {
            override fun onSuccess(result: List<MemberBean>?) {
                L.d(TAG, "inviteAgain: onSuccess: ${result.toString()}")
                invitationRecordList.clear()
                result?.run { invitationRecordList.addAll(this) }
            }

            override fun onError(errorCode: String?, errorMessage: String?) {
                L.d(TAG, "inviteAgain: onError: errorMessage = $errorMessage")
            }

        })
}

fun deleteInvitationCode(invitationId: Long) {
    TuyaSmartResidenceSdk.siteManager().cancelInvitation(invitationId, object :
        Business.ResultListener<Boolean?> {
        override fun onFailure(p0: BusinessResponse?, p1: Boolean?, p2: String?) {
            L.d(TAG, "deleteInvitationCode: onFailure: ${p0?.errorMsg}")
        }

        override fun onSuccess(p0: BusinessResponse?, p1: Boolean?, p2: String?) {
            L.d(TAG, "deleteInvitationCode: onSuccess: $p1")
            fetchInvitationRecordList()
        }

    })
}

fun inviteAgain(invitationId: Long) {
    TuyaSmartResidenceSdk.siteManager().inviteAgainMember(invitationId, object :
        Business.ResultListener<InviteMessageBean?> {
        override fun onFailure(p0: BusinessResponse?, p1: InviteMessageBean?, p2: String?) {
            L.d(TAG, "inviteAgain: onFailure: ${p0?.errorMsg}")
        }

        override fun onSuccess(p0: BusinessResponse?, p1: InviteMessageBean?, p2: String?) {
            L.d(TAG, "inviteAgain: onSuccess: ${p1?.invitationMsgContent}")
            invitationCode.value = p1?.invitationCode?:""
            fetchInvitationRecordList()
        }
    })
}

通过账号邀请成员

通过调用以下方法邀请成员。

fun addMember(
    memberWrapperBean: MemberWrapperBean,
    listener: Business.ResultListener<Long?>?
    )

MemberWrapperBean 可通过以下方式查询。

val memberWrapperBean = MemberWrapperBean.Builder()
            .setAccount(account)
            .setCountryCode(countryCode)
            .setNickName(nickname)
            .setHomeId(Global.currentSite?.homeId ?: return)
            .build()