Files
platforms/docs/开发日志_家庭成员与设备共享首期闭环_20260913.md
czl231 3ef33b531d 已完成用户APP首期功能开发
交付用户端首期页面、配套接口、后台资源及测试文档。用户APP构建、静态分析和三个管理后台构建通过;完整测试仍有2项失败,后端模型注释检查未通过,详见交付记录。
2026-09-13 00:57:32 +08:00

52 lines
3.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 家庭成员与设备共享首期开发日志
操作时间2026-09-13
操作类型:新增、扩展
影响模块:用户端 App、用户端 API、远程开发数据库
## 操作前状态
个人中心仅显示“家庭成员与设备共享”暂未开放,没有独立页面、家庭关系、邀请确认、设备授权或审计接口。紧急联系人只能维护资料,并明确不代表设备控制或告警通知授权。
## 具体操作
- 新增家庭成员邀请模型。邀请七天有效,受邀手机号对应的账号本人接受后才建立成员关系。
- 新增按成员、按设备保存的查看、告警和控制权限。告警或控制权限必须同时具备查看权限。
- 新增邀请、接受、拒绝、权限调整和撤销审计。审计摘要不记录完整手机号。
- 新增 `/family` 页面,按设计稿展示家庭概览、成员状态、共享设备、安全规则和固定邀请按钮。
- 个人中心入口改为真实路由。邀请、撤回和权限编辑均以服务端成功响应为准。
- 远程开发数据库执行 `migrate-family-sharing` 增量迁移,只创建家庭共享三张表、索引和中文注释。
## 行为变化
变更前:点击入口只显示“暂未开放”。
变更后:房主可以邀请手机号、预设设备范围、撤回待确认邀请、调整成员权限或移除成员;受邀账号可以接受或拒绝。普通紧急联系人不会自动成为家庭成员,也不会自动获得设备权限。
## 代码变更
- `backend/api/internal/models/user_family_member.go`:家庭成员、设备共享和审计模型。
- `backend/api/internal/logic/client/user/family.go`:本人隔离、邀请确认、权限替换、撤销和审计业务。
- `backend/api/internal/routers/client.go`:家庭共享用户端路由。
- `backend/api/cmd/cli/family_migration.go``main.go`:可重复执行的增量迁移命令。
- `apps/user_app/lib/domain/models/family_sharing.dart`:页面领域模型。
- `apps/user_app/lib/data/repositories/client_repository.dart`:家庭共享仓储调用。
- `apps/user_app/lib/ui/features/profile/family_sharing_page.dart`:独立页面及邀请、权限、撤销交互。
- `apps/user_app/lib/app/router.dart``profile_page.dart`:路由和个人中心入口。
- `apps/user_app/test/ui/family_sharing_page_test.dart``test/support/a1_fixture.dart``tool/a1_visual_test.dart`:页面和视觉验证。
## 验证结果
- Go`go test ./internal/logic/client/user ./internal/routers ./cmd/cli` 通过。
- Flutter`flutter analyze` 无问题;家庭共享页面 2 项测试通过320/360/390/430 宽度及 1.0/1.3 字体倍率共 8 组无溢出。
- 构建:带本地 API 地址的 Flutter Web Release 构建通过。
- 远程联调:真实账号创建待确认邀请,响应状态为 10列表仅显示脱敏手机号撤回成功并从活动列表消失。
- 内置浏览器:完成登录、打开 `/family`、打开邀请表单、发送邀请、查看待确认状态、二次确认撤回,并停留在撤回后的真实页面。
## 风险评估
- 远程测试账号当前没有智能设备,未在真实数据上执行按设备授权。
- 当前只有一个已知用户端测试账号,接受/拒绝接口尚未完成双账号浏览器联调。
- 页面使用真实姓名首字头像;成员受控头像资源接口尚未接入,因此与设计稿人物照片存在差异。
- 设备远程控制能力本身仍由设备控制页面和物联网映射决定,本页授权不会绕过二次确认或设备可用性检查。