3.3 KiB
3.3 KiB
M08-B 保洁端
本次工程增量
- 新增
2026062525_m08b_cleaner_tasks迁移,建立qipai_cleaning_tasks与qipai_cleaning_task_events,覆盖 WAITING、CLAIMED、STARTED、SUBMITTED、COMPLETED、REJECTED、EXEMPT、SETTLED、CANCELLED 状态和事件追踪。 - 权限补齐
cleaning.task.write、cleaning.statistics.read,CLEANER、门店管理员、租户管理员和平台管理员可获得保洁任务读写与统计能力。 - 新增
CleaningTaskRepository与/app-api/cleaning/*路由:任务大厅、我的任务、接单、开始、提交验收和个人统计均要求登录态与保洁权限。 - 生产
server.ts注入真实保洁仓储,迁移 runner 纳入 M08-B 数据库迁移。 - 小程序新增
pages/cleaner/tasks,调用真实 app-api 展示任务大厅、我的任务、待结算统计,并支持接单、开始和提交照片 URL 验收。 scripts/check-miniapp-m08-a.mjs扩展为同时检查 M08-A 顾客端与 M08-B 保洁端页面注册和真实接口调用。
2026-06-26 增量
/app-api/cleaning/tasks/:taskId/photos接入受控图片上传:保洁员必须登录且拥有当前任务,任务状态必须为STARTED或REJECTED,上传后复用MediaStorage压缩为 WebP 并返回固定https://api.txyundm.cn/uploads/...URL。/app-api/cleaning/tasks/:taskId/submit改为必须提交至少一张照片;REJECTED任务允许再次提交,提交后清空驳回原因并记录事件。- 新增
/app-api/cleaning/tasks/:taskId/rework,保洁员可将本人REJECTED任务重新转为STARTED,清空旧照片和驳回原因,进入补做流程。 OrderStateRepository在订单状态进入FINISHED时通过同一事务调用CleaningTaskRepository.createForFinishedOrder,按order_id唯一键幂等创建WAITING保洁任务并写入AUTO_CREATE事件。- 小程序保洁端将手工照片 URL 文本框改为相机/相册选择图片,上传成功后再提交验收;驳回任务显示原因并提供“重做”入口。
- 修复
marketing-benefit-service.test.mjs中固定订单时间导致 2026-06-26 后自然过期的问题,改为相对未来时间,避免测试随日期漂移失效。
验收结果
npm run build(backend/):PASS。node scripts/check-miniapp-m08-a.mjs:PASS。node tests/cleaning-route.test.mjs:PASS。node tests/migration-contract.test.mjs:PASS。node tests/migration-runner.test.mjs:PASS。npm test(backend/):PASS。- 2026-06-26 追加验证:
node tests/cleaning-route.test.mjs:PASS,覆盖rework和照片上传路由。npm test -- --runInBand(backend/):PASS。node scripts/check-miniapp-m08-a.mjs:PASS。
状态
M08-B 保持 PARTIAL。当前已完成保洁端任务大厅、我的任务、接单、开始、照片上传、提交验收、驳回补做、订单结束自动建任务和统计基础工程闭环;管理员指派、超时回收、多保洁员模式、验收通过/驳回管理入口和结算单仍待继续。M08-A 的真机合法域名、真实微信支付和实物开门验证按外部条件阻塞保留,不阻断 M08-B 工程推进。
提交
- 工程提交:
fe1a088 - 远端校验:待本轮 push 后执行
HEAD == origin/main。