# 2026-06-25 M08-B 保洁端数据库变更 ## 新增迁移 - `database/migrations/2026062525_m08b_cleaner_tasks.up.sql` - `database/migrations/2026062525_m08b_cleaner_tasks.down.sql` - `database/migrations/2026062525_m08b_cleaner_tasks.verify.sql` - `database/migrations/2026062626_m08b_cleaning_settlements.up.sql` - `database/migrations/2026062626_m08b_cleaning_settlements.down.sql` - `database/migrations/2026062626_m08b_cleaning_settlements.verify.sql` ## 新增表 - `qipai_cleaning_tasks` - 保洁任务主表,包含租户、门店、房间、订单、任务号、状态、保洁员、奖励金额、要求、照片 URL、驳回原因和关键时间戳。 - 状态约束:`WAITING`、`CLAIMED`、`STARTED`、`SUBMITTED`、`COMPLETED`、`REJECTED`、`EXEMPT`、`SETTLED`、`CANCELLED`。 - 唯一约束:租户内任务号唯一;订单关联唯一。 - 索引:任务大厅、保洁员任务、房间任务。 - `qipai_cleaning_task_events` - 保洁任务状态事件表,记录 from/to 状态、动作、操作人、trace、备注和 metadata。 - 租户、任务、trace 唯一,便于幂等追踪。 - `qipai_cleaning_settlements` - 保洁结算单主表,包含结算号、保洁员、门店、状态、任务数、总奖励金额、结算周期、生成人、确认人、确认/支付时间和备注。 - 状态约束:`DRAFT`、`CONFIRMED`、`PAID`、`CANCELLED`。 - 唯一约束:租户内结算号唯一。 - `qipai_cleaning_settlement_items` - 保洁结算单明细表,关联结算单与任务并固化任务奖励金额。 - 唯一约束:同一租户内同一任务只能进入一个结算单。 ## 权限 - 新增 `cleaning.task.write`。 - 新增 `cleaning.statistics.read`。 - 将 `cleaning.task.read`、`cleaning.task.write`、`cleaning.statistics.read` 授予现有 `CLEANER`、`STORE_ADMIN`、`TENANT_ADMIN` 和 `PLATFORM_ADMIN` 角色。 - 新增 `cleaning.settlement.read` 和 `cleaning.settlement.write`。 - 将 `cleaning.settlement.read` 授予 `CLEANER`、`STORE_ADMIN`、`TENANT_ADMIN` 和 `PLATFORM_ADMIN`;将 `cleaning.settlement.write` 授予 `STORE_ADMIN`、`TENANT_ADMIN` 和 `PLATFORM_ADMIN`。 ## 2026-06-26 多保洁员协作增量 - 新增迁移: - `database/migrations/2026062627_m08b_cleaning_collaboration.up.sql` - `database/migrations/2026062627_m08b_cleaning_collaboration.down.sql` - `database/migrations/2026062627_m08b_cleaning_collaboration.verify.sql` - 新增 `qipai_cleaning_task_members`: - 记录任务保洁成员,`member_role` 支持 `LEAD` 和 `ASSIST`。 - `reward_cents` 记录成员分账金额,`removed_at` 记录移除,`settled_at` 记录成员维度结算完成。 - 同一租户、任务、用户唯一,支持负责人和协作者查询索引。 - 调整 `qipai_cleaning_settlement_items`: - 新增 `cleaner_user_id`,结算明细从“任务唯一”升级为“任务 + 保洁员唯一”。 - 原 `uq_qipai_cleaning_settlement_item_task` 替换为 `uq_qipai_cleaning_settlement_item_task_user`,支持同一协作任务按不同成员分别结算。 ## 2026-06-27 发放闭环增量 - 新增迁移: - `database/migrations/2026062728_m08b_cleaning_payouts.up.sql` - `database/migrations/2026062728_m08b_cleaning_payouts.down.sql` - `database/migrations/2026062728_m08b_cleaning_payouts.verify.sql` - 调整 `qipai_cleaning_settlements`: - 新增 `paid_by`,关联发放确认操作人。 - 新增 `payout_channel`,记录发放渠道,例如微信零钱、企业付款或线下人工发放。 - 新增 `payout_reference`,记录外部付款流水或人工凭证号。 - 新增 `payout_error`,记录最近一次发放失败原因,成功标记为 `PAID` 时清空。 - 新增 `idx_qipai_cleaning_settlement_payout`,支持按租户、状态和发放时间查询。 ## 2026-06-27 微信转账适配增量 - 新增迁移: - `database/migrations/2026062729_m08b_cleaning_transfer_state.up.sql` - `database/migrations/2026062729_m08b_cleaning_transfer_state.down.sql` - `database/migrations/2026062729_m08b_cleaning_transfer_state.verify.sql` - 调整 `qipai_cleaning_settlements`: - 新增 `payout_state`,记录微信转账结果或中间态,例如 `SUCCESS`、`FAIL`、`WAIT_USER_CONFIRM`、`PROCESSING`。 - 新增 `payout_package_info`,保存微信待用户确认等场景返回的 package 信息。 - 新增 `idx_qipai_cleaning_settlement_transfer_state`,支持按租户、转账状态和更新时间筛选待跟进结算单。 - 既有 `payout_channel`、`payout_reference`、`payout_error` 继续保存发放渠道、外部流水和最近失败原因;`PAID` 时同步将 `payout_state` 标记为 `SUCCESS`。