yml2213
|
e8fbb28cf4
|
feat(claim): 人工履约单领取页只显示「人工处理中,请等待客服」
未命中 AFFILIATE_DASH_SKU_MAPPING 的抖音单显式回落 manual_dispatch(人工),这类单没有
自动发货通道(无 claim token、无绑定二维码),但卡券 cert_link 仍指向 /h5/<订单号> 领取页;
原页面会让买家「输 UID」,提交后没有任何自动发货动作,属于误导买家。
- 后端 kuaishou-cloud-claim-context.ts:新增 MANUAL_FULFILLMENT_MESSAGE 与
resolveManualFulfillmentMessage(executorKey)(manual_dispatch → 等待话术,其它执行器空串);
三个 payload builder 统一输出 manualFulfillment / manualFulfillmentMessage
- 前端 claim-snapshot.ts:输出 isManualFulfillment / manualFulfillmentMessage,
progressText 同步显示等待话术
- 前端 ClaimPage.tsx:在「渠道已下线」之后、「输 UID」之前插入人工单卡片(只读 + 刷新状态),
人工单不会自动轮询(无 expectedUid → 不安排下一次轮询)
- types/claim.ts:补齐两个可选字段;话术只在后端维护一份,前端只做兜底
验证:后端 npm run check(701 单测)与前端 npm run check(格式/lint/类型/143 单测/构建)全绿
|
2026-10-13 13:53:00 +08:00 |
|
yml2213
|
7e197c9413
|
fix(frontend): H5 领取前缀整段接管,/h5 裸链接不再跳后台登录
根因:公开路径判定原先只认「带参数」形态(isH5ClaimPath 只认 /h5/<orderNo>),
裸前缀 https://<域名>/h5(后台 claimLinkBase / certLink 的基址)判定不命中,
于是落回主站 HashRouter 被后台路由接管成
https://<域名>/h5/#/admin/dashboard 后台登录页。
- utils/claim-path.ts:isClaimPath / isH5ClaimPath 改为命名空间级判定(含裸前缀与多段路径),
参数解析仍严格;新增 resolveH5ClaimOrderNoFromInput(纯订单号 / 整条链接 / 缺协议 /
带后台残留 hash 都能取出订单号,只有前缀时返回空串)
- pages/claim/H5ClaimEntryPage.tsx:新增 /h5 领取入口页,买家输订单号或粘贴完整链接后
跳 /h5/<订单号>,走与分享链接同一套领取流程
- App.tsx:H5ClaimApplication 接管 /h5 整段前缀(/h5 入口页、/h5/:orderNo 领取页、
其它子路径回入口页);useClearStrayHash 抹掉历史残留的 #/admin/dashboard
- tests/claim-path.test.ts:补齐裸前缀、相邻前缀 /h5x、粘贴链接解析等回归用例
验证:npm run check 全绿(prettier + eslint + tsc + 143 单测 + vite build)
|
2026-10-13 13:42:06 +08:00 |
|
yml2213
|
9ce29964c7
|
style(frontend): 格式化前端代码并修复 eslint 异步操作未标记告警
- 统一 prettier 代码风格;
- 为 AdminTaskDetailPage 与 AdminTasksPage 中未捕获的 Promise 添加 void 标记;
- 验证方式:npm --prefix apps/frontend run check 全流程通过。
|
2026-10-11 15:20:54 +08:00 |
|
yml2213
|
ed8bdf399d
|
fix(voucher): 替换幸运币纯净无水印透明底素材并统一区服渠道中文转换
- 将幸运币 2/30/90 个 webp 素材替换为纯净 RGBA 透明金币立绘,消除白底多边形及「幸运币礼包(小)」文字水印
- 增加 formatGameChannelLabel 转换函数:将腾讯/DLC area-plat 协议代号(如 1-1)统一转换为用户友好的「安卓-微信」
- 领取页第 2/3/4 步与凭据大图全局统一应用区服中文转换
|
2026-10-10 21:18:31 +08:00 |
|
yml2213
|
215f3351ba
|
fix(claim): 优化H5领取与绑定界面商品图展示并集成发货存证凭据生成
- 修复后端 affiliate_dash 领取详情接口漏传 imageUrl 字段的问题
- 优化前端 ClaimProductImage 占位逻辑,消除无图或失败时的空灰色方块
- 移植并集成 affiliate_dash 前端 Canvas 高清发货到账存证凭据(Retina 640x960)
- 在兑换成功页面提供结果图预览、一键复制到剪贴板与下载凭据图片功能
|
2026-10-10 20:55:02 +08:00 |
|
yml2213
|
3f2bb3f09a
|
fix(admin): 修复恢复启用订单兑换时 orderId 闭包失效及 H5 页面重试机制
- 修复任务详情页和订单详情页中 statusMutation 闭包提前捕获空 orderId 导致恢复启用请求未发出的问题,改为动态从 query.data 解析最新的 orderId
- 订单详情页统一切换为 App.useApp 提供的 modal/message 实例,保证异步弹窗与提示稳定渲染
- H5 买家领取页面在暂停或关闭等异常状态卡片中增加【重新检测状态】按钮,客服恢复启用后买家可一键重新加载最新状态
- 验证方式:前端类型检查(0 error)、单测 132 项全通及前端 Vite 重新构建成功
|
2026-10-10 18:46: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
|
1339c6887e
|
refactor(claim): 删除自建皮肤领取页,路径式 /claim/<token> 复用现成领取页 + 物品图片
**删掉上一轮自建的领取页**
- `pages/claim-skin/*`、`services/claim-skin.ts`、`types/claim-skin.ts`、`tests/claim-skin.test.ts`
及其样式(client.css 里 `.claim-skin-*` 整段 254 行)
- 后台我加的展示项:「皮肤自动发货」筛选项、执行器标签、「买家提交信息」卡片
**路径式链接复用现成领取页**
- `utils/claim-path.ts`(中性命名 `isClaimPath` / `resolveClaimToken`)+ 单测
- `App.tsx`:pathname 命中 `/claim/<token>` → 独立 BrowserRouter 渲染**现成的 `ClaimPage`**
(页面零复制零改动:它只用 `useParams`,不读 hash);`#/claim/:token` 仍走主站 HashRouter,
两者互不影响,且有用例断言 hash 入口不命中路径判定
**物品图片**
- 后端领取详情的 `product.imageUrl` 接上(内部 SKU 在 `spec_json.code` / `sku_code` /
`sku_name` 哪个字段都能回退找到图,映射不到返回空串)
- 领取页新增 `ClaimProductImage`:居中大图(宽度 min(220px,62%)、圆角 16px),
空值或加载失败都降级虚线占位块,不出现破图
`npm run check`:前端 128 / 128 全绿(去掉旧用例 17 个、新增路径与图片用例)
|
2026-10-09 16:13:46 +08:00 |
|
yml2213
|
98dc675b88
|
Revert "feat(claim): Rock 同一提货号过期后自动换新二维码"
This reverts commit 9d981c253f.
|
2026-10-06 18:08:20 +08:00 |
|
 yml2213andCursor
