feat(worker-platform): 实现打手寄卖白名单权限控制与存量发布打手平滑过渡

1. 新增数据库迁移 082_worker_consignment_whitelist.sql,worker_users 表增加 can_consign 与 consignment_activated_at 字段,存量在 consignment_submissions 提报过的打手默认自动开启;
2. 打手端提报接口 publishWorkerConsignment 增加白名单权限服务端强校验拦截(403 consignment_permission_required);
3. 管理后台打手管理表格增加「寄卖权限」实时 Switch 开关列与打手详情抽屉权限展示,支持客服即时开通或关闭打手寄卖权限;
4. 打手端我要寄卖页面在未开通权限时展示专属白名单引导卡片,一键呼起联系客服开通寄卖弹窗;
5. 补充寄卖权限拦截与路由单测,前端59项单测与后端507项单测全部通过。
This commit is contained in:
yml2213
2026-09-21 13:30:33 +08:00
parent 0df5c9f34e
commit cb8b249e57
15 changed files with 295 additions and 1 deletions
@@ -0,0 +1,24 @@
-- 082_worker_consignment_whitelist.sql —— 打手寄卖白名单激活控制与存量平滑过渡。
-- 1. worker_users 增加寄卖权限开关及激活时间
ALTER TABLE worker_users
ADD COLUMN IF NOT EXISTS can_consign BOOLEAN NOT NULL DEFAULT FALSE,
ADD COLUMN IF NOT EXISTS consignment_activated_at TIMESTAMPTZ;
COMMENT ON COLUMN worker_users.can_consign IS '是否开通寄卖权限(白名单模式:默认关闭,需客服开通)';
COMMENT ON COLUMN worker_users.consignment_activated_at IS '开通寄卖权限的时间';
-- 2. 寄卖权限字段索引(用于后台快速筛选已开通/未开通打手)
CREATE INDEX IF NOT EXISTS idx_worker_users_can_consign
ON worker_users (can_consign);
-- 3. 存量老打手平滑过渡:历史上在 consignment_submissions 中提报过的打手,默认自动开通寄卖权限
UPDATE worker_users
SET
can_consign = TRUE,
consignment_activated_at = NOW()
WHERE id IN (
SELECT DISTINCT worker_id
FROM consignment_submissions
WHERE worker_id IS NOT NULL
);