家庭成员管理

更新时间:2024-08-28 01:53:48下载pdf

本文介绍成员管理相关的功能,包括添加成员、移除成员、修改成员信息、邀请成员等。其中成员不同角色的权限功能如下:

角色类型 角色描述 权限功能
家庭所有者 一般为家庭的创建者,一个家庭只能有一个家庭所有者,家庭所有者权限最大
  • 家庭查询,修改,删除
  • 家庭所有者权限转移
  • 该家庭房间查询,创建,修改,删除
  • 家庭成员查询,修改,删除
  • 家庭成员新增管理员和普通成员
  • 家庭下添加设备,设备状态查看,设备控制,设备编辑,设备共享,设备移除,设备固件升级
  • 家庭下创建群组,设备控制,群组编辑,解散群组,群组控制
  • 家庭下智能场景查询,修改,新增
管理员 只有家庭所有者可以添加管理员,一个家庭可以有多个管理员,管理员权限不能删除家庭,只能离开家庭,只能添加普通成员
  • 家庭查询,修改,离开
  • 家庭下房间查询,创建,修改,删除
  • 家庭下成员查询,新增普通成员,修改,删除
  • 家庭下添加设备,设备状态查看,设备控制,设备编辑,设备共享,设备移除,设备固件升级
  • 家庭下创建群组,群组编辑,解散群组,群组控制
  • 家庭下智能场景查询,修改,新增
普通成员 家庭所有者或者管理员添加普通成员,一个家庭可以有多个普通成员,普通成员基本只能查看信息
  • 家庭查询,离开
  • 家庭下房间查询
  • 家庭下成员查询
  • 家庭下设备状态和信息查看
  • 家庭下群组信息查看
  • 家庭下智能场景查询

数据模型

成员管理对应 FamilyManagerCoreKit.getMemberUseCase()MemberBean 数据模型如下表所示:

字段 类型 描述
memberId Long 成员 ID
homeId Long 成员所在家庭 ID
headUrl String 成员头像
name String 成员名称
role Integer 成员角色:
  • 0:家庭所有者 MemberRole.ROLE_OWNER
  • 1:家庭管理员 MemberRole.ROLE_ADMIN
  • 2:家庭普通成员 MemberRole.ROLE_MEMBER
以上取值,根据角色的操作权限进行降序排列,即家庭所有者拥有最高操作权限
account String 成员关联账号(手机或者邮箱)
uid String 成员账号用户 ID(User ID)
memberStatus Integer 成员邀请状态:
  • 1:等待接受 MemberStatus.WAITING
  • 2:接受 MemberStatus.ACCEPT
  • 3:拒绝 MemberStatus.REJECT
validTime Long 邀请码有效时间,超时后可重新邀请
invitationCode String 邀请码,一个邀请码对应只能有一个用户使用
invitationId Long 邀请 ID

添加家庭成员

  • 拥有者(Owner)可以添加 管理员普通成员
  • 管理员(Admin)可以添加 普通成员 及更低权限的角色。

接口说明

void addMember(MemberWrapperBean addMemberWrapperBean,IFamilyMemberDataCallback<MemberBean> callback);

参数说明

参数 说明
addMemberWrapperBean 添加成员信息
callback 回调

MemberWrapperBean 数据模型

字段 类型 描述
homeId Long 家庭 ID
nickName String 为受邀请者设置的昵称
account String 受邀请账号
countryCode String 受邀请者账号对应国家码
role Integer 成员角色:
  • 家庭所有者 MemberRole.ROLE_OWNER
  • 家庭管理员 MemberRole.ROLE_ADMIN
  • 家庭普通成员 MemberRole.ROLE_MEMBER
headPic String 为受邀请者设置的头像

调用示例

val builder = MemberWrapperBean.Builder()
        val memberWrapperBean = builder
            .setHomeId('homeId')
            .setMemberId('memberId')
            .setNickName( 'nickname')
            .setHeadPic( 'headPic')
            .setCountryCode('countryCode')
            .setAccount('account')
            .setRole(MemberRole.ROLE_MEMBER)
            .build()
        FamilyManagerCoreKit.getMemberUseCase()
            .addMember(memberWrapperBean, object : IThingDataCallback<MemberBean?> {
                override fun onSuccess(memberBean: MemberBean?) {

                }

                override fun onError(s: String, s1: String) {

                }
            })

移除家庭成员

