Commit Graph
119 Commits
Author SHA1 Message Date
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 a7de443cb9 优化 不在频繁报错 试 91 订单失败 2026-08-10 16:51:45 +08:00
yml2213 bcde47ef97 彻底修复 lewan 自动发货问题-8-8-2 2026-08-08 23:43:29 +08:00
yml2213 6e41d7e0db 彻底修复 lewan 自动发货问题-8-8 2026-08-08 23:08:05 +08:00
yml2213 e8eab6e689 fix(kuaishou-industry): 修复电子凭证发货回调并发导致 807000 获取并发锁失败
同一 oid 的发货回调可能被多个来源并发调度(内存重试链 timer、worker_scan
兜底扫描、快手重复推送 send-code 后的再次调度),快手侧对同一 oid 有并发锁,
并发请求会返回 807000「获取并发锁失败」。

- runKuaishouIndustrySendCallbackForOid 增加进程内 in-flight 互斥,
  正在执行时其它调度直接跳过,由当前执行链路决定成功或按 backoff 重试
  (try/finally 保证所有 return 路径释放)
- listKuaishouIndustryVouchersForSendCallbackRetry 增加 maxAttempts 参数
  及 SQL 条件 COALESCE(send_callback_attempt_count,0) < ,缩小扫描集
2026-08-05 20:05:43 +08:00
yml2213 769d41655a 优化履约匹配:指定匹配(91中文名→sku映射)最高优先 + 映射键归一化
- 91 商品编码全部为中文名(幸运币90个等),运营按中文名→affiliate_dash sku 配置显式映射
- resolveFulfillmentRoute 新增 preferredExecutorKey:映射命中强制优先(规则之前),停用/不可用回退原逻辑
- matchAffiliateDashSku 归一化:NFKC 全角→半角、去空白、小写,先精确再遍历
- preferredMatchEnabled 配置(默认 true,可一键回退,不耽误现有 cloud/feifei 生产)
- 测试 +9(221 全绿);行为验证:映射命中/全角/空格命中,未映射回退
2026-08-05 16:44:37 +08:00
yml2213 7fc3d60588 新增 affiliate_dash 回调路由与幂等去重(阶段 5)
- POST /api/v1/open/affiliate-dash:验签 → 查任务(404 重试) → webhook_events 幂等闸门 → 状态同步
- migration 013:webhook_events(provider+event_id 唯一)
- task-repo findAffiliateDashTaskByOrder(仿 feifei 同构 SQL)
- notify-service:去重闸门在找到任务之后,任务未匹配不被 eventId 永久拦截
- typecheck + 212 测试通过;前置错误分支脚本验证通过
2026-08-05 16:07:33 +08:00
yml2213 867ffd2f3c 新增 affiliate_dash 履约 executor(阶段 2)
- executor 常量/守卫 + affiliate-dash-executor(preparePaidTask/resolveDeliveryLink)
- 履约业务实现:prepareAffiliateDashTask(幂等建单, client_order_no=task_no, data 透传 91单号/game_account)
  + syncAffiliateDashTaskStatus(状态合并: delivering→redeeming / delivered→核销→redeemed /
  ship_failed→retry_pending / cancelled→closed)
- registry 注册 + 测试(212 全绿)
- 真实建单联调通过(线上 skin.khhao.com,幂等不重复扣款)
- 修复 POST /orders 响应 data.order 映射层级
2026-08-05 14:56:36 +08:00
yml2213 a6ba5f1c7f 新增 affiliate_dash 发货平台客户端与签名(阶段 1)
- 平台配置接入:runtime-config/types/defaults/env-overrides/app-config-keys 增加 affiliateDash
- affiliate-dash 平台客户端:请求签名(§3.1 app_key+body_sha256)、回调验签(§3.2 timingSafeEqual)、
  http-client 封装(超时/错误归一/全链路日志)、订单/交付/钱包/商品接口封装
