Files
qipai/docs/devlogs/2026-08-10-M08-D-Vue平台后台.md
T
2026-08-10 12:28:39 +08:00

185 lines
13 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.
# M08-D Vue 平台后台
## 2026-08-10 运营总览与工作区导航
- `ENGINEERING_DELTA=YES`
- 后台壳层从单一保洁页面升级为“运营总览/保洁运营”可切换工作区;访问令牌分为草稿和已保存值,避免输入过程中逐字符触发请求。
- 新增授权门店运营总览,支持 7/30/90 日周期,展示成功实收与预订金额、订单/活跃/完成、OWNER 下单会员、验券成功/失败、当前房态、支付渠道和每日收入趋势。
- 核心业务导航明确区分已可用的保洁运营与后续门店、订单、会员、设备、支付增量,不把未实现页面伪装成可用入口。
- 新增 `/admin-api/statistics`,与 `/app-api/management/statistics` 共享同一路由处理与仓储权限边界;前端只调用固定 `/admin-api` 基地址。
- 新增 `scripts/check-admin-m08-d.mjs` 并接入 Windows 全量门禁,覆盖页面、统计 API、响应式样式、可用模块导航和后台路由别名。
### 测试证据
- Windows `scripts/dev/windows/test-all.ps1`:64.6 秒退出码 0;后端全测、M08-B/C/D 静态门禁、Vue TypeScript 与生产构建、域名/敏感信息/仓库完整性全部通过。
- WSL 原生临时副本 + MySQL 8.4.1028.3 秒退出码 0`up → verify → down → up → verify` 完成,136 条 up、114 条 verify、130 条 down。
- 后端路由测试同时验证 `/app-api/management/statistics``/admin-api/statistics` 返回一致统计,并保留最长 93 天限制。
- Vue 生产构建成功;已知 Element Plus chunk 超过 500kB、参考 xjar 超过 100MB 和 WSL npm 7 个 high audit 项仍为既有非阻塞提示,未执行破坏性自动升级。
### 变更影响
- 数据库:无迁移、无新增表。
- API:新增后台经营统计别名,鉴权和统计口径不变。
- 后台:新增响应式运营总览与模块切换;保洁工作台功能保持不变。
- 部署:后端与后台静态产物有变化,未自动部署生产。
- 工程提交:`65f2e7c`,已推送并验证 `HEAD == origin/main`
### 状态
M08-D 保持 `DOING`。运营总览与现有保洁工作区已接通;下一工程增量补门店与房间管理页面,不提前进入 M09。
## 2026-08-10 门店与房间管理
- `ENGINEERING_DELTA=YES`
- 新增响应式门店/房间工作区,支持授权门店搜索、营业状态筛选、详情、每周营业时段、Wi-Fi 配置状态、新增、编辑和归档。
- 房间管理支持房号/分类/标签搜索、房态筛选、完整整数分价格配置、标签/图片、启停、运营房态、停用时段和归档。
- 门店列表读取补充营业时段与 `wifiConfigured`,不返回 Wi-Fi 密码;更新接口允许省略 `wifiPassword` 并使用 `COALESCE` 保留原值,避免后台编辑清空既有密码。
- 所有写操作继续复用 M03 的租户、门店范围、capability 与审计边界,前端错误显示保留业务错误码和 traceId。
### 测试证据
- Windows `scripts/dev/windows/test-all.ps1`:63.4 秒退出码 0;后端全测、M08-B/C/D 静态门禁、Vue TypeScript 与生产构建、域名/敏感信息检查均通过。
- WSL 原生临时副本 + MySQL 8.4.1026.5 秒退出码 0`up → verify → down → up → verify` 完成,136 条 up、114 条 verify、130 条 down。
- `backend/tests/store-room.test.mjs` 新增营业时段、Wi-Fi 配置状态与省略密码更新断言;Vue 生产构建成功。
- 既有 Element Plus chunk 超过 500kB、参考 xjar 超过 100MB 和 WSL npm 7 个 high audit 项仍为非阻塞提示,未执行破坏性自动升级。
### 变更影响
- 数据库:无迁移、无新增表。
- API`GET /admin-api/stores` 增加营业时段、Wi-Fi 配置状态及既有门店详情字段;`POST/PUT /admin-api/stores``wifiPassword` 可省略,更新省略时保持原值。
- 后台:新增门店/房间响应式管理入口和完整表单。
- 部署:后端与后台静态产物有变化,未自动部署生产。
- 工程提交:`1ca783e`,已推送并验证 `HEAD == origin/main`
### 状态
M08-D 保持 `DOING`。门店与房间管理增量完成;下一工程增量补后台订单筛选、详情与运营处置页面。
## 2026-08-10 后台订单运营
- `ENGINEERING_DELTA=YES`
- 新增订单运营工作区,支持授权门店与十种订单状态筛选、分页、当前页 CSV 导出和页面内金额/待支付/进行中摘要。
- 新增订单详情抽屉和完整状态流水,展示门店、房间、时段、应收/实收、最近支付渠道/状态、操作来源、操作人、原因和 traceId。
- 接入服务端订单状态机处置、运营备注、时段调整、锁定价/当前价续费和同门店可用房间换房;前端只提交业务动作与原因,不提交目标状态或客户端计算金额。
- 新增 `/admin-api/orders` 列表/详情和 `/admin-api/orders/:orderId/history` 后台别名,与小程序管理端共享仓储的租户、门店范围、并发冲突和审计边界。
### 测试证据
- Windows `scripts/dev/windows/test-all.ps1`:63.5 秒退出码 0;后端全测、M08-B/C/D 静态门禁、Vue TypeScript 与生产构建、域名/敏感信息检查均通过。
- WSL 原生临时副本 + MySQL 8.4.1026.9 秒退出码 0`up → verify → down → up → verify` 完成,136 条 up、114 条 verify、130 条 down。
- `backend/tests/order-query.test.mjs` 覆盖后台列表/详情别名,`backend/tests/order-state.test.mjs` 覆盖后台状态历史别名;Vue 生产构建成功。
- 既有 Element Plus chunk 超过 500kB、参考 xjar 超过 100MB 和 WSL npm 7 个 high audit 项仍为非阻塞提示。
### 变更影响
- 数据库:无迁移、无新增表。
- API:新增订单列表、详情和状态历史的 `/admin-api` GET 别名;既有写接口与权限契约不变。
- 后台:新增订单筛选、导出、详情、状态流水和运营处置工作区。
- 部署:后端与后台静态产物有变化,未自动部署生产。
- 工程提交:`20a292e`,已推送并验证 `HEAD == origin/main`
### 状态
M08-D 保持 `DOING`。订单运营增量完成;下一工程增量补支付、退款与分账运营页面。
## 2026-08-10 支付、退款与分账运营
- `ENGINEERING_DELTA=YES`
- 新增资金运营工作区,展示收款账户、已授权账户、分账接收方和近百笔分账金额,并可按门店范围筛选。
- 接入收款账户、凭据环境引用、授权状态、分账开关、脱敏接收方和全局/门店比例策略维护;页面不读取或回显私钥、APIv3 Key 和真实接收方标识。
- 接入近百笔分账记录、失败码、微信退款、微信账单请求和分账执行;退款金额、可退余额、比例总和、授权状态、生产 Mock 门禁和幂等均由服务端继续校验。
### 测试证据
- Windows `scripts/dev/windows/test-all.ps1`:62.8 秒退出码 0;后端全测、M08-B/C/D 静态门禁、Vue TypeScript 与生产构建、域名/敏感信息检查均通过。
- WSL 原生临时副本 + MySQL 8.4.1026.5 秒退出码 0`up → verify → down → up → verify` 完成,136 条 up、114 条 verify、130 条 down。
- Vue 生产构建成功;既有 Element Plus chunk 超过 500kB、参考 xjar 超过 100MB 和 WSL npm 7 个 high audit 项仍为非阻塞提示。
### 变更影响
- 数据库:无迁移、无新增表。
- API:无新后端路由;Vue 后台接入既有 `/admin-api/pay/**` 配置、退款、对账和分账接口。
- 后台:新增响应式资金运营入口,敏感凭据只接受环境引用。
- 部署:后台静态产物有变化,未自动部署生产。
- 工程提交:`4eac99d`,已推送并验证 `HEAD == origin/main`
### 状态
M08-D 保持 `DOING`。支付、退款与分账运营增量完成;下一工程增量补团购与第三方平台运营页面。
## 2026-08-10 团购与第三方平台运营
- `ENGINEERING_DELTA=YES`
- 新增第三方渠道工作区,支持美团、大众点评、抖音、快手的直订记录、待映射队列、核销记录及平台/门店/状态筛选。
- 接入平台配置和门店/房间资源映射;凭据只登记环境引用,读取接口过滤 secret、token、password、private key、API key 和 credential 等敏感设置键。
- 新增管理员 API 与人工验券别名,继续复用服务端订单金额、租户权限、授权门店、幂等键、券码 SHA-256 和脱敏显示边界。
### 测试证据
- Windows `scripts/dev/windows/test-all.ps1`:63.3 秒退出码 0;后端全测、M08-B/C/D 静态门禁、Vue TypeScript 与生产构建通过;暂存后仓库完整性、敏感信息和空白门禁复核通过。
- WSL 原生临时副本 + MySQL 8.4.1026.2 秒退出码 0`up → verify → down → up → verify` 完成,136 条 up、114 条 verify、130 条 down。
- `backend/tests/third-party.test.mjs` 覆盖管理员 API 验券别名与安全配置读取;Vue 生产构建成功。
- 既有 Element Plus chunk 超过 500kB、参考 xjar 超过 100MB 和 WSL npm 7 个 high audit 项仍为非阻塞提示,未执行破坏性自动升级。
### 变更影响
- 数据库:无迁移、无新增表。
- API:新增 `GET /admin-api/third-party/setup``POST /admin-api/group-vouchers/redeem` 和既有人工验券的管理端对称别名;敏感配置不读取返回。
- 后台:新增响应式第三方渠道运营入口,覆盖记录、配置、映射和验券。
- 部署:后端与后台静态产物有变化,未自动部署生产。
- 工程提交:`7b97808`,已推送并验证 `HEAD == origin/main`
### 状态
M08-D 保持 `DOING`。团购与第三方平台运营增量完成;下一工程增量补会员与员工用户管理页面。
## 2026-08-10 会员与员工用户管理
- `ENGINEERING_DELTA=YES`
- 新增会员与员工用户工作区;会员支持昵称/手机号/ID、状态筛选,展示现金/赠送余额、券、套餐、订单、消费、充值、注册/登录及最近钱包流水。
- 员工支持姓名/手机号/ID、角色和状态筛选,以及创建、角色/门店授权、资料备注、停启和活动会话重置;权限变更继续即时撤销会话并记录审计。
- 后台员工“全部角色”查询新增受限的 `userType=STAFF` 契约,避免通用用户列表将顾客混入员工运营视图。
### 测试证据
- Windows `scripts/dev/windows/test-all.ps1`:63.5 秒退出码 0;后端全测、M08-B/C/D 静态门禁、Vue TypeScript 与生产构建通过;暂存后仓库完整性、敏感信息和空白门禁复核通过。
- WSL 原生临时副本 + MySQL 8.4.1025.9 秒退出码 0`up → verify → down → up → verify` 完成,136 条 up、114 条 verify、130 条 down。
- `backend/tests/user-management.test.mjs` 新增 STAFF-only 后台列表断言,会员路由回归与 Vue 生产构建通过。
- 既有 Element Plus chunk 超过 500kB、参考 xjar 超过 100MB 和 WSL npm 7 个 high audit 项仍为非阻塞提示。
### 变更影响
- 数据库:无迁移、无新增表。
- API`GET /admin-api/users` 新增可选且只允许 `STAFF``userType` 查询参数;其他会员与员工接口不变。
- 后台:新增响应式会员/员工入口,继续只显示脱敏手机号和 IP。
- 部署:后端与后台静态产物有变化,未自动部署生产。
- 工程提交:`93f06d2`,已推送并验证 `HEAD == origin/main`
### 状态
M08-D 保持 `DOING`。会员与员工用户管理增量完成;既有保洁工作台已覆盖计划项,下一工程增量补设备运营页面。
## 2026-08-10 设备运营后台
- `ENGINEERING_DELTA=YES`
- 启用原先禁用的设备导航,新增设备资产、控制通道、Sub-1G 父子拓扑、开放告警和维护记录工作区。
- 接入设备入库、控制箱/智慧插座通道绑定、701C/701G 门锁父子绑定、巡检/维修/更换记录。
- 接入临时开门、全屋通断电和智慧插座通断电;危险操作二次确认,结果明确为命令受理并等待 ACK,不把 MQTT 发布当作现场成功。
### 测试证据
- Windows `scripts/dev/windows/test-all.ps1`:63.8 秒退出码 0;后端全测、M08-B/C/D 静态门禁、Vue TypeScript 与生产构建通过;暂存后完整性、敏感信息和空白门禁通过。
- WSL 原生临时副本 + MySQL 8.4.1025.8 秒退出码 0`up → verify → down → up → verify` 完成,136 条 up、114 条 verify、130 条 down。
- `backend/tests/device.test.mjs``device-control.test.mjs` 与 Vue 生产构建通过;既有大 chunk、大参考文件和 7 个 high audit 项仍为非阻塞提示。
### 变更影响
- 数据库/API:无迁移、无新路由,Vue 后台复用既有设备资产、拓扑、维护和控制 API。
- 后台:新增响应式设备运营入口。
- 部署:后台静态产物有变化,未自动部署生产。
- 工程提交:`5c9fd69`,已推送并验证 `HEAD == origin/main`
### 状态
M08-D 保持 `DOING`。设备运营增量完成;下一工程增量补多小程序与租户配置页面。