yml2213
|
563e548b2e
|
feat(consignment): 补齐寄卖前端权限门控,收口调拨状态与运营体验
权限门控(P1-8 剩余):
- 新增 resolveAdminPermission(sessionPermissions, code):会话接口的最新权限列表优先,
接口异常才回退登录时的本地快照;空数组也判无权限,避免"刚被收回权限仍能点"。
- 寄售仓库面板:consignment.manage 控制手动入库/编辑/作废/退单回库/匹配开关(无权限时开关禁用)。
- 寄卖提报面板:consignment.review 控制审核入库/驳回。
- 接单平台页:无 consignment.view 不渲染两个寄卖 tab,并把 URL/localStorage 的旧选择拉回工单页。
数据约束(P2-19 剩余):
- 迁移 080:allocation_status 历史非法值归位「待安排」(备注留痕)后加 CHECK(待安排/已安排),
并顺手修正 077 遗留的"收集链接/玩家提交"权限描述文案。
- 编辑接口拒绝直接改 allocationStatus(400 consignment_allocation_status_update_forbidden)。
运营体验:
- 两个面板补 isError 错误态与重试;审核通过/驳回加 confirmLoading 与提交中守卫(防双提交)。
- 待审徽标改用后端真实总数(原来只统计当前页);编辑弹窗押金不再兜底 ¥100(会误写押金)。
- 履约拦截弹窗冷静期文案不再硬编码"3 天",改为按商品规则设定。
- 核实并撤回"倒计时时区偏移"误报:deadlineAt 为带 Z 的 ISO,前端无偏移问题。
验证:后端 412 例(409 通过)、前端 21 例(新增 5 例权限解析)全绿,
typecheck / lint / format / check:sql / build 通过;迁移 001→080 在全新空库跑通并在 dev 库应用。
|
2026-09-16 20:39:52 +08:00 |
|
yml2213
|
5d11bf2012
|
fix(consignment): 补齐指派补偿与规格复检,封闭寄卖资金/货物不一致窗口
- 指派失败改为完整补偿:取消指派(解冻打手押金 + 工单退回大厅 + 解绑现货)→ 兜底释放占用 →
摘除工单寄售标记。此前只把现货放回在库池,一旦"指派已提交、写 material 失败",工单会停在
in_progress + 押金冻结却不带寄售记录,现货还回到可匹配池,同一件货会被第二张单占用。
- 电子凭证核销失败写 consignment_fulfill_voucher_consume_failed 事件,前端按 voucherConsume.ok
弹警告并提示人工核销,不再无条件报成功(核销走快手外部接口,无法与数据库事务合并回滚)。
- 匹配规格改为 match/mismatch/unknown 三态,钻级兜底由 || 1 改 || 0:订单规格信息不全一律不进
"精确匹配",降级 partial 并在原因里列出缺失字段,消除"任意现货都 100 分精确匹配"的错发根因。
- 履约与指派在占库前做服务端规格复检:冲突 409 consignment_spec_mismatch;非 exact 必须显式
传 allowPartial(前端在部分匹配候选上先危险确认),高配充低配保留但不可误触。
- 人工解绑守卫由"状态黑名单"收窄为只拦交付中三态(与撤销白名单对齐),修复
"工单未开始 + 现货仍绑定"没有任何人工出口的问题。
- 新增 detachConsignmentMaterialFromWorkOrderWithClient,解绑回库/人工退回复库/作废同步摘掉
工单寄售标记,消除"已回库却仍显示寄卖履约"的陈旧痕迹。
- 回归测试新增 8 例(后端 410 例 / 407 通过),附迁移 079 上库前检查脚本。
|
2026-09-16 20:12:14 +08:00 |
|
yml2213
|
632dddc4c3
|
fix(consignment): 下线 H5 收集链接渠道并封闭寄卖履约状态机
下线定向收集链接(H5 填报)整条线,提报统一走接单平台打手端:
- 删除前端 ConsignmentCollectPage、consignment-public 服务与 /consignment-collect/:token 路由
- 删除后端公开路由 routes/consignment.ts、consignment-public-service 与管理端 /consignment/links 三接口
- 迁移 079 删表 consignment_collect_links、删列 consignment_submissions.link_id,
source_type 的 collection_link 归并为 worker_portal 并替换 CHECK
修复手工入库/编辑的凭据与截图静默丢失:后端统一按 credentialsJson ?? credentials、
screenshotsJson ?? screenshots 读取(入库/编辑/审核入库三个入口)。
按"已验收一律禁止撤销"封闭状态机:
- 撤销寄售履约加状态白名单(in_progress|pending_acceptance|problem)+ 事务内 FOR UPDATE
锁单 + UPDATE 带 status 条件(0 行 409)+ 原因必填 + 清空指派/时限/验收草稿痕迹
- 库存改状态一律带条件:撤销要求 bound_work_order_id 命中本工单;作废/回库要求未被
进行中工单占用(被挡时提示具体工单号);079 加部分唯一索引并清理历史重复绑定
- 工单终止统一解绑回库:打手撤单/取消指派/退回大厅/撤单/打手退单申请/超时处置接入
releaseConsignmentInventoryBindingForWorkOrderWithClient(售后不改工单状态,无需接入)
- 回库路径保留运营的 allow_matching 开关设置(不再强制开启),前端文案同步更正
顺带修掉资金与归属的同源缺陷:
- 押金归属与重冻金额改取不可变的冻结核销行,审核改派不再"退给错人/向错人扣款"
- 新增 assigned_worker_id 拆开"卖家"与"被指派履约人",占库不再覆盖卖家
- PUT /inventories/:id 禁止直接改 status;发布接口补 requireActiveWorker
- 押金冻结/释放后补推钱包实时事件;迁移 079 给发布冻结加台账幂等唯一索引
验证:后端 401 测试/398 通过/3 skip(新增 5 例回归),前端 16 通过;
两侧 typecheck、lint:check、format:check 与 check:sql、build 全绿。
迁移 079 未经真实数据库执行(本环境无 Postgres),上库前请先 dry-run。
|
2026-09-16 20:05:49 +08:00 |
|
yml2213
|
e828e677a5
|
fix(consignment): 打通寄卖权限鉴权、指派占库竞态与撤销守卫
- 后台权限白名单补齐 consignment.view/manage/review/fulfill,
避免在「角色权限」页保存任意角色时静默清除寄卖权限
- 寄卖后台 19 个接口由 requireAdminRoles 改为 requireAdminPermission,
使 view/manage/review/fulfill 四个权限真正生效
- 指派打手履约改为先原子占库(WHERE status = 'in_stock'),
失败自动回滚库存,消除并发下同一件现货被两张工单同时认领
- 撤销寄售履约拒绝押金履约模式(worker_deposit),
避免打手押金不释放造成资金挂账;前端同步隐藏该入口
- 撤销回库不再强制覆盖 allow_matching,保留运营手动关闭的匹配开关
- 新增 4 个回归测试:权限白名单与迁移一致性、占库/回滚条件、撤销守卫
|
2026-09-16 11:38:08 +08:00 |
|
 yml2213andCursor