- 单测 12/12 + 全量 211 通过,真实联调拉取线上商品 33 个验证签名链路
- 新增 affiliate_dash 对接文档 v2(含契约验证结论与深度分析)
2026-08-05 14:51:40 +08:00
yml2213 4bd2c174c5 快手发码数据接入发单平台工单侧
- 新增 sync-work-orders-from-send-code 服务:91 先到则回填 shopId/补建工单/凭证回填 material_json;91 未到则兜底建单建工单
- order-service 与 ninetyone order-service 改用 findLatestOrderByPlatformOrderId,放宽 shopId 查重避免重复建单
- work-order-repo 新增 listWorkOrdersByPlatformOrderId 供兜底查重
- send-code-service 挂接同步逻辑并吞错,不影响发码主流程
- ProductRulesPanel 新增店铺列
- .gitignore 忽略 send_code/ 与 .reasonix/
2026-08-05 11:22:24 +08:00
yml2213 9c0d43535e Merge remote-tracking branch 'origin/main' into dev 2026-08-01 19:27:19 +08:00
yml2213 70e64155bc 拆分接单平台超长文件,按域组织代码
- worker-platform-service.ts (2733行) 拆为 worker-service/admin-service/mappers + index 聚合
- worker-platform-repo.ts (2456行) 拆为 repositories/worker-platform/ 目录(types/shared/worker-repo/work-order-repo)
- AdminWorkerPlatformPage.tsx (2784行) 拆为主页面 + panels/ 目录(7 个面板文件)
- 引用方统一改指向 index 聚合,行为不变
2026-08-01 16:44:20 +08:00
yml2213 9053a06481 有效期改成 30 天 2026-07-27 13:08:48 +08:00
yml2213 a2587eda01 完善接单平台上传与物品规则 2026-07-25 15:56:18 +08:00
yml2213 d7f9918d06 增加卡券销毁冻结状态校验 2026-07-23 11:32:57 +08:00
yml2213 3d760f987c 优化券码操作类型, 增加手动销毁 2026-07-12 18:46:30 +08:00
yml2213 b0c77e5842 修复 lewan 换绑:旧号被 CT 回收时自动新取号出链
退号失败(含权限不足)不再卡住换绑,默认跳过并重新取号生成绑链;
CT 错误返回补充账号/vn 诊断信息,避免误判为后台角色权限问题。
2026-07-11 12:13:07 +08:00
yml2213 50d32be0ea 降低云触手 bind_info 限频(110001)命中率
识别中文过于频繁错误并指数退避;bind_info 加长间隔与短缓存;
领取轮询放慢并去掉同轮重复 probe,减轻上游压力。
2026-07-10 21:07:19 +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 3642ad8aec 配置改为数据库存储
将运行时 JSON 配置迁入 app_config_entries,启动时从文件导入并删除源文件。
2026-07-10 09:14:12 +08:00
yml2213 ffbc19a9db 移除快手小店以及 api 2026-07-09 21:03:39 +08:00
yml2213 a075b8acf7 移除核销回调电子凭证类型 2026-07-09 20:04:00 +08:00
yml2213 01171c1761 修正快手行业电子凭证核销参数 2026-07-09 19:46:40 +08:00
yml2213 179f34408b 优化通用 api 中文 2026-07-09 19:08:34 +08:00
yml2213 f8a1b992af 优化电子凭证接口日志和结果展示 2026-07-09 19:00:47 +08:00
yml2213 82a763b313 补充快手OpenAPI集成日志 2026-07-09 18:46:58 +08:00
yml2213 c61078d3f6 新增快手电子凭证后台工具 2026-07-09 18:39:34 +08:00
yml2213 7b215a66a5 修复错误 2026-07-08 20:41:29 +08:00
yml2213 487d586492 修复电子凭证销毁与飞飞订单金额 2026-07-08 19:17:01 +08:00
yml2213 5f29e73205 修复快手销毁请求验签 2026-07-08 17:36:52 +08:00
yml2213 3ad7c2e50e 优化快手电子凭证发码和手动处理 2026-07-08 17:28:01 +08:00
yml2213 647f038061 优化发码回调,失败停止整个流程 2026-07-08 16:31:19 +08:00
yml2213 ec23eb6af6 支持快手行业电子凭证多店铺授权 2026-07-08 14:13:15 +08:00
yml2213 588cf5f596 修正行业凭证发货回调金额参数 2026-07-08 12:32:43 +08:00
yml2213 b9d1f57e3d 增强行业凭证发货回调日志 2026-07-08 12:16:32 +08:00
yml2213 24a1ade83f 补齐行业凭证发码回调券码 2026-07-08 12:09:15 +08:00
yml2213 2380e28bcc 移除行业凭证回调开关 2026-07-08 11:38:11 +08:00
yml2213 3940e59df6 补充行业凭证授权换 token 2026-07-07 23:17:16 +08:00
yml2213 81bfd8b078 增加行业凭证后台 token 配置 2026-07-07 23:00:24 +08:00
yml2213 f6cbd7993f 修正快手行业回调域名 2026-07-07 21:47:46 +08:00
yml2213 4131d500f2 同步飞飞核销券状态 2026-07-07 20:54:48 +08:00
yml2213 c2c168f18e feifei 异步通知 2026-07-07 17:09:55 +08:00
yml2213 2471df0086 优化电子凭证核销码生成 2026-07-07 16:36:07 +08:00
yml2213 59f6f5ee1e 增加feifei 日志 2026-07-07 16:04:54 +08:00
yml2213 177f72dd2c 优化feifei商品名映射 2026-07-07 15:12:48 +08:00
yml2213 6af2fe2e23 拆分feifei配置并修复商品查询 2026-07-07 14:59:22 +08:00
yml2213 92d819c616 增加feifei履约配置界面 2026-07-07 14:02:56 +08:00
yml2213 ddfa6c278f 接入多发货平台与电子凭证 2026-07-07 12:06:19 +08:00
yml2213 a27419a0b2 feat: 实现快手电子凭证三个出站回调接口
- 新增 send-callback-service.ts: 卡券发码回调 (eticket/send)
- 新增 consume-callback-service.ts: 核销回调 (eticket/consume)
- 新增 destroy-callback-service.ts: 销毁回调 (eticket/destroy)
- 三个回调均在对应入站接口处理成功后异步触发(fire-and-forget)
- 共享 sendCallbackEnabled 开关控制,默认关闭
- 新增 accessToken 配置项(OAuth获取)
- 新增 scripts/curl-send-callback.ts: 手动测试 curl 生成脚本
- docker-compose 添加 KUASHOU_INDUSTRY_ACCESS_TOKEN / SEND_CALLBACK_ENABLED 环境变量
2026-07-02 13:44:25 +08:00