成员信息管理

更新时间:2025-12-16 07:18:33下载pdf

家庭成员管理相关的所有功能对应 TSmartMember 类。主要功能:家庭成员的增删改查、成员权限管理、家庭邀请管理等。

功能说明

类名 说明
TSmartMember 家庭成员管理类
TSmartHomeMemberBean 家庭成员信息数据模型
TSmartHomeRoleType 家庭成员角色类型枚举

获取 TSmartMember 实例

接口说明

static getInstance(): TSmartMember

示例代码

import { TSmartMember } from '@thingsmart/homelib';

const smartMember = TSmartMember.getInstance();

添加家庭成员

拥有者(HOME_ROLE_TYPE_OWNER)可以添加管理员及以下角色,管理员(HOME_ROLE_TYPE_ADMIN)仅可以添加普通成员及以下角色。

接口说明

public async addMember(requestParams: AddMemberRequestParams): Promise<TSmartAtopResponse<number>>

参数说明

参数 说明
requestParams 添加成员请求参数对象

AddMemberRequestParams 数据模型

字段 类型 说明
homeId number 家庭 ID
name string 为受邀请者设置的昵称
account string 受邀请者账号(手机号或邮箱)
countryCode string 受邀请者账号对应国家码
role TSmartHomeRoleType 成员角色
headPic string 为受邀请者设置的头像 URL(可选,为空时使用受邀请者个人头像)
autoAccept boolean 是否自动接受邀请。true:自动接受;false:需要受邀请者确认

返回值说明

返回 Promise<TSmartAtopResponse<number>>,result 为成员 ID。

示例代码

import { TSmartMember, AddMemberRequestParams, TSmartHomeRoleType } from '@thingsmart/homelib';

const smartMember = TSmartMember.getInstance();

const params: AddMemberRequestParams = {
  homeId: 123456,
  name: '张三',
  account: '13800138000',
  countryCode: '86',
  role: TSmartHomeRoleType.HOME_ROLE_TYPE_MEMBER,
  autoAccept: false
};

try {
  const response = await smartMember.addMember(params);
  if (response.success) {
    const memberId = response.result;
    console.log('添加成员成功,成员ID:', memberId);
  } else {
    console.error('添加成员失败:', response.errorMsg);
  }
} catch (error) {
  console.error('添加成员异常:', error);
}

删除家庭成员

拥有者(HOME_ROLE_TYPE_OWNER)可以删除管理员及以下角色,管理员(HOME_ROLE_TYPE_ADMIN)仅可以删除普通成员及以下角色。

特殊说明

  • 家庭管理员、普通成员、自定义角色删除自己时为离开家庭,此时该家庭未注销,设备也不会被重置。
  • 拥有者删除自己时为注销家庭,同时该家庭下所有设备会被重置。

接口说明

public async removeMember(memberId: number): Promise<TSmartAtopResponse<boolean>>

参数说明

参数 说明
memberId 家庭成员 ID

示例代码

const smartMember = TSmartMember.getInstance();
const memberId = 789;

try {
  const response = await smartMember.removeMember(memberId);
  if (response.success) {
    console.log('删除成员成功');
  } else {
    console.error('删除成员失败:', response.errorMsg);
  }
} catch (error) {
  console.error('删除成员异常:', error);
}

查询家庭成员列表

接口说明

public async getMemberList(homeId: number): Promise<TSmartAtopResponse<Array<TSmartHomeMemberBean>>>

参数说明

参数 说明
homeId 家庭 ID

返回值说明

返回 Promise<TSmartAtopResponse<Array<TSmartHomeMemberBean>>>,包含成员列表数据。

示例代码

const smartMember = TSmartMember.getInstance();
const homeId = 123456;

try {
  const response = await smartMember.getMemberList(homeId);
  if (response.success) {
    const memberList = response.result;
    memberList.forEach((member) => {
      console.log('成员ID:', member.memberId, '成员名称:', member.name, '角色:', member.role);
    });
  } else {
    console.error('查询成员列表失败:', response.errorMsg);
  }
} catch (error) {
  console.error('查询成员列表异常:', error);
}