|
6b9407967b
|
style: 修复赠送冷静期 cooldownMinutes prefer-const
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-15 20:04:03 +08:00 |
|
 yml2213andCursor
|
fd1eb5815b
|
feat(consignment): 内部现货占库进入赠送冷静期并闭环发布押金
打手发布冻结履约押金,驳回/作废退还,验收释放;内部匹配履约立刻占用库存并跳过打手资料进入冷静期,撤销回库时补冻押金。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-15 20:03:11 +08:00 |
|
 yml2213andCursor
|
4a6215e816
|
feat(consignment): 苏尔南寄卖接入打手端押金履约
打手可直接提报寄卖,关联 worker 与履约押金后指派交枪;后台去掉旧收集链接管理,提报审核与库存/工单流程对齐接单平台。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-15 16:00:33 +08:00 |
|
yml2213
|
7672360875
|
Merge branch 'main' into dev
|
2026-09-15 14:17:36 +08:00 |
|
 yml2213andCursor
|
acfe7fd07e
|
style: 修复订单与调度相关 Prettier 格式
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-15 13:48:43 +08:00 |
|
 yml2213andCursor
|
40278a68fc
|
chore(logging): 降噪 PDD 同步与发单消费者常态日志
将无新单/全跳过的处理完成日志降到 debug,并压缩 decisions 详情,避免 app 日志被按日切碎。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-15 13:48:30 +08:00 |
|
 yml2213andCursor
|
40c51e1d8e
|
fix(admin): 订单列表默认近7天并按支付时间筛选
避免无日期过滤时展示全库,关键词搜索不受日期限制;SSE 插入裁剪并尊重筛选,新单入库优先使用平台支付时间。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-15 13:41:29 +08:00 |
|
 yml2213andCursor
