更新时间:2025-12-16 07:18:33下载pdf
家庭成员管理相关的所有功能对应 TSmartMember 类。主要功能:家庭成员的增删改查、成员权限管理、家庭邀请管理等。
| 类名 | 说明 |
|---|---|
| TSmartMember | 家庭成员管理类 |
| TSmartHomeMemberBean | 家庭成员信息数据模型 |
| TSmartHomeRoleType | 家庭成员角色类型枚举 |
接口说明
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);
}
}
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