Files
qipai/docs/feature-status.md
T
2026-08-10 14:58:50 +08:00

102 lines
41 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.
# 功能状态
> 只能使用 TODO / DOING / PARTIAL / BLOCKED_INTERNAL / BLOCKED_EXTERNAL / DONE。
> 2026-08-10 M08-B 增量:工程提交 `90e230c` 为 `SYS-001`、`CLN-002`、`CLN-005` 补齐现场联调多次执行记录追溯;历史已纳入搜索、v2 快照(兼容 v1 导入)、CSV、交接报告与归档包。M08-B 可独立工程内容完成,真实商户/微信/硬件验收保持 `BLOCKED_EXTERNAL`,游标进入 M08-C。
> 2026-08-10 M08-C 增量:工程提交 `b70ada0` 为 `AUTH-001`、`AUTH-002`、`ROOM-002`、`ADM-001` 建立管理员/员工小程序首段闭环;角色入口、授权门店、完整房态、订单总览、STAFF 只读、管理员房态写入与审计、可回滚权限迁移均已通过 Windows 全量和 WSL MySQL 8.4.10 往返。M08-C 保持 `DOING`,继续订单处置与代下单。
> 2026-08-10 M08-C 增量:工程提交 `566e61b` 为 `ORD-001`、`AUTH-002`、`ADM-001` 补管理员订单筛选、状态处置、备注和代下单;服务端门店范围、写权限、同租户有效会员校验、管理员状态历史/审计归因及跨租户拒绝均通过 Windows 全量和 WSL MySQL 8.4.10 往返。M08-C 保持 `DOING`,继续会员与员工运营。
> 2026-08-10 M08-C 增量:工程提交 `1b0839e` 为 `MEM-001`、`AUTH-002`、`ADM-001`、`ORD-001` 补管理员会员检索/概况、STAFF 员工概况和代下单会员选择;会员范围同时接受授权门店钱包或历史 OWNER 订单,员工接口强制 STAFF 类型并脱敏手机号/IP,MySQL 8.4 分页兼容问题同步修复。Windows 全量与 WSL MySQL 8.4.10 往返通过,M08-C 继续保洁与设备运营。
> 2026-08-10 M08-C 增量:工程提交 `65932a8` 为 `CLN-002`、`CLN-003`、`CLN-005`、`DEV-003`、`ROOM-002`、`ADM-001` 补管理员保洁与设备运营页;授权门店可查看保洁任务/统计并验收、驳回、免清洁,查看设备拓扑/告警/维护并临时开门、控制箱/插座电控。设备命令新增实际操作人审计归因,Windows 全量与 WSL MySQL 8.4.10 往返通过。M08-C 继续管理员验券与经营统计。
> 2026-08-10 M08-C 增量:工程提交 `ce52f07` 为 `GRP-003`、`REP-001`、`ADM-001` 补管理员扫码/手输验券、脱敏核销记录和门店 7/30/90 日经营统计;金额由服务端订单推导,写权限与门店范围、操作人归因、券码哈希/掩码和成功支付统计口径均通过 Windows 全量与 WSL MySQL 8.4.10 往返。M08-C 可独立工程内容完成,游标进入 M08-D。
> 2026-08-10 M08-D 增量:工程提交 `65f2e7c` 为 `REP-001` 建立 Vue 后台授权门店运营总览;7/30/90 日成功实收、订单、会员、房态、渠道、趋势与验券统计使用 `/admin-api/statistics` 同源权限边界,并从总览直达既有保洁工作台。Windows 全量、Vue 生产构建与 WSL MySQL 8.4.10 往返通过,M08-D 继续门店与房间管理。
> 2026-08-10 M08-D 增量:工程提交 `1ca783e` 为 `STORE-001`、`ROOM-001` 建立 Vue 后台门店/房间工作区;门店筛选、详情、营业时段、Wi-Fi 配置状态、安全保留原密码的编辑,以及房间定价、标签、图片、启停、运营房态、停用时段和归档均复用既有租户/门店范围与审计边界。Windows 全量、Vue 生产构建与 WSL MySQL 8.4.10 往返通过,M08-D 继续后台订单管理。
> 2026-08-10 M08-D 增量:工程提交 `20a292e` 为 `ORD-001` 建立 Vue 后台订单运营工作区;授权门店/状态筛选、分页、当前页导出、详情、支付摘要、状态流水、受控状态机处置、运营备注、时段调整、续费计价和同门店换房均复用既有服务端权限、并发冲突与审计边界。Windows 全量、Vue 生产构建与 WSL MySQL 8.4.10 往返通过,M08-D 继续支付、退款和分账运营。
> 2026-08-10 M08-D 增量:工程提交 `4eac99d` 为 `FRN-001`、`BKG-007` 建立 Vue 后台资金运营工作区;收款账户环境引用/授权、脱敏分账接收方、比例策略、分账记录,以及微信退款、账单请求和生产 API/非生产 Mock 分账均接入既有管理员权限、授权门禁、幂等键和服务端金额校验。Windows 全量、Vue 生产构建与 WSL MySQL 8.4.10 往返通过,M08-D 继续团购与第三方运营。
> 2026-08-10 M08-D 增量:工程提交 `7b97808` 为 `GRP-002`、`GRP-003` 建立 Vue 后台团购与第三方渠道工作区;直订/核销记录、异常筛选、平台配置、环境凭据引用、服务端敏感设置过滤、门店/房间映射,以及 API/人工验券均复用既有租户权限、券码哈希脱敏和幂等边界。Windows 全量、Vue 生产构建与 WSL MySQL 8.4.10 往返通过,M08-D 继续会员与员工用户管理。
> 2026-08-10 M08-D 增量:工程提交 `93f06d2` 为 `MEM-001`、`STAFF-001`、`BKG-002` 建立 Vue 后台会员与员工用户工作区;会员聚合余额、权益、订单、充值与流水沿用租户/授权门店范围,员工列表严格限定 STAFF 类型,并接入创建、角色/门店授权、停启、备注和会话重置。Windows 全量、Vue 生产构建与 WSL MySQL 8.4.10 往返通过;既有保洁工作台已覆盖计划项,M08-D 继续设备运营。
> 2026-08-10 M08-D 增量:工程提交 `5c9fd69` 为 `DEV-003`、`BKG-004` 建立 Vue 后台设备运营工作区;设备入库、控制通道、Sub-1G 父子拓扑、开放告警、维护记录,以及门锁、控制箱和智慧插座现场命令均复用既有门店范围、控制目标唯一性、审计与 MQTT 命令状态机。Windows 全量、Vue 生产构建与 WSL MySQL 8.4.10 往返通过,M08-D 继续多小程序/租户配置。
> 2026-08-10 M08-D 增量:工程提交 `c7f27bc` 为 `BKG-010`、`CFG-001` 建立 Vue 后台多小程序/租户配置工作区;租户管理员仅可维护本租户已有绑定,新增逻辑应用或绑定要求平台管理权限,默认门店强制同租户,品牌/主题/分享/扩展配置写入审计,AppSecret、支付密钥和证书不进入 API。Windows 全量、Vue 生产构建与 WSL MySQL 8.4.10 往返通过,M08-D 继续广告与装修管理。
> 2026-08-10 M08-D 增量:工程提交 `c1c0242` 为 `ADV-001`、`UI-001`、`BKG-001` 建立 Vue 后台媒体素材、装修版本与广告投放工作区;新增安全列表和广告更新 API,门店运营不能上传租户公共素材或编辑其他范围广告,广告图片仅可引用租户公共或当前门店素材。`2026081002` 将素材去重键修正为租户、作用域和 checksumWindows 全量与 WSL MySQL 8.4.10 的 138 up、117 verify、134 down 往返通过,M08-D 继续加盟申请与跟进运营。
> 2026-08-10 M08-D 增量:工程提交 `aa4a6bd` 为 `BKG-008`、`FRN-001` 建立小程序加盟申请和 Vue 后台跟进队列;申请按 AppID/tenant 解析、clientRequestId 幂等,后台支持状态/负责人/关键字筛选、详情、同租户有效员工分派、下次跟进和受控状态机,跟进人与审计完整且联系电话不进入审计元数据。Windows 全量与 WSL MySQL 8.4.10 的 141 up、120 verify、137 down 往返通过,M08-D 继续审计日志与系统配置。
> 2026-08-10 M08-D 增量:工程提交 `7e170e8` 为 `AUTH-002`、`TEN-001` 建立租户级安全审计与系统配置工作区;审计支持操作/资源/人员/时间筛选、IP 和递归敏感 metadata 脱敏、详情和当前页 CSV,系统概况展示租户、门店、用户、会话、应用绑定与最新迁移。租户管理员跨租户和启停操作被拒绝,平台跨租户必须显式指定 tenantId。Windows 65.6 秒全量与 WSL MySQL 8.4.10 的 141 up、120 verify、137 down 往返通过,M08-D 继续后台登录与会话入口。
> 2026-08-10 M08-D 增量:工程提交 `0511008` 为 `AUTH-001`、`AUTH-002`、`BKG-002` 建立正式后台密码登录和可撤销会话入口;密码使用 scrypt,连续失败锁定,刷新令牌仅存 SHA-256 并单次轮换,凭据重置撤销旧会话。Vue 后台替换手工粘贴令牌,401 单飞续期失败后清理本地会话,菜单从服务端权限生成。Windows 全量主体、敏感信息/完整性门禁与 WSL MySQL 8.4.10 的 144 up、124 verify、140 down 往返通过;M08-D 可独立工程内容完成,游标进入 M09-A。
> 2026-08-10 M09-A-RECOVERY:工程提交 `9b2f055` 为 `CLN-002`、`CLN-005` 完成保洁任务事务与并发收口。claim/assign/submit/reject/complete 将状态、负责人/成员与事件纳入同一事务,事件冲突会整体回滚;重指派覆盖 WAITING/CLAIMED/REJECTED 并清理旧照片、驳回原因和过期时间字段;超时回收使用 MySQL `FOR UPDATE SKIP LOCKED`、只处理本批并保护已结算成员。Windows 后端全量测试和 WSL MySQL 8.4.10 的 144 up、124 verify、140 down 往返通过,实测并发 claim 单赢家、相同 trace 不重复事件、订单 FINISHED 唯一建任务。M09-A-RECOVERY 完成,按 V5.6 固定队列进入 M06-C-R1CLN-002/CLN-005 因后续 M09 收口与外部现场验收仍保持 `PARTIAL`。
| ID | 功能 | 模块子阶段 | 状态 | 最近提交 | 测试/验收证据 | 阻塞原因 | 下一步 |
|---|---|---|---|---|---|---|---|
| ENV-001 | 固定 Windows 工作区 | M00-A/M00-B | DONE | 远端 HEAD | 已确认 `D:\qipai`Git 根、main 分支、固定 origin 和 push 校验通过。 | - | 后续每模块继续复检。 |
| REF-001 | 参考资料完整纳管 | M00-A | PARTIAL | `7bb4338` | 已生成哈希清单、脱敏日志、页面地图、接口线索和旧数据库结构清单;含秘密/依赖/真实数据风险的原始包和 SQL 已移出 Git 跟踪;仓库完整性门禁已覆盖意外 untracked、嵌套 Git 和 forbidden tracked 文件。 | 后续仍需按模块生成正式源码/迁移,旧 xjar 需大文件策略。 | 进入 M00-B/M00-C 前继续保持原包忽略和摘要可追溯。 |
| SCM-001 | 模块完成即完整推送 | M00-B/M00-C | PARTIAL | `ef0edda` | 首次 main push 成功,`HEAD == origin/main` 校验通过;推送脚本已生成;仓库完整性脚本已升级为提交前门禁并接入 `test-all.ps1``push-module.ps1` 已改为先暂存显式路径再运行门禁;状态文档枚举和临时占位检查已接入。 | 后续模块仍需逐次执行并记录。 | 继续在每轮提交前执行完整性、敏感信息、大文件、状态文档和远端一致性检查。 |
| WSL-001 | WSL 隔离辅助验证 | M00-C | PARTIAL | `a690e85` | WSL 基础脚本已执行通过;本地 MQTT 服务级核验通过;认证/ACL 冒烟脚本入口、配置自检、可选 TLS/遗嘱/重复消息探测入口已生成;V5.0 点名的 WSL EMQX 检查/启动/停止入口已补齐。 | 正式后端/后台尚未生成,无法执行完整 Linux 构建;MQTT 本地账号未配置,认证/ACL/TLS/遗嘱/幂等未验收;生产 EMQX 不由 WSL 脚本管理。 | M01/M09 生成项目后在 WSL 原生临时副本执行完整构建;配置本地 MQTT 最小权限账号后执行冒烟和可选探测。 |
| API-001 | 固定 HTTPS API 域名 | M00-E/M01/M08/M10 | PARTIAL | `1192dcb` | 已新增 Windows 检查脚本、Ubuntu 菜单检查和固定域名 Nginx 模板;M01-A 健康接口、编译和本地 HTTP 检查通过;M01-B 的连接池、迁移 CLI、旧表兼容读取、整数分转换已通过契约测试,并在 WSL MySQL 8.4.9 的空库和脱敏旧库副本完成 `up/verify/down/up/verify`,异常退出清理后临时库与账号均为 0。 | DNS/HTTPS 生产验证、Ubuntu 24.04 生产运行时、业务接口和鉴权未验收。 | 进入 M02 身份与权限;后续在 M10 接入生产域名、证书和 Nginx 真实验收。 |
| ASYNC-001 | MySQL outbox 与轻量任务 worker | M01-C | DONE | `2b90d1f` | outbox/任务迁移、幂等键、`FOR UPDATE SKIP LOCKED` 领取、租约恢复、指数退避、人工补偿状态和 PM2 worker 已实现;Windows 契约测试与 WSL MySQL 8.4.9 往返迁移、重复入队、重启后领取验证通过。 | 具体通知、订单、设备、退款和统计 handler 在对应业务模块接入。 | M02 起按业务事务写入 outbox/任务并注册真实 handler。 |
| TLS-001 | Nginx 与证书自动化 | M00-E/M10 | PARTIAL | `4cb3ab6` | 已生成 Nginx 模板、Certbot 命令说明和菜单第 4 项检查,可检查模板、站点启用、TLS、健康端点、证书文件、续期配置和 `certbot.timer`。 | 证书申请/续期 dry-run、80/443 生产验证未执行。 | 在生产 Ubuntu 执行证书签发、续期 dry-run 和 Nginx 安装记录。 |
| WXNET-001 | 微信合法域名与真机验证 | M00-E/M08/M10 | PARTIAL | `4ac2c96` | 小程序配置继续固定 `https://api.txyundm.cn/app-api``scripts/check-miniapp-m08-a.mjs` 已检查不存在 localhost、127.0.0.1 和 HTTP API。 | 微信后台合法域名和真机体验版未验证。 | M08-A 后续补真机登录、上传/下载、下单和设备接口冒烟;M10 做生产验收。 |
| OPS-001 | 固定 `/opt/apps` 目录 | M00-D/M10 | PARTIAL | `292ab7f` | `scripts/setup/init-layout.sh` 已生成目录布局、uploads 目录和 manifestWSL 检查脚本通过,未在生产 Ubuntu 执行。 | 生产操作未执行。 | 由管理员在 Ubuntu 菜单执行并记录结果。 |
| OPS-002 | 单仓库 Gitea 推送与拉取部署 | M00-B/M10 | PARTIAL | 远端 HEAD | Windows 到 Gitea `origin/main` 首次 push 与远端校验通过。 | 生产服务器只读拉取部署尚未验证。 | M00-D/M00-E 继续完善生产拉取、菜单部署和状态检查。 |
| OPS-003 | 整仓发布清单 | M00-E/M10 | PARTIAL | `59d92c0` | `deploy-business.sh --dry-run` 可在 Windows/WSL 验证当前 HEAD 的 release manifest 结构;`check-release-manifest.ps1` 已接入 `test-all.ps1`;正式构建待项目生成。 | 后端/后台尚未生成,生产菜单未执行。 | M01/M09 后接入真实构建结果,并在生产菜单 2 生成真实 release manifest。 |
| OPS-004 | 菜单式更新与环境监测 | M00-E/M10 | PARTIAL | `292ab7f` | `setup.sh` 已接入初始化、更新、MQTT、HTTPS、状态、备份、恢复、回滚和诊断菜单;`--backup-status` 已在 WSL 验证,可检查备份工具、目录和模板。 | 未在生产 Ubuntu 执行;真实备份配置未启用。 | 生产执行后补部署记录、真实备份和恢复演练记录。 |
| IOT-001 | MQTT Broker 生产部署 | M00/M06 | PARTIAL | `d01f771` | 菜单 3 已支持 Ubuntu 24.04 amd64 原生安装/更新与复检;正式 Topic ACL 已固定;后端实现 MQTT.js 3.1、QoS 1、持久会话、自动重连、订阅恢复、健康检查、消息上限和真实硬件烟测运行器;Windows 全量测试通过,WSL EMQX 5.8.9 服务级检查通过。 | 缺生产 EMQX 安装、正式账号、ACL/端口/备份验收;WSL 本地账号未配置,真实硬件烟测按预期 SKIP。 | 由管理员在生产菜单 3 执行并登记结果;提供生产账号、DeviceID 和实物后执行 `node dist/devices/hardware-smoke-runner.js`。 |
| SYS-001 | 微信原生小程序 | M00-C/M08 | PARTIAL | `96c5fa4` | 微信原生模板已接入顾客端登录态、选店跳转、门店详情、房间列表、报价、预占、测试支付、订单生产微信预支付调起、充值微信支付调起、余额支付、优惠券/套餐下单抵扣参数与可视化选择器、受控 Wi-Fi、订单列表、订单详情、状态历史、取消入口、订单权限开门入口、续费、同门店换房、分享口令生成、个人中心余额/权益/账单汇总、充值计划/充值单入口、优惠券/套餐明细,以及保洁端任务大厅、我的任务、接单、开始、照片上传、提交验收、驳回补做入口、统计和管理侧验收/驳回/免清洁/批量验收/批量驳回/批量免清洁/指派/结算/多人协作/发放 API;后端已接入微信商家转账适配、转账中间态落库、主动轮询同步、微信转账通知回调、微信转账预检、结算详情、管理统计、员工角色筛选、统计趋势、统计按保洁员筛选、待结算候选筛选、任务事件流水、保洁员微信绑定状态、结算转账状态筛选和非生产 Mock 门禁;后台已建立保洁运营工作台,可维护任务协作者、导出单任务成员分账、查看任务详情、照片预览、操作流水和协作分账、批量验收/批量驳回待验收任务、单条或批量标记任务免清洁、导出当前任务列表、单任务详情和单任务操作流水、查看并导出结算单详情、预览并导出待结算候选任务、导出结算列表、批量同步微信转账状态、按转账状态筛选结算单、在结算详情和导出中查看微信确认参数、在微信转账预检中查看并导出凭据/授权/通知 URL/平台证书/OpenID 资料和检查项、发起真实转账前自动预检并在阻断项未处理时禁用 API 发起、统计明细、每日趋势、保洁员绩效排行、保洁员端统计看板、导出当前统计结果、管理保洁员手机号/资料完整度、导出当前保洁员列表、导出当前待补资料保洁员清单、通过保洁员选择器完成任务指派/协作者/结算生成人员选择,按门店和保洁员筛选任务/结算/统计/候选,通过首屏运营待处理入口跳转待验收、驳回补做、待确认结算和待发放队列,并可导出待处理队列摘要,查看微信转账真实商户前置条件,提供真实商户/微信/转账/硬件现场联调清单并支持本地记录、场次信息、关键字搜索、筛选结果 CSV 导出、状态筛选、联调负责人筛选、联调负责人看板、联调执行阶段看板、联调期限记录、联调逾期清单、批量标记、阻断摘要复制、JSON 快照导入导出、分类进度展示、验收结论复制、最后更新时间、证据记录、待补证据清单、联调交接报告、联调风险清单导出、联调归档包导出、收口签署字段和收口归档门禁;`admin npm run build``node scripts/check-admin-m08-b.mjs` 通过。 | M08-A 真机联调缺微信后台/商户/硬件条件;M08-B 真实商户现场执行和更完整管理界面待继续。 | 继续 M08-B,补更完整保洁运营管理界面和真实商户现场执行记录。 |
| CFG-001 | 小程序品牌自定义 | M02-A/M03/M08 | PARTIAL | `c7f27bc` | 已建立 AppID/tenant 品牌配置和 bootstrapVue 后台可维护品牌名称、Logo、主题色、客服/加盟电话、分享标题/图片、默认门店和非敏感扩展配置,默认门店强制同租户,更新有审计。 | 媒体选择器与多 AppID 真机展示仍需后续验收。 | M08-D 后续接入媒体资产选择;M10 做多 AppID 真机验收。 |
| BKG-010 | 后台多小程序管理 | M02-A/M08/M10 | PARTIAL | `c7f27bc` | Vue 后台已提供逻辑应用与租户绑定列表、启停、默认应用和品牌配置;租户管理员只能改本租户配置,平台管理员才可新增应用/绑定;AppSecret、支付密钥和证书始终只在服务端环境配置。 | 多 AppID 微信后台配置和真机登录未验证。 | M10 配置真实 AppID/AppSecret 并验证租户选择、品牌和登录隔离。 |
| AUTH-001 | 多端统一小程序身份 | M02-B/M02-C/M08 | PARTIAL | `0511008` | 已实现微信 code 身份、租户/AppID 隔离 JWT 与可撤销会话,并新增后台租户代码/账号/scrypt 密码登录、短期访问令牌、刷新轮换、当前会话和注销;禁用、角色/门店范围、凭据更新及管理员重置均使旧会话失效。 | 缺真实 AppSecret 真机联调和生产后台账号验收。 | M10 使用真实微信与生产后台账号完成端到端登录、续期和注销验收。 |
| AUTH-002 | 多级权限 | M02-B/M02-C/M08 | PARTIAL | `0511008` | 已建立六类角色、权限目录、用户角色和门店范围;管理接口执行 capability、租户和门店范围校验,后台菜单由服务端 access profile 生成,401 续期失败清理会话,关键写操作记录审计。 | 真实生产角色矩阵和跨租户平台账号尚未验收。 | M09 继续复用权限边界;M10 用生产角色矩阵复验菜单与服务端越权拒绝。 |
| CLN-001 | 保洁人员管理 | M08-B/M09 | PARTIAL | `M08-B保洁员待补资料导出增量` | `CLEANER` 角色已接入 `cleaning.task.read/write``cleaning.statistics.read`,保洁接口按登录态、capability 和门店范围裁剪任务大厅;后台已可按 `CLEANER` 角色筛选员工,创建保洁员,编辑姓名/手机号/门店范围/备注,启停账号并重置会话;员工列表返回头像 URL 和微信小程序 openid 绑定状态,后台展示“已绑微信/未绑微信”和资料完整度标签,并复用该列表作为任务指派、协作者管理和生成结算单的可搜索保洁员选择源;保洁员管理页可导出当前筛选页 CSV,带出资料完整度、微信绑定、门店范围、脱敏手机号、最近登录/IP 和备注,也可单独导出待补资料清单,列出未绑定微信、未配置门店范围和缺姓名等缺口。 | 真实商户现场联调和更完整管理界面仍待继续。 | 继续 M08-B/M09,补更完整保洁运营管理界面。 |
| CLN-002 | 保洁任务大厅 | M08-B/M09 | PARTIAL | `96c5fa4` | 新增 `qipai_cleaning_tasks``qipai_cleaning_task_events``GET /app-api/cleaning/tasks/hall``GET /app-api/cleaning/tasks/mine`、接单、开始、照片上传、提交验收、驳回补做接口;订单 `FINISHED` 时同事务幂等创建 `WAITING` 保洁任务;管理侧已支持任务查询、按状态/门店/负责人或协作者筛选、任务详情、照片预览、任务事件流水、任务详情协作分账、指派、验收、驳回、免清洁、批量验收、批量驳回、批量免清洁、超时回收、协作者查看/添加/移除、待结算候选筛选与后台预览/导出、正式结算单生成/确认、发放成功标记、发放失败记录、微信转账发放、转账预检、主动同步、批量同步、微信通知回调、结算单详情、结算详情导出、结算转账状态筛选、微信确认参数展示与导出、管理统计、每日趋势、统计按保洁员筛选和保洁员资料管理;小程序 `pages/cleaner/tasks` 已调用真实 app-api 并支持相机/相册上传;后台 `admin/` 已提供任务筛选、当前任务列表导出、单任务详情导出、单任务流水导出、单任务成员导出、待验收任务多选批量验收/驳回、可免清洁任务多选批量标记、保洁员选择器指派、验收、驳回、免清洁、超时回收、任务成员协作管理、任务详情操作流水和协作分账、结算详情、结算详情导出、待结算候选预览导出、结算列表导出、结算批量同步微信状态、转账状态筛选、微信确认参数展示与导出、统计明细、每日趋势、保洁员绩效排行、保洁员端统计看板、统计保洁员筛选、保洁员资料、待补资料导出、手机号维护、微信绑定状态、结算微信转账预检资料展示导出和转账前自动拦截界面、运营待处理快捷入口、运营待处理导出、真实商户/微信/转账/硬件现场联调清单、联调检查项搜索、联调筛选结果导出与筛选清除、联调状态筛选、联调负责人筛选、联调负责人看板、联调执行阶段看板、联调期限记录、联调逾期清单、联调批量标记、联调阻断摘要复制、联调场次信息记录、联调 JSON 快照导入导出、联调分类进度、联调验收结论复制、联调更新时间、联调证据记录、待补证据清单、联调交接报告、联调风险清单导出、联调归档包导出、收口签署字段和收口归档门禁。 | 真实商户现场执行和更完整管理界面仍待继续。 | 继续 M08-B,补更完整保洁运营管理界面。 |
| CLN-003 | 保洁统计 | M08-B/M09 | PARTIAL | `642659c` | 新增 `GET /app-api/cleaning/stats`,返回当前保洁员负责人/协作者任务状态计数、任务总数、完成数、驳回数、完成率、待结算金额和已结算金额,小程序展示已抢、进行、待验、完成、任务总数、完成率、驳回、待结算和已结算金额;管理侧新增 `GET /admin-api/cleaning/statistics`,按租户、门店范围、日期、门店和保洁员筛选返回状态分布、门店明细、免清洁统计、结算口径、成员分账排行和每日趋势,保洁员筛选同时覆盖负责人/协作者任务口径、结算单口径和每日已发放金额;后台首屏汇总改为使用管理侧统计接口,统计页支持今日、近7天、本月快捷周期、每日趋势条形展示、免清洁汇总/门店/趋势展示和可搜索保洁员筛选,任务/结算/统计列表支持门店和保洁员筛选以辅助定位统计异常,并可导出当前筛选条件下的汇总、任务状态、结算口径、每日趋势、门店明细、免清洁数量和成员分账 CSV。 | 真实商户现场联调和更完整管理界面待继续。 | M08-B/M09-C 补更完整管理界面。 |
| CLN-005 | 保洁驳回/免清洁 | M08-B/M09 | PARTIAL | `eb838f5` | 已支持管理侧驳回、批量驳回和保洁员驳回补做;已新增 `POST /admin-api/cleaning/tasks/:taskId/exempt`,后台任务列表提供免清洁按钮、批量免清洁和 `EXEMPT` 筛选,仓储将可处理任务置为 `EXEMPT`、奖励归零并移除未结算协作者;待结算候选继续只取 `COMPLETED` 且未结算任务,免清洁任务不进入结算;管理统计 summary、门店明细、每日趋势和统计导出均新增免清洁数量,便于核对不结算口径。 | 真实商户现场执行仍待继续。 | 继续 M08-B/M09,补现场验收记录和更完整运营管理界面。 |
| STAFF-001 | 员工账号 | M02-D/M08 | PARTIAL | `93f06d2` | 已实现创建员工、分配角色/门店、禁用、备注、重置会话和审计;管理员小程序已展示员工概况,Vue 后台可按角色/状态搜索并完成完整生命周期管理,权限变化即时撤销活动会话。 | 真实员工微信绑定和生产账号生命周期验收待补。 | M10 以真实员工账号验证绑定、门店切换、禁用和重新登录。 |
| BKG-002 | 后台用户管理 | M02-D/M08 | PARTIAL | `0511008` | 已实现分页筛选、注册/登录时间、状态、角色、门店范围、手机号/IP 脱敏及会员/STAFF 分栏;租户管理员可为同租户有效 STAFF 设置唯一登录名和强密码,更新凭据会撤销其活动会话且不返回密码哈希。 | 尚缺平台级跨租户用户视图和真实生产数据验收。 | M10 以生产平台/租户账号复验跨租户用户视图、凭据重置和审计。 |
| TEN-001 | 多门店支持 | M02/M03 | PARTIAL | `15139b3` | 门店 CRUD 与门店管理员数据范围已实现;跨门店写操作在 Windows 和 WSL MySQL 实测被拒绝。 | 地图选店、前端切换与完整订单数据范围待后续阶段。 | M03-C 接入地图选店,M04 起业务资源继承门店范围。 |
| STORE-001 | 门店运营配置 | M03-A/M08 | PARTIAL | `1ca783e` | 已实现地址、经纬度、营业状态、每周营业时间、时区、客服电话、Wi-Fi、通知地址和排序;Vue 后台支持授权范围内门店筛选、详情、新增、编辑和归档,列表只返回 Wi-Fi 是否已配置,编辑留空不会清除原密码。 | 通宵场、延时关灯和清洁策略仍需与订单/设备联动补齐。 | M08-D 后续页面继续复用门店选择;M10 做生产配置验收。 |
| ROOM-001 | 房间配置 | M03-A/M04/M08 | PARTIAL | `1ca783e` | 已实现房型、整数分价格、工作日/节假日/通宵/全天价、最低消费、押金、最低时长、提前规则、禁用时段、标签、图片和软删除;Vue 后台支持筛选、新增、完整编辑、配置启停、运营房态、停用时段和归档。 | 节假日日历与真实运营价格复算仍需生产验收。 | M08-D 订单页复用房间信息;M10 做生产数据验收。 |
| ADV-001 | 广告管理 | M03-B/M08 | PARTIAL | `c1c0242` | 已实现平台、租户、门店三级广告,素材归属、投放时间、跳转、排序和范围权限均由后端校验;Vue 后台可新增、编辑、排期、排序、上下架并预览图片,门店广告只能引用公共或本店素材。 | 小程序有效期投放展示和加盟广告落地页待继续。 | M08-A/M08-D 接入小程序投放与加盟内容。 |
| BKG-001 | 后台广告管理 | M08 | PARTIAL | `c1c0242` | Vue 后台已提供素材上传/预览、平台/租户/门店广告新增编辑、投放排期、排序和状态管理;门店运营不能创建租户公共素材或越权修改广告。 | 小程序实际展示与真实运营素材验收待补。 | 接入小程序有效广告读取与页面渲染。 |
| UI-001 | 门店装修和多套模板 | M03-B/M08 | PARTIAL | `c1c0242` | 已实现装修草稿版本、Schema 版本、组件白名单、发布和旧版本归档;Vue 后台可按门店创建组件化草稿、回看 JSON 和发布/回滚历史版本。 | 尚缺拖拽式可视化预览及小程序模板渲染。 | M08-A/M08-D 接入装修读取和组件渲染。 |
| MAP-001 | 地图选店和最近门店 | M03-C/M08 | PARTIAL | `4ac2c96` | 已实现 AppID/tenant 隔离门店发现、城市/营业筛选、按门店时区判断营业中、后端 Haversine 距离排序;小程序支持定位和手工城市降级,并可从门店卡片进入公开门店详情与房间列表。 | 地图 SDK 可视化和真机定位授权尚未验收。 | M08-A 继续补真机定位、地图展示和门店装修渲染。 |
| QR-001 | 门店/房间场景码与 NFC | M03-D/M08 | PARTIAL | `d563078` | 已实现场景码生成、重建失效、撤销、扫码统计和二维码/NFC 统一页面解析;返回权限固定为空,旧码失效已在 MySQL 8.4.9 实测。 | 真实微信小程序码图片生成依赖可用 AppSecret 与真机环境。 | M08 接入微信小程序码接口并完成真机扫描验收。 |
| WIFI-001 | 受控 Wi-Fi 凭据 | M03-D/M04/M08 | PARTIAL | `4ac2c96` | 正式订单与分享令牌均执行最小权限;M08-A 门店详情新增登录后受控 Wi-Fi 请求入口,不在未鉴权页面暴露密码。 | 真实到店权限、真机 Wi-Fi 连接和设备权限仍需现场联调。 | M08-A 补有效订单下的 Wi-Fi 真机连接验证。 |
| ORD-001 | 预约下单与多方式支付 | M04/M05/M08 | PARTIAL | `20a292e` | 已完成订单全生命周期、微信支付 v3 工程闭环和团购支付;顾客端已接入下单、支付、订单详情/历史、取消、续费和换房;Vue 后台已接入授权门店/状态筛选、分页/导出、详情/状态流水、状态机处置、备注、时段调整、续费计价和同门店换房。 | 缺真实微信和团购平台授权联调;真机支付验收待补。 | M08-D 继续支付/退款运营页面;具备外部条件后补真实支付验收。 |
| WAL-001 | 充值优惠 | M07-B/M08 | PARTIAL | `53f5d67` | 已建立充值规则和充值订单表,支持有效期、适用门店、限购、启停、clientRequestId 幂等;M08-A 新增顾客端充值计划查询、充值单创建 API、小程序充值页、微信 JSAPI 预支付调起和 WeChat Pay v3 通知验签解密入账;重复支付回调不重复充值;Windows 全量回归通过。 | 真实微信商户凭据、生产合法域名和微信侧回调仍需联调。 | M08-A 继续补余额/优惠券/套餐下单抵扣集成。 |
| WAL-002 | 门店独立会员余额 | M07-A | DONE | `63711ad` | 已建立租户/门店余额范围策略、现金/赠送双余额账户和不可变流水;充值、赠送、消费、退款、人工调整均预留 entry type;消费按赠送后现金扣款,业务号幂等,余额不足拒绝;Windows 全量后端回归通过。 | - | M07-D 聚合会员余额和权益状态。 |
| WAL-003 | 余额账单 | M07-A/M08 | PARTIAL | `7446852` | 账单底表已包含业务类型、业务号、现金/赠送变动、变动后余额、操作人、trace 和 metadata;M07-B 充值成功后写入真实充值流水;M08-A 个人中心已展示最近钱包账单。 | 完整分页账单页面待继续;优惠券/套餐不直接写钱包流水。 | M08-A 增加分页账单或权益明细入口。 |
| WAL-004 | 优惠券和套餐权益 | M07-C/M08 | PARTIAL | `4701674` | 已建立优惠券模板、持券、套餐计划、持有和权益核销流水;支持满减券、时长券、适用门店/房型/房间/星期/节假日、套餐剩余时长/金额,以及订单冻结、确认核销、退回和重复请求幂等;M08-A 个人中心已展示可用/冻结券和套餐汇总,并新增本人优惠券/套餐明细页;下单预占可通过可视化选择器冻结优惠券/套餐并重算订单金额,时长券可按服务端单价折算抵扣,支付成功确认核销,取消订单释放冻结权益。 | 发放/购买入口和真机支付验收待补。 | M09 接入后台发放/购买和管理入口;M08-A 继续真机验收。 |
| MEM-001 | 会员管理 | M07-D/M08 | PARTIAL | `93f06d2` | 已实现后台会员聚合查询服务和顾客个人中心;Vue 后台可筛选会员并查看注册/登录、订单、消费、现金/赠送余额、充值、优惠券、套餐和最近钱包流水,手机号脱敏,租户/门店范围通过服务端校验。 | 管理员赠券、余额人工调整、禁用和备注仍需建立独立审批与审计写契约。 | 后续以不可篡改审批/审计边界补会员人工写操作;M10 做生产数据复算。 |
| GRP-001 | 团购券兑换 | M05-C | PARTIAL | `cda640b` | 已实现美团/点评、抖音、快手统一适配器,支持顾客粘贴/扫码值、管理员人工核销、Mock/API 核销、clientRequestId 幂等和券码 SHA-256 存储;重复券不能再次记账,WSL MySQL 8.4.9 实测通过。 | 缺各平台商家 API 授权,未执行真实厂商核销。 | 取得授权后配置 API endpoint/token 并执行真实验券。 |
| GRP-002 | 美团直订 | M05-C | PARTIAL | `7b97808` | 已实现 HMAC 回调、事件幂等、外部门店/房间映射、未映射人工队列、顾客认领和团购支付订单生成;映射成功订单可进入 PAID。Vue 后台可按平台/门店/状态查看直订队列、维护同租户资源映射,并以安全读取接口查看过滤后的配置。 | 缺美团开放平台授权和真实回调协议确认。 | 取得授权后按厂商协议实现专用签名适配并联调。 |
| GRP-003 | 管理员验券 | M05-C/M08 | PARTIAL | `7b97808` | 已提供管理员小程序与 Vue 后台扫码/手输券码、在线核销、显式人工确认、待支付订单选择和脱敏核销记录;金额由服务端订单未付金额推导,写权限叠加授权门店,记录保留操作人/门店/平台结果,券码仅存 SHA-256 和掩码;后台凭据只接受环境引用,敏感设置键不从读取接口返回。 | 缺美团/抖音/快手真实商家 API 授权,未执行厂商真实核销。 | 取得授权后配置 API 模式并执行真实验券。 |
| ADM-001 | 管理员小程序模式 | M08/M06 | PARTIAL | `ce52f07` | 已完成角色入口、授权门店概况/房态、订单处置与代下单、会员/员工概况、保洁验收、设备状态、临时开门/电控、管理员验券和门店经营统计;按钮按 capability 展示,服务端重复校验租户、门店与写权限,关键写操作保留实际操作人审计。 | 真实团购商家、微信和硬件现场验收条件未提供。 | M08-D 继续平台后台;具备外部条件后补真机与现场验收。 |
| REP-001 | 数据统计报表 | M10/M08 | PARTIAL | `65f2e7c` | 门店 7/30/90 日经营统计已同时接入管理员小程序与 Vue 后台,返回订单总量/状态/预订额、OWNER 下单会员、成功支付实收与渠道、每日收入、当前房态、验券成功/失败;最长查询 93 天,租户与门店范围由服务端校验,后台支持授权门店切换、趋势条和明确口径提示,MySQL 实测 `GROUP_BUY` 渠道与成功支付口径。 | 尚缺全门店汇总、自定义导出、使用率/使用时长和生产数据复算验收。 | M08-D/M10 扩展平台统计、导出和指标口径文档。 |
| FRN-001 | 加盟商与自动分账 | M05-D/M10/M08 | PARTIAL | `aa4a6bd` | 已实现加盟意向幂等提交、租户隔离跟进、负责人分派、受控状态流转,以及收款账户、环境凭据引用、分账授权、脱敏接收方、比例校验、幂等分账和明细查询;Vue 后台覆盖线索与资金运营。 | 真实租户开通、门店创建、微信服务商分账权限和生产对账仍属于 M10-C/外部联调。 | M10-C 接入签约后的租户开通编排;取得权限后执行真实分账。 |
| BKG-008 | 后台加盟信息管理 | M08/M10 | PARTIAL | `aa4a6bd` | 小程序可提交城市、联系人、电话和留言;后台支持分页筛选、详情、同租户员工分派、电话/微信/面谈/备注跟进、下次跟进、状态机和完整操作历史。 | 尚缺签约后的租户开通编排、附件与生产隐私合规验收。 | M10-C 衔接租户/门店/支付配置开通流程。 |
| BKG-007 | 后台微信支付配置 | M05-D/M08 | PARTIAL | `4eac99d` | 已提供收款账户、分账接收方、门店/全局比例策略和授权状态 API;Vue 后台支持环境引用配置、授权状态、脱敏接收方、比例策略、分账记录、微信退款、对账单请求和分账执行;私钥/APIv3 Key 不读取或回显。M08-B 保洁转账预检仍提供商户资料与转账前阻断。 | 真实商户与服务商授权、微信后台场景报备和生产小额退款/分账仍需现场联调。 | 授权后完成生产退款、对账与分账验收。 |
| DEV-003 | 设备管理 | M06-B/M08 | PARTIAL | `5c9fd69` | 已实现并在管理员小程序/Vue 后台展示 DeviceID、IMEI/ICCID、型号、固件、信号、能力、状态快照、控制通道、Sub-1G 父子拓扑、开放告警和维护记录;后台可按授权门店入库、绑定、维护并下发门锁/控电/插座命令。 | 真实硬件在线、ACK、计量和保护断电仍需 M06-G 实物更新。 | 取得实物和生产 MQTT 条件后执行硬件矩阵并回填命令 ACK 证据。 |
| BKG-004 | 后台设备管理 | M06-B/M08 | PARTIAL | `5c9fd69` | Vue 后台已接入设备入库、列表、拓扑、通道绑定、Sub-1G 绑定、告警、维护和现场控制;同一房间控制目标唯一,危险命令二次确认,并明确“发布不等于 ACK”。 | 真实设备扫码输入和现场结果未验证。 | M06-G/M10 以真实控制箱、门锁和插座完成扫码入库与控制验收。 |
| IOT-006 | MQTT 消息幂等 | M01/M06-C | DONE | `e795cdb` | 上行按租户、设备、Topic 和 payload SHA-256 唯一;QoS 1 重复消息只增加 `receive_count`,不重复更新命令或设备副作用;WSL MySQL 8.4.9 实测两次 ACK 仅一条事件。 | - | M06-D/E 继续复用同一消费链路。 |
| IOT-007 | 命令状态机 | M01/M06-C | DONE | `e795cdb` | 已实现 `PENDING/PUBLISHED/ACKED/FAILED/TIMEOUT/UNKNOWN/CANCELLED` 数据模型,发布失败、ACK 结果、超时和 13 位命令 ID 均有测试;发布成功不等于 ACK。 | - | M06-D/F 接入业务权限、补偿与过期取消。 |
| DEV-001 | 一键开门与设备动作 | M06-D/M06-F/M08 | PARTIAL | `874b9b8` | 已提供控制箱控电、磁力锁、TTS、LED、订单任务、Sub-1G 门锁和智慧插座控制服务;M08-A 新增顾客端订单权限开门入口,按本人有效订单和时间窗口校验后下发普通开门命令,命令返回 PUBLISHED 而非假成功;顾客端续费/同门店换房入口已接入订单调整 API。 | 真实硬件属于 M06-G;小程序真机开门、续费/换房后的设备动作仍待现场联调。 | 取得硬件后执行真实开门、续费和换房设备联动矩阵。 |
| IOT-002 | 控制箱接入 | M06-D | PARTIAL | `d15fd3f` | `ConctolPower/Crldoor/PlayTTS/stopTTS/CrlLED/task/addtask/canceltask` 已通过适配器、命令持久化和 API 接入。 | 缺控制箱实物逐路负载、门磁、TTS 和任务回包联调。 | M06-G 执行实物矩阵。 |
| IOT-003 | Sub-1G 门锁绑定 | M06-D | PARTIAL | `d15fd3f` | `AddDevice` 下发、超时窗口、回包 subID/subtype、701C/701G 型号映射和父子拓扑自动固化已实现。 | 缺现场 `*789#` 与实物配对。 | M06-G 现场配对、超时和换绑验收。 |
| IOT-004 | Sub-1G 门锁控制 | M06-D | PARTIAL | `d15fd3f` | `CtrlDevice` 开关门、密码/卡片和恢复出厂适配器已实现;危险清空/恢复出厂仅平台管理员加确认短语;record 内容哈希脱敏,低电量及 timeout/full/unconfirm 告警。 | 缺 701C/701G 实物及密码/卡片现场验收。 | M06-G 完成实物控制与故障场景。 |
| IOT-005 | 智慧插座接入 | M06-E | PARTIAL | `9144fa8` | `basicInfo/workInfo` 查询、`on/off``localtask/clearTask` 已通过适配器、命令持久化和后台 API 接入;本地任务限制 20 条;过载、过温、过流、过压/欠压、功率和温度阈值写入设备告警;Windows 全量后端回归通过。 | 缺 4G 智慧插座实物、DeviceID、生产 MQTT 账号/ACL 和现场负载,未执行真实计量与保护断电联调。 | M06-F 接入订单自动联动;M06-G 完成实物计量、开关、本地任务和保护事件矩阵。 |
| IOT-008 | 设备告警与离线 | M06/M10 | PARTIAL | `d01f771` | `/devicewill/{DeviceID}` 可更新离线状态;低电量、timeout/full/unconfirm、插座过载、过温、过流、过压/欠压、功率和温度阈值可写入开放告警;订单联动任务失败会进入异步任务重试/补偿;真实硬件烟测运行器可等待 ACK 并输出 JSON 报告。 | 缺真实硬件离线、保护断电、任务结束和弱信号事件矩阵。 | 取得实物和生产 MQTT 账号后执行硬件烟测矩阵;当前旁路进入 M07-A。 |