Files
qipai/docs/db-changelog/2026-08-10-M08-C-management.md
T
2026-08-10 10:53:26 +08:00

31 lines
2.5 KiB
Markdown
Raw 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-08-10 M08-C 管理员/员工权限迁移
- 版本:`2026081001_m08c_staff_management_access`
- up:为所有有效 STAFF 角色补 `profile.read``store.operation.read`,不授予写权限。
- down:只删除 STAFF 的这两项角色权限,不删除角色、用户或门店授权。
- verify:允许空 STAFF 角色集合;存在 STAFF 角色时要求每个有效角色同时拥有两项权限。
- WSL MySQL 8.4.10 已完成 `up → verify → down → up → verify`
## 订单处置与代下单增量
- 无 schema 迁移。
- 代下单前查询 `qipai_users.tenant_id/status`,只接受当前租户的 `ACTIVE` 用户,避免全局用户外键造成跨租户关联。
- 管理员代下单的 `qipai_order_status_history.actor_id/source` 记录实际管理员与 `ADMIN``metadata.targetUserId` 记录目标会员。
- 同事务新增 `qipai_audit_logs.action = ORDER_CREATED_ON_BEHALF`,metadata 记录目标会员、门店和房间。
- WSL MySQL 8.4.10 已验证管理员归因、审计落库、跨租户目标会员拒绝,以及完整 `up → verify → down → up → verify` 往返。
## 会员检索与员工概况增量
- 无 schema 迁移。
- 授权门店会员范围由“该门店存在钱包账户”扩展为“该门店存在钱包账户或历史 OWNER 订单”,终态订单撤销当前访问后仍可用于历史会员归属;条件使用显式括号保持租户隔离。
- 会员实付聚合状态改为当前订单状态 `PAID/RESERVED/IN_PROGRESS/FINISHED`,不再引用旧状态 `IN_USE/COMPLETED`
- 会员、员工、订单和保洁列表分页在服务端夹取整数后拼入 `LIMIT/OFFSET`,其余过滤条件继续参数化;修复 MySQL 8.4.10 与当前 Node 驱动对分页占位符的兼容错误。
- WSL MySQL 8.4.10 已验证授权门店历史 OWNER 订单会员发现、STAFF 类型限定与完整迁移往返。
## 保洁与设备运营增量
- 无 schema 迁移。
- 管理员设备命令在既有 `qipai_audit_logs` 写入 `DEVICE_COMMAND_REQUESTED`,actor 记录真实管理员/员工/顾客或系统来源,metadata 记录门店、房间、设备、设备类型、命令类型和可选订单。
- 审计发生在设备命令创建/发布前;命令最终状态继续以 `qipai_iot_commands``PUBLISHED/ACKED/FAILED/TIMEOUT` 及设备回包为准,不把“已发布”表述为“设备已执行”。
- WSL MySQL 8.4.10 已实际验证管理员临时开门的 IoT 命令落库、MQTT Mock 发布和操作人审计归因,并完成 136 up、114 verify、130 down 的完整往返。