yml2213
|
c91dd4d144
|
优化领取页绑定 UID 校验
|
2026-08-05 21:19:09 +08:00 |
|
yml2213
|
0deb498a05
|
修复 affiliate-dash 绑定不一致时仍显示第 3 步 + 更新 UID 后旧绑定信息残留
- 前端:标题/副文案改为 bound && !bindMismatch 才显示第 3 步,不一致时保持第 2 步并引导重新绑定
- 后端:bindAffiliateDashClaimForTask 重新绑定时清空 bound/boundAccount/bindMismatch,避免旧账号残留导致误报不一致
|
2026-08-05 20:50:03 +08:00 |
|
yml2213
|
0933b4514f
|
affiliate-dash 绑定 UID 强制校验:绑定账号与第一步填写 UID 不一致时禁止提交
- bind 时记录 expectedGameAccount(第一步 UID 权威值)
- 轮询 bind-result 时本地对比 boundAccount 与 expectedGameAccount(去空白),不依赖平台 mismatch 字段
- submit 前实时拉 bind-result 二次校验,不一致 409 拒绝(前端无法绕过)
- 前端:bindMismatch 时不显示提交发货按钮,提示核对后重新绑定
- 拉取失败不阻塞轮询与提交(平台侧提交仍会校验)
|
2026-08-05 20:39:13 +08:00 |
|
yml2213
|
f455f853b1
|
affiliate-dash 结果页:移除渠道字段,结果时间改用 task.redeemedAt(原 flow.dispatch.dispatchAt 非本流程字段显示为空)
|
2026-08-05 20:24:16 +08:00 |
|
yml2213
|
541b458040
|
修复 affiliate-dash 提交成功(delivered)后结果页数秒后才显示成功
- syncAffiliateDashTaskStatus 新增 snapshotOnly:submit 拿到 delivered 后直接用本地快照收敛任务为 REDEEMED,不等平台回调(此前要等 delivered notify 落地,约 9 秒)
- 新增终态保护:已 REDEEMED/MANUAL_REVIEW/CLOSED/FAILED 的任务,非 delivered 状态不再降级(轮询时平台详情短暂返回 paid/delivering 会把成功任务打回 REDEEMING)
- submitAffiliateDashClaim:result.status=delivered 时重新读任务并 snapshotOnly 收敛
|
2026-08-05 20:20:10 +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
|
4e9c416235
|
affiliate-dash 领取界面优化(合并多次迭代为一次提交)
- 第 2 步绑定页:移除金额/单号/商品信息区,移除标题上方 affiliate-dash 标签
- 二维码区参考旧设计:左右竖排红字 Q区用Q扫/V区用V扫,去浅蓝背景,放大至 220px
- 第 4 步结果页:废弃 canvas 生成发货成功图,改用旧版结果卡片(绿勾+兑换成功+信息网格+商品明细)
- 开发 Mock:新增 affiliate-dash 领取五步 mock(uid/bind/submitted/completed/failed,不调真实平台)
|
2026-08-05 19:39:15 +08:00 |
|
yml2213
|
316ee6d135
|
履约配置页 affiliate-dash 覆盖收尾:preferredMatchEnabled 开关补入平台配置 UI
- 分析结论:履约路由面板已含 affiliate_dash(开关/优先级/规则),职责划分成立
- 缺口修复:指定匹配优先开关此前无 UI 入口,现平台配置 affiliate-dash tab 增加 Switch
- 后端 effective 透出 preferredMatchEnabled;前端类型/panel 补齐
- 前后端 typecheck 通过,224 测试全绿
|
2026-08-05 17:52:14 +08:00 |
|
yml2213
|
5f5a1a8bcf
|
重构:affiliate-dash 平台配置从履约配置页移至平台配置页
- AdminPlatformShopsPage 新增 affiliateDash tab + AffiliateDashPlatformPanel(密钥/钱包/商品/映射/测试)
- AdminPlatformFulfillmentPage 移除 affiliate-dash tab 与组件
- 后端与 API 路径不变(本就挂 /platform-config),纯前端 UI 归位
- 前端 tsc -b 通过
|
2026-08-05 17:45:44 +08:00 |
|
yml2213
|
0f81380d9c
|
新增透传:91 编码与 affiliate_dash sku 一致时自动命中
- resolveAffiliateDashSkuByProductNo 改 async,匹配两级:①指定映射(skuMapping 归一命中) ②透传(productNo == affiliate_dash 商品 sku)
- 商品列表内存缓存 5 分钟,拉取失败返回上次缓存/空集合,匹配 miss 走其他通道不阻塞下单
- 两层命中均触发指定匹配最高优先(preferredExecutorKey)
- 测试 +3(224 全绿);线上验证 suit_alan_walker/suit_cloud_bear 透传命中,乱码回退
|
2026-08-05 17:40:13 +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
|
5f5506bb19
|
docs: 履约匹配逻辑深度分析(§21 痛点 P1-P8 + 优化建议分档)
- 匹配链路全貌:91 item → 三路匹配 → 路由(规则/优先级/manual_review) → planner 动态 profile
- 8 个痛点:P1 精确映射排在名字模糊匹配之后(可信度倒挂)、P2 productNo 未拆 ---- 后缀、P3 映射键无归一化、P4 缺名字兜底、P5 余额不参与路由、P6 双轨配置冲突、P7 重复计算、P8 命名语义误导
- 优化建议分档:快赢档 P1-P3 / 中档 P4 / 后档 P5-P8;按用户指示先分析不改代码
|
2026-08-05 16:14:35 +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
|
00d490a2cd
|
优化 affiliate_dash 核销时机:建单成功即核销(参考 feifei 给用户链接即核销)
- prepareAffiliateDashTask 建单成功(91 卡信息到手、链接可发放)立即核销行业电子凭证
- 核销失败不阻塞下单与链接发放(consumeStatus=failed, delivered 回调兜底补核销)
- sync delivered 分支 alreadyConsumed 短路,避免重复核销
- typecheck + 212 测试通过
|
2026-08-05 16:02:44 +08:00 |
|
yml2213
|
5ef1ed6018
|
新增 affiliate_dash 统一领取页流程(阶段 4)
- 后端:claim 详情分流 affiliate_dash 分支 + 详情轮询刷新 bind-result
- 输 UID 触发 bind(拿 bindUuid/二维码, task→waiting_binding)
- 新增 POST /claim/:token/affiliate-dash/submit(submit→redeeming + 事件)
- 前端:ClaimAffiliateDashSteps(二维码/绑定状态/mismatch警告/提交发货)
- claim-snapshot/claim-poll 按 flowType 分流(step2 绑定中/step3 已绑定待提交/step4 结果)
- 前后端 typecheck + 后端 212 测试通过
|
2026-08-05 15:56:51 +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
|
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
|
784459232d
|
修复部署脚本 COMPOSE_PROFILES 跳过 MinIO 不生效的问题
- 仅在未设置 COMPOSE_PROFILES 时默认激活 storage profile,避免覆盖环境变量空值
- ensure_docker 改为按数组长度判断,移除恒为 false 的死代码
- start_minio 按 profile 值匹配,避免将来新增 profile 时误判
|
2026-08-05 12:36:16 +08:00 |
|
yml2213
|
d9c329e644
|
Merge remote-tracking branch 'origin/main' into dev
|
2026-08-05 11:29:00 +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
|
1dd92ec10c
|
统一登录页品牌样式
|
2026-08-02 16:59:26 +08:00 |
|
yml2213
|
40885c39b7
|
优化接单登录页设计
|
2026-08-02 16:55:52 +08:00 |
|
yml2213
|
2227cda73d
|
修复打手短信验证码发送
|
2026-08-02 15:12:02 +08:00 |
|
yml2213
|
e0e4f71830
|
Caddyfile 增加 live.khhao.com 反代 douyu-login
|
2026-08-02 11:43:55 +08:00 |
|
yml2213
|
f839429261
|
快手发码通知采集到独立日志文件,修复 integration 日志阈值问题
|
2026-08-02 11:43:22 +08:00 |
|
yml2213
|
c138d75d8e
|
快手发码通知采集到独立日志文件,修复 integration 日志阈值问题
|
2026-08-02 11:43:17 +08:00 |
|
yml2213
|
c9195c623d
|
优化打手端我的订单与个人中心界面布局
|
2026-08-02 10:32:51 +08:00 |
|
yml2213
|
93df3d1c9b
|
押金解冻天数可配置与待解冻押金扣减,超时订单保留记录
|
2026-08-02 10:14:05 +08:00 |
|
yml2213
|
043dd3c128
|
优化readme
|
2026-08-02 08:38:35 +08:00 |
|
yml2213
|
9c0d43535e
|
Merge remote-tracking branch 'origin/main' into dev
|
2026-08-01 19:27:19 +08:00 |
|
yml2213
|
fdd4842c1f
|
接单平台记住上次选中的功能标签页
|
2026-08-01 19:24:35 +08:00 |
|
yml2213
|
3650526863
|
超时订单按打手统计,抢单大厅标注限时任务
|
2026-08-01 19:18:20 +08:00 |
|
yml2213
|
23ad60a1ef
|
接单工单支持任务时限,超时自动判定失败并处置
|
2026-08-01 19:02:57 +08:00 |
|
yml2213
|
66193c5d59
|
图片上传支持粘贴剪贴板与拖拽上传
|
2026-08-01 18:40:51 +08:00 |
|
yml2213
|
de33bfa74c
|
接单工单支持编辑与删除,修复编辑押金不生效问题
|
2026-08-01 18:35:12 +08:00 |
|
yml2213
|
fddb757078
|
抢单大厅新增自动刷新开关并移除延迟可见提示
|
2026-08-01 18:23:58 +08:00 |
|
yml2213
|
2412df8b54
|
资料字段支持下拉选项与买家截图,大厅按 VIP 等级延迟可见
资料字段:
- CollectField 支持 type(text/select) 与 options,规则字段语法 key:名称#选项1,选项2
- 默认字段改为游戏编号/游戏昵称/系统(安卓,苹果)/区服(QQ区,微信区),旧默认模板字段自动替换为新版
- 采集页与管理端补资料支持单选下拉与买家主页截图上传(新增公开上传接口)
- 管理端工单详情展示买家截图
VIP 延迟可见:
- 等级权限新增 visibleDelaySeconds(默认 VIP1=20s~VIP5=0s,可后台配置)
- 大厅按等级延迟过滤新发布工单,页面提示延迟规则
|
2026-08-01 18:14:37 +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
|
c33e859e96
|
接单平台新增拼单与取消接单能力
拼单功能:
- 工单/物品规则支持拼单配置(启用、总数量、单价),总价=单价×数量三方联动,启用拼单时工单金额自动同步拼单总价
- 拼单参与按数量冻结比例押金,验收通过后按份额结算报酬,升级统计按数量计入
- 抢单大厅拼单入口:紫色渐变大按钮带单价展示,拼单进度/剩余份数,弹窗输入数量实时预估报酬与押金
- 我的订单展示拼单份额(数量×单价、状态),拼单者各自提交验收,全部提交后管理员统一验收
- 新增 work_order_shares 表与迁移 008
取消接单:
- 进行中订单可取消(押金全额退还、工单回大厅),30 天内限 5 次防滥用
|
2026-08-01 16:31:27 +08:00 |
|
yml2213
|
52a85f7f9e
|
充值申请增加付款凭证与付款时间,管理端可核对后审核
- 打手端充值表单新增付款时间(必填)与付款凭证上传(最多5张)
- 后端存储 paidAt 与 proofFiles 归一化数据
- 管理端资金申请列表新增付款凭证缩略图列,审核弹窗展示付款时间与凭证预览
|
2026-08-01 15:22:25 +08:00 |
|
yml2213
|
d9db2f5dce
|
接单平台等级 CRUD 完善,修复默认分类停用被重置
- 等级面板支持编辑、启用/停用切换、删除(默认等级与使用中等级受保护)
- 新增等级删除接口及使用量校验
- 修复默认分类停用后被 ensureWorkerPlatformDefaults 重置为启用的问题,默认分类仅不存在时创建
- 分类操作后改为显式刷新列表
|
2026-08-01 15:11:02 +08:00 |
|
yml2213
|
0369186b18
|
接单平台分类管理完善:抢单大厅分类筛选与分类 CRUD
- 抢单大厅新增分类 Tab 筛选(仅显示启用分类,支持按分类查询工单)
- 管理端分类面板支持编辑、启用/停用切换、删除(被工单/规则引用时禁止删除)
- 后端工单列表支持 categoryId 筛选,大厅接口返回分类列表
|
2026-08-01 14:59:58 +08:00 |
|
yml2213
|
8dfe797c25
|
管理端打手列表增加邀请人展示
|
2026-08-01 14:52:13 +08:00 |
|
yml2213
|
51d72cc283
|
接单平台新增 VIP 等级体系与邀请绑定
- 等级按累计验收通过工单数自动升级(阈值后台可配),VIP1-5 默认配置 10/30/50/100
- 存量打手统一归 VIP1,原 regular 等级停用
- 注册支持邀请码绑定邀请人,每人生成唯一邀请码
- 新增 worker_level_logs 升级流水表
- 个人中心展示邀请码与升级进度,管理端等级表单支持升级阈值配置
|
2026-08-01 14:50:08 +08:00 |
|
yml2213
|
6e635b2499
|
优化后端-接单平台部分逻辑
|
2026-07-28 14:06:31 +08:00 |
|
yml2213
|
b505b6b85e
|
精简接单端页面样式
|
2026-07-28 11:52:41 +08:00 |
|
yml2213
|
55ffb1e88b
|
优化抢单大厅布局
|
2026-07-28 11:24:29 +08:00 |
|
yml2213
|
cdfee71c97
|
优化我的订单页
|
2026-07-28 11:06:17 +08:00 |
|
yml2213
|
2ab80c4df8
|
完善个人中心资金功能
|
2026-07-28 10:41:46 +08:00 |
|