48 lines
3.5 KiB
Markdown
48 lines
3.5 KiB
Markdown
|
|
# 设备分组开发日志
|
|||
|
|
|
|||
|
|
操作时间:2026-09-11 16:00—17:00
|
|||
|
|
操作类型:新增、扩展
|
|||
|
|
影响模块:用户端设备、平台产品归属、远程 PostgreSQL
|
|||
|
|
|
|||
|
|
## 操作前状态
|
|||
|
|
|
|||
|
|
图08没有独立页面,图34的“设备分组”仅弹出暂未开放提示。产品档案已有本人归属和设备分类,但没有用户分组资料或归组字段。在线状态、安全检查、扫码添加和远程控制没有可用物联网接口。
|
|||
|
|
|
|||
|
|
## 具体操作
|
|||
|
|
|
|||
|
|
- 新增 `user_device_group`,保存本人分组名称、顺序和新增幂等号;为每个字段及表补充中文数据库注释。
|
|||
|
|
- 为 `product_info` 增加 `device_group_id`。平台转移产品归属时自动清空旧用户分组,避免新用户继承旧分组。
|
|||
|
|
- 新增本人分组列表、新建、改名、删除和设备归组接口。所有查询都从登录令牌确定用户,客户端传入其他用户标识无效。
|
|||
|
|
- 删除分组时在同一事务内把组内设备移回未分组;分组新增限制20个,同名和幂等重放返回稳定错误码。
|
|||
|
|
- 新增图08页面,完成新建、编辑、删除、查看组内设备及设备归组。群控、安全检查明确提示“暂未开放”。
|
|||
|
|
- 图34改为真实分组卡片,并按设计稿补齐统计图标、分隔线和427像素Web手机画布;最终轮继续收紧搜索框、筛选控件和统计卡高度。
|
|||
|
|
|
|||
|
|
## 代码变更
|
|||
|
|
|
|||
|
|
- `backend/api/internal/models/user_device_group.go`:设备分组模型。
|
|||
|
|
- `backend/api/internal/models/product_info.go`:产品归组字段。
|
|||
|
|
- `backend/api/internal/logic/client/user/device_groups.go`:分组与设备归组业务。
|
|||
|
|
- `backend/api/internal/routers/client.go`:五条分组相关路由。
|
|||
|
|
- `backend/api/cmd/cli/device_group_migration.go`:独立可重复远程迁移。
|
|||
|
|
- `apps/user_app/lib/ui/features/profile/device_groups_page.dart`:图08页面。
|
|||
|
|
- `apps/user_app/lib/ui/features/profile/devices_page.dart`:图34分组布局。
|
|||
|
|
- `apps/user_app/lib/domain/models/device_group.dart`、`data/repositories/client_repository.dart`:分组模型与接口适配。
|
|||
|
|
- `apps/user_app/lib/app/app.dart`、`app/router.dart`:427像素Web预览画布和页面路由。
|
|||
|
|
|
|||
|
|
## 操作后状态
|
|||
|
|
|
|||
|
|
用户可创建、改名和删除本人分组,并把本人启用的智能阀或报警器移入或移出分组。删除分组后设备自动回到未分组。页面不展示虚构在线、离线、安全或控制结果。
|
|||
|
|
|
|||
|
|
## 验证结果
|
|||
|
|
|
|||
|
|
- 远程迁移 `migrate-device-groups` 成功,未启动本机 PostgreSQL、Redis 或 Docker。
|
|||
|
|
- `go test ./...`、`go vet ./...` 和API构建全量通过;新增输入边界、本人隔离、响应白名单和路由检查。
|
|||
|
|
- Flutter `analyze` 无问题;设备与分组9项定向测试通过,320/390/430宽度及1.3倍文字无溢出;全量159项Flutter测试通过。
|
|||
|
|
- Web Release 使用浏览器API地址构建成功。
|
|||
|
|
- 内置浏览器真实完成:创建“厨房”→测试设备归组→改名“厨房组”→删除→设备回到未分组。测试分组已删除,测试设备已恢复停用,最终为0设备、0分组。
|
|||
|
|
- 视觉证据:`视觉验收/08-设备分组_并排对照_20260911.jpg`、`视觉验收/34-我的设备_并排对照_20260911.jpg`。
|
|||
|
|
|
|||
|
|
## 风险评估
|
|||
|
|
|
|||
|
|
遥测、安全检查、扫码添加和远程控制仍缺服务端及厂商能力,页面明确显示暂未开放。源图是5台设备和3个分组,当前远程测试结束后为空状态,无法进行同内容像素验收,因此图08、34仍为视觉验收阻塞状态。
|