WIP-307 骨架 → 接真 · 前后端契约对照(二号 coze2)

触发:阿仁 WIP-303 关账,分销/福钥任务后端端点全部就绪并在 main 注册(main.py include)。
本文件证明 a端 2 页 + b端 2 页已从「诚实骨架」升级为真实 CRUD 接真,字段/包结构/方法逐点对齐后端。

一、端点矩阵(全部只读核对后端源码,非臆测)

A端 admin-console · DistributionOps / KeyConfig

前缀 /api/admin/distribution(需平台 admin;响应包 { code:0, data })

前端动作方法 + 路径后端处理函数关键字段对齐
分销员列表GET /distributors?status&limitadmin_list_distributorsid/nickname/phone/merchantName/status/referralCode/createdAt
审核通过POST /distributors/{id}/approveadmin_approve_distributorpending→active,后端生成 KL+8 分享码
冻结POST /distributors/{id}/freezeadmin_freeze_distributoractive→paused(409 透传)
解冻POST /distributors/{id}/unfreezeadmin_unfreeze_distributorpaused→active
分佣单查询GET /records?distributorId&status&limitadmin_list_recordsorderNo/distributorName/commissionFen/status/settledAt
提现列表GET /withdrawals?status&limitadmin_list_withdrawalsnickname/amountFen/status/rejectReason/paidAt
提现通过POST /withdrawals/{id}/approveadmin_approve_withdrawalpending→approved
提现拒绝POST /withdrawals/{id}/rejectadmin_reject_withdrawalbody {reason}(前端必填)
打款登记POST /withdrawals/{id}/paidadmin_mark_withdrawal_paid涉钱:前端禁用,待运营口径
佣金作废POST /records/{id}/void?reasonadmin_void_commission_record资金干预:前端禁用
佣金结算POST /records/{id}/settle?settleRefadmin_settle_commission_record资金干预:前端禁用
客人解绑POST /guest-bindings/{id}/release?reasonadmin_release_guest_bindingreason ∈ refund/fraud/staff_exit/inactive_90d(前端下拉限定)
读配置GET /settingsadmin_get_distribution_settingsdata 为 {key:{value,description}}
存配置PUT /settingsadmin_put_distribution_settingsbody {settings:{k:v}},白名单 + 整数后端校验

B端 b-workbench · KeyTasks / MyDistribution(补丁交一号代推)

前端动作方法 + 路径响应包对齐点
任务列表GET /api/miniapp/workbench/key-tasks{ok:true,data}解包 res.data.data
创建草稿POST 同上{ok:true,data}spend_min → conditionParam.minAmountFen=元×100
任务详情GET /{id}{ok:true,data}in_progress/completed 统计
编辑PUT /{id}{ok:true,data}仅 draft/paused,409 透传
上架/下架POST /{id}/publish · /pause{ok:true,data}状态机
分销员列表GET /api/miniapp/workbench/distributors{code:0,data:{items}}items[].monthConfirmedCommission(元)
绑定POST 同前缀{code:0,...}body {phone},前端 /^1\d{10}$/ 预校验,404/409 message 透传
暂停/恢复POST /{id}/status{code:0,...}body `{status:active\paused}`

二、三种响应包分别解包(防 double-data)

三、金额

后端存 fen(commissionFen/amountFen/minAmountFen),前端 fen2yuan = fen/100 两位小数展示;提交 spend_min 金额时 Math.round(元*100)。

四、合规与涉钱

五、验证

六、待办(诚实)