yml2213
|
790de676c6
|
feat(admin): 收口人工履约入口并修复履约筛选
|
2026-10-24 17:42:07 +08:00 |
|
yml2213
|
faf56e567e
|
feat(finance): P2 手动退款登记与成本异常闭环
- 迁移 112:order_refunds(订单项级退款,整单拆多条共享 batch_no,source/external_ref 预留平台 API)+ cost_exceptions.resolution_note
- 新服务 order-refund-service:整单/指定商品退款、可退金额校验、撤销、全额退完同步 pay_status
- 销售事实改为按有效退款记录冲减;无记录时仍兼容 pay_status=refunded 的历史全额退款
- 订单详情新增退款登记与退款记录表,商品明细显示收入/已退/可退
- 全额退款自动关闭该订单项成本异常并写处理备注;成本异常处理改为带备注弹窗
- 财务事件 UNION 接入退款记录,文档同步 P2 状态与 API
|
2026-10-24 17:18:51 +08:00 |
|
yml2213
|
5d1ba11523
|
feat(finance): 统一履约事实并改造人工账单分类
|
2026-10-23 13:35:48 +08:00 |
|
yml2213
|
cd9bb1419c
|
fix(admin): 人工录单订单项只显示真实内部 SKU
|
2026-10-22 20:08:43 +08:00 |
|
yml2213
|
b82f9c4063
|
fix(worker-platform): 补齐拼单份额超时自动处置机制与退回大厅流程
- 根因排查:此前超时扫描仅针对整单 in_progress,而拼单母单为 open 且 deadline_at 为空,导致打手超时的拼单份额无法被定时扫描命中与释放;
- 定时扫描:在 settleOverdueWorkOrders 中引入 listOverdueWorkOrderShares,自动扫描超时未提交资料的拼单份额(joined);
- 超时处置:新增 settleOverdueWorkOrderShare 事务处理,按母单 timeout_policy 释放或扣除押金,份额标记 cancelled,母单保持或恢复 open 状态重回抢单大厅,记录 timeout 事件并推送实时变更;
- 提交防呆:在打手提交拼单验收时检测个人份额是否已超时,超时则立即执行处置并拦截提交;
- 倒计时展示:在 mapWorkOrderForWorker 中根据 myShare.created_at + timeout_minutes 为拼单打手计算并展示个人履约截止时间;
- 质量验证:补齐拼单截止时间计算与处置链路测试,全量 676 个测试均通过,通过 npm run check 校验。
|
2026-10-11 14:53:56 +08:00 |
|
yml2213
|
f3f2550b19
|
feat(admin): 彻底优化任务列表与详情界面,集成到账存证凭单与联盟直充面板
- 优化任务列表角色列:支持从 affiliateDash 及 claimIdentity 中自动提取并展示角色名与 UID(含一键复制)
- 列表操作栏支持一键查看到账存证凭单,支持直接复制图片发给买家或下载保存
- 任务详情页全面现代化重构:
- 新增「兑换成功 · 官方直充到账存证凭据」大卡片,实时生成 640x960 Retina 高清卡片,支持一键写入系统剪贴板(微信/QQ/客服窗口直接 Ctrl+V 发送)、下载 PNG 大图与全屏预览
- 新增「联盟直充履约 (affiliate_dash)」专属面板,结构化展示上游订单号、直充状态、点数积分、核销状态及供应商回执
- 优化凭据生成器 (voucher.ts):强制优先读取本地高清商品图,彻底消除上游图片文字水印与圆环破图问题
- 验证方式:npm run build & npm test (133 项单测全量通过)
|
2026-10-10 21:04:01 +08:00 |
|
yml2213
|
748c18bc7d
|
feat(order): 精准区分自动直发与接单平台打手履约,智能门控H5直充按钮
- 后端增加按订单批量关联接单工单查询,精准识别履约类型(自动直发 / 打手履约 / 电子凭证 / 拼多多发货)
- 订单列表与详情页中,仅当订单为自动直发(affiliate_dash / 码速达直充)时展示【H5】一键复制直充链接与兑换状态控制
- 接单平台工单单与纯核销单隐藏直充 H5 按钮与兑换暂停/关闭标签,防止客服向打手单买家误发直充链接
- 交付模式标签升级为「⚡ 自动直发」、「👥 打手履约」、「🎫 电子凭证」、「📦 拼多多发货」
验证方式:前端类型检查与打包构建通过,全量 132 项前端单测与 674 项后端单测全部通过
|
2026-10-10 19:44:20 +08:00 |
|
yml2213
|
122144a2b7
|
feat(task): 任务详情与列表页增加H5订单号领取链接及兑换有效性控制
- 后端 AdminTaskDetail 视图补充关联订单的 claimStatus、claimStatusReason 等状态字段
- 任务详情页升级“领取链接”卡片:支持固定 H5 链接展示、状态标签(有效/暂停/关闭),并支持一键复制及【暂停/关闭/恢复启用】弹窗操作
- 任务详情页保留历史 Token 链接作为辅助对比展示
- 任务列表页在平台订单号旁增加一键复制 H5 领取链接的快捷按钮
- 验证方式:前后端类型检查、全量单元测试(后端 674、前端 132)及前后端全量构建均通过
|
2026-10-10 18:38:49 +08:00 |
|
yml2213
|
412d219cca
|
feat(claim): 支持固定H5订单号领取与订单兑换有效性后台控制
- 数据库新增 099_order_claim_status.sql 迁移,扩展 claim_status、claim_status_reason 等字段
- 后端新增 /claims/h5/:orderNo、UID提交、分销提交接口,保留原有 token 接口双轨兼容
- 增加兑换有效性强拦截:暂停/关闭/退款/取消订单精准阻断并返回友好提示
- 后台新增 POST /admin/orders/:orderId/claim-status 接口与审计日志记录
- 前端管理后台(订单列表、详情页)支持 H5 兑换状态展示、一键复制链接及暂停/关闭/启用弹窗
- 前端领取页面适配 /h5/:orderNo 路由及暂停/关闭等状态的异常展示
- 验证方式:运行前后端类型检查、全量单元测试(后端 674、前端 132)及全量构建编译均通过
|
2026-10-10 18:05:46 +08:00 |
|
yml2213
|
4fce07a621
|
refactor(douyin-mashida)!: 纠偏——删掉自建的皮肤通道,改回复用 affiliate_dash
上一轮我把皮肤交付做成了「另建一套执行器 + 独立领取接口 + 只提交账号就结束」,
跟买家实际要走的过程不一致(真正的完成信号是「扫码绑定后的 UID == 买家填的 UID」),
而且核销还触发了老通知逻辑,给买家**又发了一条 /redeem** —— 买家收到两条链接。
本次按用户要求改回**完全复用仓库现成的 affiliate_dash 通道**(= 旧的快手皮肤自动发货)。
**删掉**
- 执行器 `douyin_mashida_skin`(含 registry/types/planner/bootstrap/路由白名单注册)
- `services/claim/claim-skin-service.ts`、`routes/claim-skin.ts`、`/api/v1/claim-skin` 挂载
- 迁移 096 的 `claim_submission_json` 全链路(task-repo / rows / inputs / task-detail /
admin-read-service 的 claimSubmission),并新增 **097 兜底迁移**把该列 DROP 掉
- 顺带清掉上一轮专为已删接口加的死代码(utils/http.ts 的 buildMessageSuccessPayload 等)
**改回复用**
- `resolveOrderItemClaimLink`:通用解析(只看订单项、不看执行器)→
`buildConfiguredClaimUrl(claimLinkBase, token)`;多履约单元取 task id 最小并告警;
**绝不回退** hash 形态的 `buildClaimUrl`
- `cert_link` 与付款后那条**唯一**消息共用同一个解析结果
- **核销后不再给抖音买家发第二条消息**(`shouldNotifyBuyerAfterVerify` 只放行非抖音 provider)
- 买家侧走既有流程:输 UID → 二维码 → 扫码绑定 → 比对 UID → delivered/REDEEMED;
在 delivered 分支 best-effort 核销平台券(幂等、失败只 warn,不拖慢买家响应)
- 后台回显链接改按 **order.provider** 判断(抖音用 `claimLinkBase`)
**SQL 守卫**:允许「删除历史迁移」,但强制要求「同时新增兜底迁移」配对
(修改历史迁移仍禁止),并把改动来源换成 `git status --porcelain`(否则未跟踪的新迁移看不见)
`npm run check`:tests 671 / pass 668 / fail 0 / skipped 3(含新增的物品图回退用例)
|
2026-10-09 16:13:39 +08:00 |
|
yml2213
|
b70741daec
|
feat(admin): 后台可配领取链接/发消息模板 + 可见买家账号 + 修正皮肤领取链接
**面板新增三项(抖音码速达接入配置)**
- 领取链接基址 (claimLinkBase):带实时预览「皮肤订单最终链接」,并拦截两类误配 ——
带 `#`(`#/claim` 是打手领取页,会把买家带进绑定 UID 流程)、缺 http(s) 协议
- 发消息模板 (messageTemplate):提示可用占位符;模板里没有 `{link}` 直接报错提示
- 付款后发领取消息开关 (claimMessageEnabled)
- 顺带把默认出网超时的展示值对齐后端(10s → 20s)
**后台可见买家提交的账号(运营发货依据)**
- `getAdminTaskDetail` 新增 `claimSubmission`,按 `canViewSensitiveTaskData` 门禁下发
(与 claimToken 明文同一门禁);任务详情新增「买家提交信息」卡片(可一键复制账号)
**修正:皮肤任务的领取链接**
- 详情接口原来用全局 `buildClaimUrl`(默认 hash 形式 `…/#/claim/…`),那是**打手**领取页;
皮肤任务改用 `claimLinkBase + '/' + token`,运营复制给买家的链接才是买家页
- 顺带把「履约渠道」筛选项加上「皮肤自动发货」、任务详情执行器标签加上它、
「来源渠道」加上「抖音码速达」(此前筛不出来抖音订单)
|
2026-10-09 15:06:49 +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
|
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
|
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
|
4544622cb3
|
优化后台订单列表展示并支持商品标题与SKU规格
|
2026-09-10 09:39:19 +08:00 |
|
yml2213
|
de63daf1ac
|
优化订单履约分流与后台筛选
|
2026-09-02 11:59:38 +08:00 |
|
yml2213
|
81ae04dae0
|
接入 ESLint 并清理未使用代码
- 前后端接入 ESLint 10 扁平配置(typescript-eslint 类型感知检查 + react-hooks/react-refresh),新增 lint / lint:check / lint:fix 脚本并纳入 check 链路
- 清理全部 no-unused-vars 与 no-useless-assignment 警告,修复 floating promises、正则转义等问题
- 删除确认无引用的死代码(markKuaishouCloudBindUrlRefreshFailed、未使用 helper 等)
|
2026-08-16 18:04:55 +08:00 |
|
yml2213
|
5c7c3e14e3
|
统一前后端代码格式化配置
|
2026-08-16 17:27:12 +08:00 |
|
yml2213
|
2fade9aba9
|
开放客服 kuaishou-lewan 换绑角色权限
与刷新角色一致,换绑改用 canOperateAssistedTask,
不开放重试/发货/退号等完整任务生命周期能力。
|
2026-07-10 18:30:50 +08:00 |
|
yml2213
|
8bcd9bbd81
|
收紧后端 TypeScript:统一 Json 类型与 TaskContext 契约
关闭 allowJs;集中 JsonObject 定义并替换分散 any 别名;parseTaskContext 返回 TaskContext;任务详情 API 标注 AdminTaskDetailView;测试减少 as any。
|
2026-07-10 15:52:05 +08:00 |
|
yml2213
|
8de56b0354
|
优化 UID 履约闸门、运营可见性与一键兑换
lewan 发货强制 expectedUid 并取消无 UID 旧路径回落;任务详情展示 UID 匹配态;领取页匹配后可一键兑换;补充 identity 单测并收口短链说明。
|
2026-07-10 13:51:02 +08:00 |
|
yml2213
|
bb060e81a4
|
统一领取流:Step1 填 UID,按平台分叉履约
领取页改为统一 UID 入口;lewan 强制角色 ID 匹配后才发货核销,feifei 将 uid 拼入 H5 并去掉 claim 短链,对外仍返回本站 claimUrl。
|
2026-07-10 13:30:22 +08:00 |
|
yml2213
|
ca5433ada4
|
优化客服权限
|
2026-07-10 12:00:23 +08:00 |
|
yml2213
|
85209d8082
|
增加电子凭证核销详情
|
2026-07-08 17:52:10 +08:00 |
|
yml2213
|
9a6d083096
|
修复历史电子凭证任务操作入口
|
2026-07-08 17:44:32 +08:00 |
|
yml2213
|
3ad7c2e50e
|
优化快手电子凭证发码和手动处理
|
2026-07-08 17:28:01 +08:00 |
|
yml2213
|
affba7e924
|
修复feifei领取链接直返
|
2026-07-07 15:46:08 +08:00 |
|
yml
|
1c50569ea9
|
添加快手 Cloud 换绑角色功能
|
2026-05-30 11:23:52 +08:00 |
|
yml
|
ccc350cfea
|
优化任务状态投影和部署文档
|
2026-05-28 11:12:40 +08:00 |
|
yml
|
9709643583
|
优化快手 Cloud 主链路状态机
|
2026-05-28 10:03:23 +08:00 |
|
yml
|
837e1c6e66
|
清理旧履约模型残留
|
2026-05-27 14:22:23 +08:00 |
|
yml2213
|
677d7fab46
|
优化任务账号名称展示
|
2026-05-26 13:14:31 +08:00 |
|
yml2213
|
5c7e145766
|
完成后端类型与平台配置目录分组
|
2026-05-26 09:10:11 +08:00 |
|
yml2213
|
7aef1a6d50
|
开启后端严格空值检查
|
2026-05-26 08:45:06 +08:00 |
|
yml
|
2c7464b1eb
|
删除库存和旧回调管理
|
2026-05-25 23:07:19 +08:00 |
|
yml
|
2103416c7b
|
中性化库存凭据类型
|
2026-05-25 22:11:30 +08:00 |
|
yml
|
0caa38e690
|
清理旧消息和历史命名
|
2026-05-25 22:03:07 +08:00 |
|
yml
|
e7aa194dde
|
删除咸鱼旧链路
|
2026-05-25 21:46:39 +08:00 |
|
yml
|
db22ff691b
|
拆分快手轻量后端入口
|
2026-05-25 20:42:27 +08:00 |
|
yml
|
4c92c3711d
|
后端迁移后台管理读服务入口
|
2026-05-21 16:59:54 +08:00 |
|