已完成用户APP首期功能开发
交付用户端首期页面、配套接口、后台资源及测试文档。用户APP构建、静态分析和三个管理后台构建通过;完整测试仍有2项失败,后端模型注释检查未通过,详见交付记录。
This commit is contained in:
51
docs/开发日志_家庭成员与设备共享首期闭环_20260913.md
Normal file
51
docs/开发日志_家庭成员与设备共享首期闭环_20260913.md
Normal file
@@ -0,0 +1,51 @@
|
||||
# 家庭成员与设备共享首期开发日志
|
||||
|
||||
操作时间: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`、打开邀请表单、发送邀请、查看待确认状态、二次确认撤回,并停留在撤回后的真实页面。
|
||||
|
||||
## 风险评估
|
||||
|
||||
- 远程测试账号当前没有智能设备,未在真实数据上执行按设备授权。
|
||||
- 当前只有一个已知用户端测试账号,接受/拒绝接口尚未完成双账号浏览器联调。
|
||||
- 页面使用真实姓名首字头像;成员受控头像资源接口尚未接入,因此与设计稿人物照片存在差异。
|
||||
- 设备远程控制能力本身仍由设备控制页面和物联网映射决定,本页授权不会绕过二次确认或设备可用性检查。
|
||||
Reference in New Issue
Block a user