feat(pickup): 新增管理员线下提号功能

- 新建 admin_pickups 表独立于 rental_orders,不污染订单状态机与财务统计口径
- 提号中/已完成/已取消三态:创建锁定账号,完成时给卖家钱包加可用余额并下架 listing,取消解锁账号
- 完成时 listing 置 completed,复用现有 listingLockedForOwnerMutation 拦截再上架
- 管理端提号管理页(列表/创建/完成/取消/可提号账号搜索)+ 卖家端提号记录页
- 财务仪表盘新增线下提号独立统计块,与正常订单口径分离
- 钱包流水 label、状态标签、菜单入口同步补齐
- 优化卖家服务悬浮菜单为一行四个,尺寸与配色对齐买家服务
This commit is contained in:
yml2213
2026-07-03 19:04:35 +08:00
parent f5a1630a27
commit 9ef0843eb0
22 changed files with 1649 additions and 13 deletions
@@ -0,0 +1,32 @@
-- +goose Up
CREATE TABLE admin_pickups (
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
pickup_no VARCHAR(64) NOT NULL COMMENT '提号编号 PK+时间+随机',
listing_id BIGINT UNSIGNED NOT NULL COMMENT '关联的发布项',
account_id BIGINT UNSIGNED NOT NULL COMMENT '关联的游戏账号',
owner_id BIGINT UNSIGNED NOT NULL COMMENT '卖家(号主)',
admin_id BIGINT UNSIGNED NOT NULL COMMENT '操作管理员',
platform VARCHAR(32) NOT NULL DEFAULT '' COMMENT '线下交易渠道(微信/QQ/闲鱼等)',
settle_amount_cent BIGINT NOT NULL DEFAULT 0 COMMENT '完成时结算金额(分)',
status VARCHAR(20) NOT NULL DEFAULT 'picking_up' COMMENT '状态: picking_up提号中/completed已完成/cancelled已取消',
remark VARCHAR(255) NOT NULL DEFAULT '' COMMENT '创建备注',
complete_remark VARCHAR(255) NOT NULL DEFAULT '' COMMENT '完成备注',
created_at DATETIME NOT NULL,
completed_at DATETIME NULL,
cancelled_at DATETIME NULL,
PRIMARY KEY (id),
UNIQUE KEY uk_pickup_no (pickup_no),
KEY idx_listing (listing_id),
KEY idx_owner (owner_id),
KEY idx_status (status),
KEY idx_created (created_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='管理员线下提号记录,独立于 rental_orders';
INSERT INTO permissions (code, name, resource, action)
VALUES ('order:pickup', '管理员提号', 'order', 'pickup');
-- +goose Down
DROP TABLE IF EXISTS admin_pickups;
DELETE FROM permissions WHERE code = 'order:pickup';