|
b7d246e5b9
|
fix(admin): 任务列表商品名与执行器标签改为中文展示
建单时不再把英文 sku 写入商品名,列表按映射反查中文名,并将 Affiliate Dash 等标签本地化。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-15 13:03:47 +08:00 |
|
 yml2213andCursor
|
b2d92d1559
|
style: 修复 claim/affiliate-dash Prettier 格式
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-15 12:40:01 +08:00 |
|
 yml2213andCursor
|
8e0cb7e295
|
fix(claim): 领取页展示游戏角色名,并说明乐玩免扫码场景
持久化 affiliate_dash roleName/gameChannel;免扫码授权时明确提示,有绑定链接时提交前仍可显示二维码。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-15 12:39:47 +08:00 |
|
 yml2213andCursor
|
8eef95fe97
|
style: 修复 affiliate-dash http-client Prettier 格式
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-15 12:05:18 +08:00 |
|
 yml2213andCursor
|
8e996e01fb
|
fix(pdd): 停止旧单刷匹配日志,并修复订单列表商品显示为 0
同步时已有工单/匹配结果未变不再写日志;列表按 Number(order_id) 挂 items,并补齐 PDD goods_name 回退与嵌套商品解析。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-15 12:05:02 +08:00 |
|
 yml2213andCursor
|
2e197f93e0
|
fix(claim): 透出 affiliate_dash 上游错误,便于排查提交 UID 失败
上游 4xx 不再一律打成 502 兜底文案;affiliate_dash 依赖错误优先展示真实 message。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-15 11:51:32 +08:00 |
|
 yml2213andCursor
|
868e8a740e
|
fix(pdd): 长 SKU 精确名优先于短模板 contains,消除父子模板冲突
out_sku_sn「安卓血宴5钻带2璀璨」会被短名「安卓血宴5钻」contains 同分命中;精确相等提分,contains 按名称长度区分优先级。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-15 11:35:24 +08:00 |
|
 yml2213andCursor
|
03dffcfbb8
|
fix(pdd): 彻底修复拼多多模板匹配被来源/平台/sku_code 误拦截
PDD 复用快手模板时,残留的 91kaquan/kuaishou 与误填 sku_code 会让 out_sku_sn 对上模板名仍未命中;改为 OR 匹配并放行常见残留,同时在匹配测试返回拒绝原因诊断。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-15 11:28:40 +08:00 |
|
 yml2213andCursor
|
d09cce5050
|
fix(pdd): 无店铺上下文时跳过快手结构化匹配,按模板名/out_sku_sn 命中
模板残留的 match_json.sellerId 等字段会让拼多多订单误入结构化分支并直接未命中;仅快手有 sellerId 时才走该路径。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-15 11:18:27 +08:00 |
|
 yml2213andCursor
|
e20505bc8e
|
style: 修复 pre-push Prettier 格式检查失败
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-15 10:47:38 +08:00 |
|
 yml2213andCursor
|
5cbb977b96
|
fix(pdd): 匹配诊断对齐 out_sku_sn,并加速拼多多订单号搜索
匹配测试/结构化规则补读商家编码,诊断日志标出缺失字段;订单/任务/工单关键词支持带连字符的 PDD order_sn 走索引快路径。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-15 10:45:53 +08:00 |
|
 yml2213andCursor
|
4a3b4ec14d
|
refactor(fulfillment): 固化 91 中文名→英文 SKU 权威映射表
91 继续用中文编码;解析优先查内置常量表,配置仅作临时覆盖,Admin 改为展示权威表。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-14 20:33:42 +08:00 |
|
 yml2213andCursor
|
745eeaee35
|
fix(admin): 恢复任务重试/转人工/人工完结等后台写接口
删除咸鱼链路时误删了 retry、mark-manual-review、complete-manual-dispatch、regenerate-claim-link;现按 affiliate_dash + manual_dispatch 语义恢复,历史下线通道可人工完结但不可自动重试。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-14 17:32:26 +08:00 |
|
 yml2213andCursor