移除家庭下的成员。

  • 家庭拥有者可以移除 管理员 以及 普通成员
  • 家庭管理员可以移除 普通成员 及更低权限的角色。

接口说明

void removeMember(long homeId, long memberId,IFamilyMemberResultCallback callback)

参数说明

参数 说明
homeId 家庭 ID
memberId 将要移除的成员 ID
callback 回调

调用示例

FamilyManagerCoreKit.getMemberUseCase().removeMember(homeId,memberid,object :IFamilyMemberResultCallback{
            override fun onError(code: String?, error: String?) {

            }

            override fun onSuccess() {

            }
        })

更新家庭成员

  • 拥有者可以修改 管理员 及更低权限的角色。
  • 管理员可以修改 普通成员 及更低权限的角色。

接口说明

void updateMember(MemberWrapperBean memberWrapperBean,IFamilyMemberResultCallback callback);

参数说明

参数 说明
memberWrapperBean 更新成员信息,有效字段为 memberIdnicknameheadPicisAdmin
callback 回调

调用示例

val builder = MemberWrapperBean.Builder()
        val memberWrapperBean = builder
            .setMemberId('memberId')
            .setNickName( 'nickname')
            .setHeadPic( 'headPic')
            .setAdmin('isAdmin')
            .build()
        FamilyManagerCoreKit.getMemberUseCase()
            .updateMember(memberWrapperBean, object : IFamilyMemberResultCallback {
                override fun onSuccess() {

                }

                override fun onError(s: String, s1: String) {

                }
            })

关联成员账号

在已添加的成员没有绑定邮箱和手机的时候,例如第三方账号登录的情况,可以给成员绑定关联可用的邮箱和手机。

  • 拥有者可以关联 管理员 及更低权限的角色。
  • 管理员可以关联 普通成员 及更低权限的角色。

接口说明

void addMemberAccount(MemberWrapperBean addMemberWrapperBean,IFamilyMemberDataCallback<String> callback);

参数说明

参数 说明
addMemberWrapperBean 成员关联信息,有效字段为 memberIdcountryCodeaccountrole
callback 回调

调用示例

val builder = MemberWrapperBean.Builder()
        val memberWrapperBean = builder
            .setMemberId('memberId')
            .setCountryCode('countryCode')
            .setAccount('account')
            .setRole(MemberRole.ROLE_MEMBER)
            .build()
        FamilyManagerCoreKit.getMemberUseCase()
            .addMember(memberWrapperBean, object : IThingDataCallback<MemberBean?> {
                override fun onSuccess(memberBean: MemberBean?) {

                }

                override fun onError(s: String, s1: String) {

                }
            })

获取成员列表

获取家庭下的成员列表。

接口说明

void getFamilyMemberList(long homeId,
IFamilyDataCallback<BizResponseData<List<MemberBean>>> callback);

参数说明

参数 说明
homeId 家庭 ID
callback 回调

调用示例

FamilyManagerCoreKit.getFamilyUseCase().getFamilyMemberList(homeId,object :IFamilyDataCallback<BizResponseData<List<MemberBean>>>{
            override fun onSuccess(result: BizResponseData<List<MemberBean>>?) {

            }

            override fun onError(errorCode: String?, errorMessage: String?) {

            }
        })

获取待接受邀请成员列表

获取家庭下的还没有接受邀请的成员。包含未加入邀请、已过期的邀请。

接口说明

void getInvitationMemberList(long homeId,IFamilyDataCallback<BizResponseData<List<MemberBean>>> callback);

参数说明

参数 说明
homeId 家庭 ID
callback 回调

调用示例

FamilyManagerCoreKit.getFamilyUseCase().getInvitationMemberList(homeId,object :IFamilyDataCallback<BizResponseData<List<MemberBean>>>{
       override fun onSuccess(result: BizResponseData<List<MemberBean>>?) {

       }

        override fun onError(errorCode: String?, errorMessage: String?) {

        }
  })

获取成员信息

获取家庭下具体的成员信息。

接口说明

void getMemberInfo(long mHomeId, long memberId,IFamilyMemberDataCallback<MemberBean> callback)

参数说明

参数 说明
homeId 家庭 ID
memberId 成员 ID
callback 回调

调用示例

FamilyManagerCoreKit.getMemberUseCase().getMemberInfo(homeId,memberId,object:IFamilyMemberDataCallback<MemberBean>{
            override fun onSuccess(result: MemberBean?) {

            }

            override fun onError(errorCode: String?, errorMessage: String?) {

            }
        })

