yml2213
424c320183
feat(pdd): 原生内嵌拼多多多店铺订单同步子服务与anti-content纯算引擎
...
1. 纯算引擎 (pdd-anti-content.ts):
- 100% 纯 TypeScript 原生还原 0as anti-content 算法,零 npm 依赖(仅基于 Node.js 原生 zlib 与 crypto)。
- 包含 22 个环境特征 Tag TLV 组包、zlib 标准压缩、4 字节尾部扰动盐与 64 字符动态位移 Base64 编码,单次耗时 < 0.1ms。
2. MMS 接口客户端与数据映射 (pdd-client.ts, pdd-order-mapper.ts):
- 基于原生 fetch 实现高可用 MMS 请求,支持拼多多网关毫秒级服务器时间校准 (/api/server/_stm)。
- 实现拼多多订单状态与字段规范映射为平台 SourceOrderEvent,精准保留买家留言与充值账号信息。
3. 多店铺配置与防风控错峰调度 (pdd-source-config-service.ts, pdd-sync-service.ts):
- 支持多店铺账号配置持久化(PostgreSQL app_config_entries 与本地 JSON 双模兜底)。
- 实现店铺间轻量错峰拉取机制,避免并发峰值触发平台 40002 频控。
4. 内存级自动进单与派单流转:
- 拉取新订单后在 Node.js 内存中直接调用 upsertOrderFromSource(),自动完成 orders/order_items 入库、商品规则匹配与打手大厅工单 (work_orders) 实时广播。
5. 调度器与管理端 API (scheduler-service.ts, platform-config/pdd.ts):
- 注册 pdd_order_sync 定时任务(默认 20s 轮询),提供管理端店铺配置查看、保存、删除及手动立即同步接口。
- 所有新增代码均遵循中英双语注释规范,并通过类型检查与单元测试。
2026-09-12 14:12:11 +08:00
yml2213
25b89bb503
优化:降低访问日志噪声并增加日志文件轮转
2026-08-30 16:59:11 +08:00
yml2213
02c9de8b9c
feat(ops): 数据保留清理、CORS 白名单与上传失败回滚
...
- 新增每日数据保留清理任务:按保留期清空原始报文、删除过期
事件/审计记录,批量幂等可重跑;067 迁移补齐清理索引并清理
冗余索引,check-sql-guard 增加防线
- 生产 CORS 改为显式来源白名单(CORS_ALLOWED_ORIGINS),禁用
通配符,非通配响应补充 Vary: Origin
- 文件上传任一步失败时回滚已上传对象,清理失败记录 warn 日志
- 新增 HTTP/CORS 与 PostgreSQL 集成测试;若干文件仅 prettier 重排
2026-08-30 13:59:01 +08:00
yml2213
d56189fe59
完善数据库备份恢复链路
2026-08-23 14:39:30 +08:00
yml2213
6d7f9b5f3f
准备迁移1
2026-08-23 12:54:38 +08:00
yml2213
90ff15b627
短信发送失败增加冷却防连点限流并配置trust proxy恢复真实客户端IP
2026-08-22 19:10:06 +08:00
yml2213
1b8e02dd17
增加数据库慢查询观测与索引防线并收窄打手拼单分页查询
2026-08-22 18:40:11 +08:00
yml2213
15396822b5
本地Mock自定义店铺自动记忆沉淀为下拉可选项
2026-08-22 14:31:34 +08:00
yml2213
874b093a4b
新增大厅订单容量控制
2026-08-21 14:02:30 +08:00
yml2213
e6ab139071
修复容器测试并补订单回归
2026-08-21 12:29:19 +08:00
yml2213
b5d46b2381
全项目数据库性能优化
2026-08-20 23:04:52 +08:00
yml2213
6539e0fb21
新增打手端滚动公告
2026-08-20 20:04:43 +08:00
yml2213
c2305d419e
关闭旧商品匹配默认回退
2026-08-18 13:50:56 +08:00
yml2213
5330b55b75
完善接单平台通知配置
2026-08-17 13:54:01 +08:00
yml2213
9ed2e0d4fe
打手端流转记录改为后台配置开关控制,默认关闭
...
- 新增 WORKER_ORDER_TIMELINE_VISIBLE 配置(默认 false):打手端订单详情不展示流转记录
- 打手端 events 接口按开关拦截(关闭时 403)
- profile 接口下发 orderTimelineVisible 供前端判断
- 管理端流转记录不受影响,始终可见
2026-08-16 19:42:16 +08:00
yml2213
5c7c3e14e3
统一前后端代码格式化配置
2026-08-16 17:27:12 +08:00
yml2213
bc2909d6f2
打手端迁移至独立子域名
2026-08-16 16:08:38 +08:00
yml2213
e097ddad3d
支持领取链接长期有效
2026-08-11 14:06:29 +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
3284fed7a1
新增 affiliate_dash 履约配置与商品映射(阶段 3)
...
- bootstrap CORE_PROFILES + routing ROUTABLE/DEFAULT_PRIORITY 接入 affiliate_dash
- planner 上下文 affiliateDash 块 + resolveDynamicAffiliateDashProfile
- product-resolution: 91 productNo→sku 映射匹配(skuMapping) + snapshot.affiliateDash
- prepare 前余额预检(getAffiliateDashWallet)
- AFFILIATE_DASH_SKU_MAPPING_JSON env 注入
- admin 后端接口(GET/POST 配置、match、products、wallet)+ 前端 Tabs 面板
- 联调:模拟 91 进单命中 affiliate_dash 路由, 未命中回退;前后端 typecheck + 212 测试通过
2026-08-05 15:08:41 +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
2227cda73d
修复打手短信验证码发送
2026-08-02 15:12:02 +08:00
yml2213
6e635b2499
优化后端-接单平台部分逻辑
2026-07-28 14:06:31 +08:00
yml2213
f0ba0fe17f
修复接单平台并发、分页与补资料
2026-07-28 10:15:44 +08:00
yml2213
a2587eda01
完善接单平台上传与物品规则
2026-07-25 15:56:18 +08:00
yml2213
01f46e4fc7
对接日志默认仅记录告警与错误
...
新增 LOG_INTEGRATION_LEVEL(默认 warn),压低 integration-*.log 体积;
失败类文案自动提升为 error,避免异常被过滤。
2026-07-10 21:17:55 +08:00
yml2213
3642ad8aec
配置改为数据库存储
...
将运行时 JSON 配置迁入 app_config_entries,启动时从文件导入并删除源文件。
2026-07-10 09:14:12 +08:00
yml2213
2380e28bcc
移除行业凭证回调开关
2026-07-08 11:38:11 +08:00
yml2213
81bfd8b078
增加行业凭证后台 token 配置
2026-07-07 23:00:24 +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
yml2213
f38efa2edf
行业电子凭证接入
...
- 新增 4 个回调接口:send-code/destroy-code/query-code/consume-code
- 支持快手开放平台 MD5/HMAC_SHA256 签名验签
- send-code 回调自动创建 order/order_items/fulfillment_tasks/profiles
- consume-code 回调与既有 flow.consume 结构兼容
- isKuaishouCloudTask 同时匹配 kuaishou-industry executor_key
- claim 页面自动验证行业凭证 task,跳过核销码输入
- 退回时行业 task 跳过快手核销 API
- 新增 KUASHOU_INDUSTRY_* 环境变量配置
2026-06-30 17:33:51 +08:00
yml2213
693f4de45a
通知商家发码-ok
2026-06-30 15:57:58 +08:00
yml
e8ba48d74f
设置云触手默认登录设备
2026-05-28 13:05:44 +08:00
yml
e4c9873c8d
优化日志切分和保留策略
2026-05-28 12:32:13 +08:00
yml2213
a2bce8b272
增强后端 TypeScript 严格类型检查
2026-05-26 10:07:19 +08:00
yml2213
6d9f267593
统一91卡券环境变量命名
2026-05-26 09:56:52 +08:00
yml2213
779287f662
精简环境变量配置
2026-05-26 09:48:05 +08:00
yml
e7aa194dde
删除咸鱼旧链路
2026-05-25 21:46:39 +08:00
yml
946f21039b
[Snow Team] Merge config-fixer's work with conflict resolution
2026-05-21 23:20:40 +08:00
yml
0567da414c
prep: commit previous optimization changes before team merge
2026-05-21 23:17:28 +08:00
yml
799de32428
[Snow Team] config-fixer: auto-commit work
2026-05-21 23:16:59 +08:00
yml
7513958a4c
优化配置文件
2026-05-21 19:29:00 +08:00
yml
84ca9cac09
后端拆分运行时配置模块
2026-05-21 14:06:49 +08:00
yml
e812ea2cc4
refactor(ocr): remove subprocess mode — HTTP only
...
- ocr.js: Removed all subprocess/spawn logic (spawn, fs, path, process
imports, resolveWorkerCommand, buildPythonPath, buildWorkerError,
callOcrViaSubprocess, resolveOcrMode, runOcrCommand, etc.)
HTTP is now the only mode. Added validation when OCR_BASE_URL is not
configured. ~281 lines → ~80 lines.
- default.cjs: Removed projectRoot from ocr config (kept path import
for data.root)
- runtime.js: Removed OCR_PROJECT_ROOT env var parsing
- runtime-config.js: Removed projectRoot from ocr type definition
All 5 exports preserved: recognizeTencentCaptcha,
recognizeImageCaptcha, batchRecognizeTencentCaptcha,
warmupLocalOcrWorker, closeLocalOcrWorker
2026-05-19 23:29:42 +08:00
yml
bc5fd4212d
feat(backend): refactor OCR client to support HTTP + subprocess dual mode
...
- runtime-config.js: add baseUrl field to ocr type definition
- default.cjs: add ocr.baseUrl default (empty string = subprocess mode)
- runtime.js: add OCR_BASE_URL env var parsing
- ocr.js: add HTTP mode (when OCR_BASE_URL set) alongside existing subprocess mode
- resolveOcrMode() detects mode from runtimeConfig.ocr.baseUrl
- callOcrViaHttp() calls FastAPI endpoints directly with payload
- warmupOcrViaHttp() calls /health endpoint for HTTP mode warmup
- callOcrRequest() routes between HTTP and subprocess based on mode
- All 5 original exports preserved (recognizeTencentCaptcha, etc.)
- Subprocess mode remains backward compatible (default when no OCR_BASE_URL)
2026-05-19 23:09:30 +08:00
yml2213
89ffc9b087
再跳回第 1 步
2026-05-14 16:07:17 +08:00
yml2213
486ba14dc4
优化连接过期验证与戒色信息-1
2026-05-14 14:42:30 +08:00
yml2213
83cb2ff1fa
移除了 khhao 平台相关
2026-05-14 13:08:24 +08:00