|
b3aad0044c
|
refactor(fulfillment): 移除飞飞/乐玩通道,仅保留 affiliate_dash
新单只路由 affiliate_dash(未命中走 manual_dispatch);历史飞飞/乐玩任务保留只读 stub,避免订单重同步失败。同步清理 cloudtentacles 调度、Admin 写路径与相关 env。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-14 17:29:47 +08:00 |
|
yml2213
|
0cbcb89dd8
|
feat(pdd): add realistic Bézier mouse trajectory simulation to generate 700+ char anti-content tokens
|
2026-09-14 14:03:07 +08:00 |
|
yml2213
|
f35e47e419
|
fix(pdd): integrate official sandboxed anti-content engine to resolve 40002 WAF error
|
2026-09-14 13:44:55 +08:00 |
|
yml2213
|
4f97275c80
|
fix(pdd-extension): 拼多多官方接口频控(40002)容错与轻量探测,避免有效 Cookie 被拒
|
2026-09-14 13:09:16 +08:00 |
|
yml2213
|
a47661e67e
|
fix(pdd-extension): 增强 MMS Cookie 多维嗅探与 PASS_ID 校验,新增插件运行日志与升级 v1.1.0
|
2026-09-14 12:50:54 +08:00 |
|
yml2213
|
9fb27b0ad2
|
feat(pdd): 拼多多订单支持 out_sku_sn 匹配与浏览器插件加密保活
- 拼多多进单 Cookie 失效即时拦截与告警修复(支持 43001 会话过期等错误识别)
- 拼多多订单映射优先使用 out_sku_sn(外部商家编码)作为商品规格与工单匹配核心字段
- 新增 Chrome/Edge 浏览器扩展 (Manifest V3),支持端到端 RSA-OAEP + AES-256-GCM 信封加密自动保活
- 后台店铺管理新增插件配对面板、专属密钥管理与一键导入配置 JSON
|
2026-09-14 12:24:48 +08:00 |
|
yml2213
|
1aa6dba931
|
feat(consignment): 新增和平精英寄卖库存管理、定向收集审核与工单智能匹配履约
|
2026-09-14 11:39:15 +08:00 |
|
 yml2213andCursor