|
9d981c253f
|
feat(claim): Rock 同一提货号过期后自动换新二维码
腾讯活动链接会过期,领取页不能一直用第一次的签名。过期后向 0666 重取同一提取码的新链接,不另发提货号。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-10-06 18:02:17 +08:00 |
|
 yml2213andCursor
|
f6343e58c1
|
fix(claim): 后台改对扫码 UID 后领取页跟上,绑定失败仍记住扫到的号
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-10-06 17:47:01 +08:00 |
|
yml2213
|
2a0eea40e9
|
feat(claim): 配合方案B支持买家纠错扫码UID自愈绑定,自建页面增加确认更换提示与快捷填入
|
2026-10-06 11:12:18 +08:00 |
|
 yml2213andCursor
|
68f43bf323
|
style: 修复领取页 Prettier 格式
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-15 12:40:50 +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
|
30b547cbbe
|
style: 修复 frontend Prettier 格式检查失败
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-15 10:48:02 +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
|
5c7c3e14e3
|
统一前后端代码格式化配置
|
2026-08-16 17:27:12 +08:00 |
|
yml2213
|
17acd65f28
|
修复 affiliate-dash 重复绑定与提交前校验:UID 未变复用绑定防重复生成二维码、提交前强制刷新绑定状态、UID 仅允许纯数字且限 15 位
|
2026-08-06 23:46:02 +08:00 |
|
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
|
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
|
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
|
50d32be0ea
|
降低云触手 bind_info 限频(110001)命中率
识别中文过于频繁错误并指数退避;bind_info 加长间隔与短缓存;
领取轮询放慢并去掉同轮重复 probe,减轻上游压力。
|
2026-07-10 21:07:19 +08:00 |
|
yml2213
|
5ed6890cc5
|
优化领取页第一步布局与第二步操作提示
- 去掉与顶部重复的商品信息,压缩间距便于一屏展示
- 移动端步骤指示器保持右上角
- 更新 UID、换绑角色增加悬浮功能说明
|
2026-07-10 20:58:29 +08:00 |
|
yml2213
|
827baf4ab2
|
优化领取页第一步文案示意与 Mock 表单
- 游戏编号文案与红色提示,底部增加编号位置示意图
- 压缩商品信息卡片,示意图移至最下方
- 开发 Mock 在待填 UID 步骤下 UID 改为可选
|
2026-07-10 18:14:10 +08:00 |
|
yml2213
|
c70c3ff6a5
|
拆分领取页 ClaimPage 为多模块
将 snapshot、轮询、共享 UI、UID/lewan/feifei 步骤组件物理拆分,主文件只保留页面编排与状态。
|
2026-07-10 13:55:43 +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
|
ffbc19a9db
|
移除快手小店以及 api
|
2026-07-09 21:03:39 +08:00 |
|
yml2213
|
4d5b0d6fc6
|
优化履约路由并重命名乐玩通道
|
2026-07-09 10:49:33 +08:00 |
|
yml2213
|
dbcb5a4979
|
重命名前端目录
|
2026-07-07 19:55:18 +08:00 |
|