更新家庭成员信息

拥有者(HOME_ROLE_TYPE_OWNER)可以修改管理员及以下角色,管理员(HOME_ROLE_TYPE_ADMIN)仅可以修改普通成员及以下角色。

接口说明

public async updateMember(requestParams: MemberRequestParams): Promise<TSmartAtopResponse<boolean>>

参数说明

参数 说明
requestParams 更新成员请求参数对象

MemberRequestParams 数据模型

字段 类型 说明
memberId number 成员 ID
name string 成员昵称(可选)
role TSmartHomeRoleType 成员角色(可选)
headPic string 成员头像 URL(可选)

示例代码

import { TSmartMember, MemberRequestParams, TSmartHomeRoleType } from '@thingsmart/homelib';

const smartMember = TSmartMember.getInstance();

const params: MemberRequestParams = {
  memberId: 789,
  name: '李四',
  role: TSmartHomeRoleType.HOME_ROLE_TYPE_ADMIN
};

try {
  const response = await smartMember.updateMember(params);
  if (response.success) {
    console.log('更新成员信息成功');
  } else {
    console.error('更新成员信息失败:', response.errorMsg);
  }
} catch (error) {
  console.error('更新成员信息异常:', error);
}

更新家庭成员昵称

接口说明

public async updateMemberName(memberId: number, name: string): Promise<TSmartAtopResponse<boolean>>

参数说明

参数 说明
memberId 成员 ID
name 新的成员昵称

示例代码

const smartMember = TSmartMember.getInstance();
const memberId = 789;

try {
  const response = await smartMember.updateMemberName(memberId, '王五');
  if (response.success) {
    console.log('更新成员昵称成功');
  } else {
    console.error('更新成员昵称失败:', response.errorMsg);
  }
} catch (error) {
  console.error('更新成员昵称异常:', error);
}

获取家庭成员关联的设备列表

接口说明

查询指定成员关联的设备列表。

public async getMemberDeviceList(memberId: number): Promise<TSmartAtopResponse<Record<string, Object>>>

参数说明

参数 说明
memberId 成员 ID

示例代码

const smartMember = TSmartMember.getInstance();
const memberId = 789;

try {
  const response = await smartMember.getMemberDeviceList(memberId);
  if (response.success) {
    const deviceList = response.result;
    console.log('成员关联的设备列表:', deviceList);
  }
} catch (error) {
  console.error('查询成员设备列表异常:', error);
}

成员房间权限管理

获取成员房间授权状态

接口说明

获取指定家庭成员对当前家庭下房间的授权状态。

public async getAuthRoomList(homeId: number, memberId: number): Promise<TSmartAtopResponse<Array<RoomAuthBean>>>

参数说明

参数 说明
homeId 家庭 ID
memberId 成员 ID

返回值说明

返回 Promise<TSmartAtopResponse<Array<RoomAuthBean>>>,包含房间授权列表。

RoomAuthBean 数据模型

字段 类型 说明
auth boolean 是否有操作权限
name string 房间名称
roomId number 房间 ID
type number 房间类型

示例代码

const smartMember = TSmartMember.getInstance();
const homeId = 123456;
const memberId = 789;

try {
  const response = await smartMember.getAuthRoomList(homeId, memberId);
  if (response.success) {
    const authRoomList = response.result;
    authRoomList.forEach((room) => {
      console.log('房间:', room.name, '授权状态:', room.auth);
    });
  }
} catch (error) {
  console.error('查询房间授权状态异常:', error);
}

保存成员房间授权

接口说明

保存家庭成员对当前家庭下房间的授权。

public async saveAuthRoomList(homeId: number, memberId: number, rooms: Array<number>): Promise<TSmartAtopResponse<boolean>>

参数说明

参数 说明
homeId 家庭 ID
memberId 成员 ID
rooms 希望授权或取消授权的房间 ID 列表

示例代码