|
a49db84771
|
fix(worker-platform): 修复售后欠款抵扣导致验收失败,并支持余额偿还
有待还欠款时结算写入 settled_at 发生 timestamptz/text 类型错误会整单 500;顺带支持充值/解冻自动偿还与后台手动偿还。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-13 20:44:35 +08:00 |
|
yml2213
|
aba508f4f6
|
feat(worker-platform): 分类标识改为系统自动生成并在前端UI隐藏
|
2026-09-13 14:25:51 +08:00 |
|
yml2213
|
abccecf8ed
|
fix(worker-platform): restrict withdrawal blacklist actions to admin role only
|
2026-09-13 12:38:19 +08:00 |
|
yml2213
|
061a5d897f
|
feat(worker-platform): add worker withdrawal blacklist and admin actions
|
2026-09-13 11:32:42 +08:00 |
|
yml2213
|
18ac95ca27
|
feat(worker-hall): 接单大厅支持内部打手可见订单已发布时长标签
|
2026-09-13 11:14:16 +08:00 |
|
yml2213
|
85272cde46
|
fix(worker-hall): 优化抢单大厅两级分类联动体验并支持分类图片浏览器长效缓存
|
2026-09-13 11:02:10 +08:00 |
|
yml2213
|
9fcc4ef99d
|
feat(product-rules): 接单模板列表支持二级目录层级联动筛选
|
2026-09-13 10:51:36 +08:00 |
|
yml2213
|
447d501f7b
|
修复快手appSecret意外修改问题
|
2026-09-13 10:42:32 +08:00 |
|
yml2213
|
1cf790d6ab
|
feat(worker-hall): 抢单大厅支持分类与全部按钮图标自定义及PNG透明通道修复
|
2026-09-12 20:16:27 +08:00 |
|
yml2213
|
d1e06f362e
|
feat(category): 接单平台支持二级分类目录与接单大厅联动展示及限额优化
|
2026-09-12 18:45:56 +08:00 |
|
yml2213
|
fea82bff36
|
style(backend): 格式化代码并修复floating-promises以通过pre-push检查
|
2026-09-12 17:46:47 +08:00 |
|
yml2213
|
8cc3aa2a35
|
fix(pdd): 拼多多商品名称仅展示规格spec,过滤冗长原标题
|
2026-09-12 16:53:30 +08:00 |
|
yml2213
|
71912ef5d0
|
feat(worker-platform): 接单平台全面改用内部统一工单号,隐藏第三方平台单号防泄漏
1. 新增业务工单单号生成器 generateWorkOrderNo(),生成 WO+年月日+时分+随机数的统一内部单号(如 WO26091216358821);
2. 接单平台抢单大厅、订单列表、详情抽屉、模态弹窗及售后全面切换为展示 workOrderNo,彻底屏蔽拼多多/快手等第三方平台来源标识;
3. 打手资金明细补充关联内部工单号 relatedWorkOrderNo,避免打手在账单中识别原平台;
4. 管理后台工单面板升级为双单号清晰展示(高亮内部工单号 + 辅助可复制平台单号),兼顾打手对单与官方平台售后溯源。
|
2026-09-12 16:44:59 +08:00 |
|
yml2213
|
ede9a87b97
|
feat(pdd): 支持根据数据库已有订单自适应翻页拉取,防高峰漏单
1. 新增数据库批量排查已有订单接口 findExistingPlatformOrderIds,利用 B-Tree 索引毫秒级判定当前页订单是否存在;
2. 优化 syncStoreOrders 支持自适应翻页拉取:当第 1 页全部为新订单时,自适应向后递增翻页拉取(支持 maxPages 默认 5 页,平滑限速 300ms);
3. 翻页终止自适应判定:当拉取到包含数据库已有旧订单的页面时立即 break 停止翻页,兼顾高性能与不漏单;
4. 扩展全局配置支持 maxPages(自适应最大翻页页数),支持后台管理员在 UI 设置与立即拉单参数联动;
5. 新增单元测试 pdd-sync-service.test.ts,验证全部新订单自适应翻页与命中已有订单提前终止行为。
|
2026-09-12 16:25:37 +08:00 |
|
yml2213
|
1217da7393
|
feat(worker-platform): 支持后台配置匹配日志保留上限与天数并提供一键清理历史多余记录
1. 扩展商品匹配配置支持 maxMatchLogs (条数上限) 与 matchLogRetentionDays (保留天数);
2. 新增分批物理清理逻辑 pruneWorkProductMatchLogs,通过索引高效分批删除超出限制的记录;
3. 集成定时任务数据保留清理 data-retention-job,并在保存配置与写入时自动滚动清理;
4. 匹配诊断日志面板新增可视化保留策略设置栏,支持管理员自定义上限、一键保存并提供一键清理超出记录按钮。
|
2026-09-12 16:01:26 +08:00 |
|
yml2213
|
e7b51f09a6
|
feat(worker-platform): 支持拼多多订单匹配诊断与通用发单规则匹配
1. 修复匹配诊断日志仅记录快手发单凭证的问题,支持记录拼多多等全平台订单的商品匹配结果;
2. 匹配诊断来源商品聚合查询 order_items 与 orders,拼多多商品正常展示并在测试中可用;
3. 接单模板规则平台默认值改为留空,支持跨平台通用匹配;
4. 接单模板重匹配功能支持重扫数据库中未建工单的订单并自动生成接单工单。
|
2026-09-12 15:42:43 +08:00 |
|
yml2213
|
c8f7e48746
|
feat(pdd-cookie): 持久化保存Cookie校验状态时间并在失效时发送内部告警通知
|
2026-09-12 15:26:40 +08:00 |
|
yml2213
|
ffa3374483
|
feat(pdd-sync): 默认拉取已发货订单并支持配置单次拉单上限与抓取状态
|
2026-09-12 15:16:39 +08:00 |
|
yml2213
|
44e752d205
|
feat(pdd-ui): 新增管理后台拼多多店铺CRUD与Cookie有效性实时检测功能
1. 订单快照优化 (pdd-order-mapper.ts):
- 在 item_snapshot_json 中完整保留拼多多原始报文快照全量字段,确保无信息截断。
2. 后端 Cookie 有效性校验接口 (pdd-client.ts, platform-config/pdd.ts):
- 新增 PddClient.testCookie 与 POST /api/v1/admin/platform-config/pdd/test-cookie 接口。
- 支持通过轻量接口请求即时测试 Cookie 合法性,精准识别有效状态(返回在线订单数)与失效/频控状态。
3. 前端管理面板开发 (PddPlatformPanel.tsx, AdminPlatformShopsPage.tsx):
- 在平台配置页面新增【拼多多 (PDD)】专属 Tab 面板。
- 提供拼多多全局同步开关与轮询间隔配置。
- 支持店铺完整 CRUD:添加店铺、编辑店铺、删除店铺、启用/停用切换。
- 支持弹窗内即时【测试此 Cookie 有效性】(无需先保存即可验证)及列表行内一键测活与单店铺立即同步。
|
2026-09-12 14:27:40 +08:00 |
|