31 lines
2.9 KiB
Markdown
31 lines
2.9 KiB
Markdown
# M08-C 管理员/员工端
|
||
|
||
## 2026-08-10 门店概况、房态与订单总览
|
||
|
||
- `ENGINEERING_DELTA=YES`
|
||
- 同一微信小程序根据 `/app-api/auth/me` 的角色动态展示“门店管理”入口;`STAFF`、`STORE_ADMIN`、`TENANT_ADMIN`、`PLATFORM_ADMIN` 可进入,保洁角色继续使用独立任务入口。
|
||
- 新增门店运营页,按授权门店切换,展示房间总数、空闲、占用、待处理和活跃订单,并列出完整房态和近期订单。
|
||
- 新增 `/app-api/management/stores`、`/app-api/management/stores/:storeId/rooms` 和 `/app-api/management/rooms/:id/status`;读取要求 `store.operation.read`,房态调整和启停要求 `store.operation.write` 或租户/平台管理权限。
|
||
- 房态写操作记录 `ROOM_STATUS_UPDATED` 审计日志,metadata 包含门店、配置状态、运营状态和操作原因。
|
||
- 新增 `2026081001_m08c_staff_management_access` up/down/verify,为既有 STAFF 角色补 `profile.read`、`store.operation.read` 最小只读权限;后续登录动态补权逻辑同步更新。
|
||
- 新增 `scripts/check-miniapp-m08-c.mjs` 并接入 Windows 全量门禁,覆盖角色入口、页面注册、管理 API、只读/可写按钮和迁移。
|
||
- WSL MySQL 8.4.10 往返期间发现并修复两处既有内部问题:M08-A 充值迁移验证的 5 列/2 索引期望漏项导致 M08-B 规则错位;定价仓储误读不存在的 `qipai_rooms.room_category_id`,已改为迁移真实字段 `category_id` 并补契约断言。
|
||
|
||
## 测试证据
|
||
|
||
- `powershell -ExecutionPolicy Bypass -File scripts/dev/windows/test-all.ps1`:退出码 0;后端全量测试、后台生产构建、M08-A/B/C 静态验收、迁移计划、固定域名、敏感信息、仓库完整性全部通过。
|
||
- WSL 原生临时副本 + MySQL 8.4.10:`up → verify → down → up → verify` 退出码 0;136 条 up、114 条 verify、130 条 down,临时库与账号自动清理。
|
||
- `GET /app-api/management/stores` 与授权门店房态读取:200;STORE_ADMIN 房态更新:200;只有 `store.operation.read` 的 STAFF 房态写入:403。
|
||
- 已知非阻塞提示:参考目录既有 xjar 超过 100MB;Element Plus 产物 chunk 超过 500kB;WSL npm 报告 4 个 high audit 项及 Node 26 allow-scripts 提示,未执行破坏性自动升级。
|
||
|
||
## 变更影响
|
||
|
||
- 数据库:新增 STAFF 最小只读权限迁移,可回滚。
|
||
- API:新增 3 个小程序管理端点;既有后台管理 API 不变。
|
||
- 部署:后端、小程序和数据库迁移有变化;生产更新时必须先备份,再由菜单更新流程执行迁移与后端/小程序发布,未自动部署生产。
|
||
- 工程提交:`b70ada0`,已推送并验证 `HEAD == origin/main`。
|
||
|
||
## 状态
|
||
|
||
M08-C 保持 `DOING`。门店概况、授权房态、订单总览和最小房态操作已完成;下一工程增量继续订单筛选、订单处置和管理员代下单,不移动到 M08-D。
|