const smartMember = TSmartMember.getInstance();
const homeId = 123456;
const memberId = 789;
const rooms = [101, 102, 103];

try {
  const response = await smartMember.saveAuthRoomList(homeId, memberId, rooms);
  if (response.success) {
    console.log('保存房间授权成功');
  } else {
    console.error('保存房间授权失败:', response.errorMsg);
  }
} catch (error) {
  console.error('保存房间授权异常:', error);
}

成员场景权限管理

获取成员场景授权状态

接口说明

获取指定家庭成员对当前家庭下场景的授权状态。

public async getAuthSceneList(homeId: number, memberId: number): Promise<TSmartAtopResponse<Array<SceneAuthBean>>>

参数说明

参数 说明
homeId 家庭 ID
memberId 成员 ID

返回值说明

返回 Promise<TSmartAtopResponse<Array<SceneAuthBean>>>,包含场景授权列表。

SceneAuthBean 数据模型

字段 类型 说明
auth boolean 是否有操作权限
name string 场景名称
ruleId string 场景 ID
ruleGenre number 场景类型(自动化场景或普通场景)
displayColor string 背景颜色
background string 背景图片 URL

示例代码

const smartMember = TSmartMember.getInstance();
const homeId = 123456;
const memberId = 789;

try {
  const response = await smartMember.getAuthSceneList(homeId, memberId);
  if (response.success) {
    const authSceneList = response.result;
    authSceneList.forEach((scene) => {
      console.log('场景:', scene.name, '授权状态:', scene.auth);
    });
  }
} catch (error) {
  console.error('查询场景授权状态异常:', error);
}

保存成员场景授权

接口说明

保存家庭成员对当前家庭下场景的授权。

public async saveAuthSceneList(homeId: number, memberId: number, ruleIds: Array<string>): Promise<TSmartAtopResponse<boolean>>

参数说明

参数 说明
homeId 家庭 ID
memberId 成员 ID
ruleIds 希望授权或取消授权的场景 ID 列表

示例代码

const smartMember = TSmartMember.getInstance();
const homeId = 123456;
const memberId = 789;
const ruleIds = ['rule_001', 'rule_002', 'rule_003'];

try {
  const response = await smartMember.saveAuthSceneList(homeId, memberId, ruleIds);
  if (response.success) {
    console.log('保存场景授权成功');
  } else {
    console.error('保存场景授权失败:', response.errorMsg);
  }
} catch (error) {
  console.error('保存场景授权异常:', error);
}

关联账号到家庭成员角色

接口说明

将账号关联到指定角色的家庭成员。

public async addMemberAccountRole(requestParams: MemberAccountRoleReqParams): Promise<TSmartAtopResponse<boolean>>

参数说明

参数 说明
requestParams 关联账号请求参数对象

MemberAccountRoleReqParams 数据模型

字段 类型 说明
homeId number 家庭 ID
memberId number 成员 ID
account string 账号(手机号或邮箱)
countryCode string 国家码
role TSmartHomeRoleType 角色类型

示例代码

import { TSmartMember, MemberAccountRoleReqParams, TSmartHomeRoleType } from '@thingsmart/homelib';

const smartMember = TSmartMember.getInstance();

const params: MemberAccountRoleReqParams = {
  homeId: 123456,
  memberId: 789,
  account: '13800138000',
  countryCode: '86',
  role: TSmartHomeRoleType.HOME_ROLE_TYPE_MEMBER
};

try {
  const response = await smartMember.addMemberAccountRole(params);
  if (response.success) {
    console.log('关联账号成功');
  } else {
    console.error('关联账号失败:', response.errorMsg);
  }
} catch (error) {
  console.error('关联账号异常:', error);
}

家庭邀请管理

接受或拒绝家庭邀请

接口说明

成员接受或拒绝家庭邀请。

public async acceptHomeInvitation(homeId: number, accept: boolean): Promise<TSmartAtopResponse<boolean>>

参数说明

参数 说明
homeId 家庭 ID
accept true:接受邀请;false:拒绝邀请