获取成员可使用的设备

获取该家庭成员角色可使用的设备列表。例如某类门锁设备,或者其他安防类设备,可授权部分家庭成员操控该设备。

接口说明

void getMemberDeviceList(long relationId,IFamilyMemberDataCallback<Map<String, List<MemberDeviceBean>>> callback);

参数说明

参数 说明
relationId 成员 ID
success 成功回调
failure 失败回调

调用示例

FamilyManagerCoreKit.getMemberUseCase().getMemberDeviceList(memberId,object:IFamilyMemberDataCallback<Map<String, List<MemberDeviceBean>>>{
            override fun onSuccess(result: Map<String, List<MemberDeviceBean>>?) {

            }

            override fun onError(errorCode: String?, errorMessage: String?) {

            }
        })

转移家庭所有者权限

当前家庭如果账号是对应的家庭所有者,并且家庭下有其他成员,可以转移家庭所有者权限。

接口说明

void transferOwner(long homeId, long memberId,
                   IFamilyDataCallback<Boolean> callback);

参数说明

参数 类型 说明
homeId Long 家庭 ID
memberId Long 成员 ID
callback IFamilyDataCallback<Boolean> 查询结果的回调

调用示例

FamilyManagerCoreKit.getFamilyUseCase().transferOwner(homeId, memberId, object :
            IFamilyDataCallback<Boolean>{
            override fun onSuccess(result: Boolean) {

            }

            override fun onError(errcode: String?, errMsg: String?) {

            }
        });

创建家庭成员邀请码

创建邀请码成功后,调用 callback 回调邀请结果模型,包含邀请码和邀请语。

接口说明

void getInvitationMessage(long homeId,IFamilyMemberDataCallback<InvitationMessageBean> callback);

参数说明

参数 说明
homeId 家庭 ID
callback 回调

InvitationMessageBean 数据属性说明

字段 类型 描述
invitationMsgContent String 邀请语
invitationCode String 邀请码

调用示例

FamilyManagerCoreKit.getMemberUseCase().getInvitationMessage(
            homeId,
            object : IFamilyMemberDataCallback<InvitationMessageBean?> {
                override fun onSuccess(result: InvitationMessageBean?) {

                }

                override fun onError(errorCode: String, errorMessage: String) {

                }
            })

重新创建家庭成员邀请码

邀请码超过有效期之后,用户不能通过之前生成的邀请码加入家庭。但您可以 reInviteMember 重新生成邀请码,邀请 ID 不变。

接口说明

void reInviteMember(long invitationId,IFamilyMemberDataCallback<InvitationMessageBean> callback);

参数说明

参数 说明
invitationId 邀请 ID
callback 成功回调

调用示例

FamilyManagerCoreKit.getMemberUseCase().reInviteMember(
            invitationId,
            object : IFamilyMemberDataCallback<InvitationMessageBean?> {
                override fun onSuccess(result: InvitationMessageBean?) {

                }

                override fun onError(errorCode: String, errorMessage: String) {

                }
            })

撤销家庭成员邀请码

请注意,撤销邀请码后,用户不能通过之前生成的邀请码加入家庭。

接口说明

void cancelInviteMember(long invitationId,IFamilyMemberResultCallback callback);

参数说明

参数 说明
invitationId 邀请 ID
callback 成功回调

调用示例

FamilyManagerCoreKit.getMemberUseCase().cancelInviteMember(
            invitationId,
            object : IFamilyMemberResultCallback {
                override fun onSuccess() {

                }

                override fun onError(errorCode: String, errorMessage: String) {

                }
        })

更新待接受邀请的家庭成员

修改被邀请者信息,更新邀请码。

接口说明

void updateMemberByInvitation(long invitationId, MemberBean memberBean,IFamilyMemberDataCallback<Boolean> callback);

参数说明

参数 说明
invitationId 邀请码 ID
memberBean 还没有接受邀请的成员的需要修改的信息,有效字段为 memberNamerole
callback 回调

调用示例

val member = MemberBean()
        member.memberName = "xxx"
        member.role = MemberRole.ROLE_MEMBER
        FamilyManagerCoreKit.getMemberUseCase().updateMemberByInvitation(
            invitationId,
            member,
            object : IFamilyMemberDataCallback<Boolean?> {
                override fun onSuccess(result: Boolean?) {

                }

                override fun onError(errorCode: String, errorMessage: String) {

                }
            })