示例代码

const smartMember = TSmartMember.getInstance();
const homeId = 123456;

// 接受邀请
try {
  const response = await smartMember.acceptHomeInvitation(homeId, true);
  if (response.success) {
    console.log('接受邀请成功');
  }
} catch (error) {
  console.error('接受邀请异常:', error);
}

// 拒绝邀请
try {
  const response = await smartMember.acceptHomeInvitation(homeId, false);
  if (response.success) {
    console.log('拒绝邀请成功');
  }
} catch (error) {
  console.error('拒绝邀请异常:', error);
}

获取分享邀请信息

接口说明

生成家庭邀请信息,包括邀请码和邀请文案。

public async getInvitationMessage(homeId: number, role: TSmartHomeRoleType, customRoleId?: number): Promise<TSmartAtopResponse<InviteMessageBean>>

参数说明

参数 说明
homeId 家庭 ID
role 成员角色
customRoleId 自定义角色 ID(仅当 role 为 HOME_ROLE_TYPE_CUSTOM 时使用)

返回值说明

返回 Promise<TSmartAtopResponse<InviteMessageBean>>

InviteMessageBean 数据模型

字段 类型 说明
invitationMsgContent string 邀请文案
invitationCode string 邀请码

示例代码

import { TSmartMember, TSmartHomeRoleType } from '@thingsmart/homelib';

const smartMember = TSmartMember.getInstance();
const homeId = 123456;

try {
  const response = await smartMember.getInvitationMessage(homeId, TSmartHomeRoleType.HOME_ROLE_TYPE_MEMBER);
  if (response.success) {
    const invitation = response.result;
    console.log('邀请码:', invitation.invitationCode);
    console.log('邀请文案:', invitation.invitationMsgContent);
  }
} catch (error) {
  console.error('获取邀请信息异常:', error);
}

获取邀请码对应的家庭信息

接口说明

通过邀请码获取对应家庭的信息。

public async getInvitationFamilyInfo(inviteCode: string): Promise<TSmartAtopResponse<InviteFamilyInfoBean>>

参数说明

参数 说明
inviteCode 邀请码

返回值说明

返回 Promise<TSmartAtopResponse<InviteFamilyInfoBean>>

InviteFamilyInfoBean 数据模型

字段 类型 说明
groupId number 待加入的家庭 ID
groupName string 待加入的家庭名称

示例代码

const smartMember = TSmartMember.getInstance();
const inviteCode = 'ABC123';

try {
  const response = await smartMember.getInvitationFamilyInfo(inviteCode);
  if (response.success) {
    const familyInfo = response.result;
    console.log('家庭ID:', familyInfo.groupId);
    console.log('家庭名称:', familyInfo.groupName);
  }
} catch (error) {
  console.error('获取家庭信息异常:', error);
}

重新邀请家庭成员

接口说明

重新发送家庭邀请。

public async reInviteMember(invitationId: number): Promise<TSmartAtopResponse<InviteMessageBean>>

参数说明

参数 说明
invitationId 邀请记录 ID

示例代码

const smartMember = TSmartMember.getInstance();
const invitationId = 999;

try {
  const response = await smartMember.reInviteMember(invitationId);
  if (response.success) {
    const invitation = response.result;
    console.log('重新邀请成功,邀请码:', invitation.invitationCode);
  }
} catch (error) {
  console.error('重新邀请异常:', error);
}

取消家庭成员邀请

接口说明

取消发出的家庭成员邀请。

public async cancelInviteMember(invitationId: number): Promise<TSmartAtopResponse<boolean>>

参数说明

参数 说明
invitationId 邀请记录 ID

示例代码

const smartMember = TSmartMember.getInstance();
const invitationId = 999;

try {
  const response = await smartMember.cancelInviteMember(invitationId);
  if (response.success) {
    console.log('取消邀请成功');
  }
} catch (error) {
  console.error('取消邀请异常:', error);
}

查询家庭邀请记录列表

接口说明

查询家庭的邀请记录列表。

public async getInvitationList(homeId: number): Promise<TSmartAtopResponse<Array<InviteMemberInfoBean>>>

参数说明

参数 说明
homeId 家庭 ID

返回值说明

返回 Promise<TSmartAtopResponse<Array<InviteMemberInfoBean>>>

InviteMemberInfoBean 数据模型

字段 类型 说明
invitationId number 邀请记录 ID
invitationCode string 邀请码
validTime number 有效期(单位:小时)

示例代码

const smartMember = TSmartMember.getInstance();
const homeId = 123456;

try {
  const response = await smartMember.getInvitationList(homeId);
  if (response.success) {
    const invitationList = response.result;
    invitationList.forEach((invitation) => {
      console.log('邀请ID:', invitation.invitationId, '邀请码:', invitation.invitationCode);
    });
  }
} catch (error) {
  console.error('查询邀请记录异常:', error);
}

更新被邀请者信息

接口说明

更新家庭邀请中被邀请者的信息。

public async updateInvitationMemberInfo(requestParams: MemberInvitationReqParams): Promise<TSmartAtopResponse<boolean>>

参数说明

参数 说明
requestParams 更新邀请信息请求参数对象

MemberInvitationReqParams 数据模型

字段 类型 说明
invitationId number 邀请记录 ID
name string 被邀请者昵称
headPic string 被邀请者头像 URL

示例代码

import { TSmartMember, MemberInvitationReqParams } from '@thingsmart/homelib';

const smartMember = TSmartMember.getInstance();

const params: MemberInvitationReqParams = {
  invitationId: 999,
  name: '赵六',
  headPic: 'https://example.com/avatar.jpg'
};

try {
  const response = await smartMember.updateInvitationMemberInfo(params);
  if (response.success) {
    console.log('更新邀请信息成功');
  }
} catch (error) {
  console.error('更新邀请信息异常:', error);
}

转移家庭所有者权限

接口说明

将家庭的所有者权限转移给其他成员。只有当前家庭的所有者才能执行此操作。

public async transferOwner(homeId: number, memberId: number): Promise<TSmartAtopResponse<boolean>>

参数说明

参数 说明
homeId 家庭 ID
memberId 目标成员 ID,将成为新的家庭所有者

返回值说明

返回 Promise<TSmartAtopResponse<boolean>>,成功时返回 true。

示例代码

import { TSmartMember } from '@thingsmart/homelib';

const smartMember = TSmartMember.getInstance();
const homeId = 123456;
const newOwnerId = 789;

try {
  const response = await smartMember.transferOwner(homeId, newOwnerId);
  if (response.success) {
    console.log('转移家庭所有者权限成功');
  } else {
    console.error('转移家庭所有者权限失败:', response.errorMsg);
  }
} catch (error) {
  console.error('转移家庭所有者权限异常:', error);
}

使用场景

// 场景1:家庭所有者想要退出家庭前,需要先转移所有者权限
async function transferBeforeLeave() {
  const smartMember = TSmartMember.getInstance();
  const homeId = 123456;
  const adminMemberId = 789; // 选择一个管理员作为新所有者
  
  try {
    // 先转移所有者权限
    const transferResponse = await smartMember.transferOwner(homeId, adminMemberId);
    if (transferResponse.success) {
      console.log('权限转移成功,可以安全退出家庭');
      // 现在可以安全地离开家庭
      // await smartMember.removeMember(myMemberId);
    }
  } catch (error) {
    console.error('权限转移失败:', error);
  }
}

// 场景2:家庭所有者因故无法继续管理,指定新的负责人
async function designateNewOwner() {
  const smartMember = TSmartMember.getInstance();
  const homeId = 123456;
  const trustedMemberId = 999; // 信任的家庭成员
  
  try {
    const response = await smartMember.transferOwner(homeId, trustedMemberId);
    if (response.success) {
      console.log('家庭管理权已成功转移给新负责人');
    }
  } catch (error) {
    console.error('权限转移失败:', error);
  }
}