server/laf-cloud/三模块上线范围与检查.md

8.2 KiB
Raw Permalink Blame History

七日签到、新手礼包、战令:本次上线范围与检查

日期:2026-09-10。后端基线 main@e2a5c3d,客户端参考 MatchMaster@85d3dd6。本次仅检查与整理发布范围,未部署、未调用真实支付。

用户已明确:每日任务不进行上线操作,本次仅包含七日签到、新手礼包、战令。 之前全仓复查中的每日任务、Jungle、五彩迁移等独立模块失败不作为本次三模块的验收失败计数。共享依赖和支付链路仍须核对。

1. 检查结论

模块 结果 上线前要求
七日签到 后端测试通过;客户端仍存在领取已落库但资产未发放的恢复缺口 客户端接收并按 todayClaim.claimId 处理收据,不能仅按 canClaim 判断是否恢复奖励;覆盖响应丢失、加载失败、退出重进和 Day 7 完成态
新手礼包 期限、重开、购买快照、埋点、支付确认和补单相关测试通过;没有发现本次合并新增的礼包协议破坏 确认奖励采用实际客户端的 3000 金币、三种道具各 3、1800 秒无限体力;完成真机支付、提醒弹窗及真实埋点验收
战令 原 main 的战令兼容实现保留;支付共存测试和客户端—当前后端联动测试通过 核对 passCheckUpgrade 对外 POST 路由、依赖和实际生产部署代码;完成真实支付验收

不能因后端测试通过就认定三模块已全部具备上线条件。当前明确的功能问题仍是签到客户端收据恢复;礼包另有两项提醒测试未完成有效验证,见第 4 节。

2. 生产函数发布核对清单

以下均相对独立 server 仓库 laf-cloud/functions/。只对比并更新本清单与其必需依赖;同名线上函数已是目标实现时无需重复替换。不执行整仓、整目录同步。

归属 函数/模块
七日签到 SignInActivity.ts、signInClaim.ts、signInActivityInfo.ts
新手礼包 limitedTimeEvent.ts
战令 passCheckUpgrade.ts、passCheck.ts
三模块涉及的共享支付链路 wx/orderPaySig.ts、wx/iosorderPaySig.ts、wx/KeFuInfo.ts、wx/checkIos.ts、wx/payCallBack.ts、wx/getPayInfo.ts、wx/iosgetPayInfo.ts、wx/getOrderReward.ts
礼包迁移与战令补单关联 login.ts、wucaiMigration.ts

共 16 个函数/模块需核对,实际增量以正式当前版本为准。login/wucaiMigration 的核对仅针对礼包期限/轮次保留、登录配置及战令补单,不扩展为五彩迁移功能上线。

需要保留的现有依赖:Utils、jungleConfig、运行库 thinkingdata-node、ip2region 及现有存储桶私钥访问能力。jungleConfig 是共享支付代码现有 import,保留与调用方法匹配的线上实现,不因此发布 Jungle 活动入口或改奖励配置。发奖依赖的现有资产接口继续原流程,无需为本次发布携带每日任务新增道具字段。

明确排除: dayTaskInfo、getTaskReward、dailyTaskService、dailyTaskConfig、dailyTaskDebug、每日/周任务配置及 Postman 发布资料;也不发布 signInTestAdmin、废弃 starterPackConfig,不顺带更新 drawHead/userLevel/userProp 等非本次增量文件。

路由与顺序

  1. 先准备配置、变量及现有依赖,再发布公共实现 SignInActivity、limitedTimeEvent、passCheckUpgrade、wucaiMigration。
  2. 发布 signInClaim 后再发布 signInActivityInfo;先有 passCheckUpgrade 再更新 passCheck 和引用它的支付函数。
  3. 更新支付链路与 login,核对客户端发布版本后启用签到配置,执行专用账号冒烟。
  4. 当前仓库 SignInActivity.ts、wx/iosorderPaySig.ts、passCheckUpgrade.ts 没有对应 YAML。确认发布工具或控制台显式创建/更新函数;passCheckUpgrade 和 iOS 下单需有客户端使用的 POST 路由,不能只凭源码存在判定部署完成。
  5. signInClaim 必须作为内部依赖发布;是否关闭它的外部 POST 要按正式客户端兼容情况决定。生产不开放签到测试管理接口。

每日任务隔离边界

合并后的 login 没有 import/call dailyTaskService;此次清单不会新增 V2 任务生成入口。每日任务不更新、且生产用户仍为旧任务结构时,上次发现的 V2 任务兼容问题不作为这次上线阻塞项。

唯一共享前提:若生产此前已存在 users.task.version=2 数据,旧登录刷新逻辑仍可能影响这三个模块的用户登录。这是需在发布前只读核对的线上存量条件,不能仅凭“本次不发布每日任务”判断不存在;当前没有读取生产数据。无需因此上线每日任务代码或执行任务数据迁移。

3. 本范围内仍需确认的配置

  • 签到配置来自 sign-in-activity-config.json:等级 23、14 个 UTC+8 自然日累计 7 次、猫皮肤 ID 12;保留已有参加者引用的配置,恰有一条有效启用配置。签到状态和领取集合按原上线文档准备。
  • 支付环境:PAYMENT_APP_ENV、WX_MIDAS_PAY_SIGN_KEY;保留测试订单分流时还需 TEST_WX_PAY_NOTIFY_URL。
  • 登录:WX_MINIGAME_APP_ID、WX_MINIGAME_APP_SECRET、IDCOUNT_NAME,且对应 idcount 文档存在;新建用户分号使用原生 cloud.mongo.db。
  • 旧 iOS 商户链路:WX_MCH_ID、WX_MCH_CERT_SERIAL_NO、WX_PAY_NOTIFY_URL、现有私钥;iosgetPayInfo 仍有硬编码商户/证书信息,需核对一致性。
  • 战令现有周期配置:passCheck 使用 idcount 文档 69fac1528463a95668c5e5db 的 passcheckTime,不能遗漏目标环境的记录。
  • 埋点 SDK 必须支持 trackFirst;重试依赖订单快照及后续回调/查单,不等于已有可靠消息队列。
  • 当前礼包客户端测试要求开发版、体验版、正式版都经真实支付确认。旧 README 关于开发版/体验版免费发货的文字不能作为本版本验收依据。

4. 本次限定范围的验证

验证 结果
后端:签到、礼包期限、礼包埋点/战令共存、支付分流 59/59 通过
战令客户端—后端联动 18/18 通过;测试读取后端函数时在内存中映射到独立 server 当前 main,非只测试 MatchMaster 内嵌副本
客户端:礼包、签到体力/加载、战令 UI 56/58 通过,2 项失败
合计 135 项,133 通过、2 失败;不包含每日任务等范围外测试

后端命令:

$env:TEST_WX_PAY_NOTIFY_URL = 'https://sor779u2w8.sealoshzh.site/wx/payCallBack'
node --test --test-reporter=spec laf-cloud/tests/sign-in-activity.test.mjs laf-cloud/tests/starter-pack.test.mjs laf-cloud/tests/rookie-gift.test.mjs laf-cloud/tests/payment-routing.test.mjs

客户端测试文件:tools/test-battle-pass.cjs、tools/test-battle-pass-ui.cjs、tools/test-starter-pack.cjs、tools/test-seven-day-stamina.cjs、tools/test-seven-day-loading.cjs。

战令联动覆盖旧周期经验及领取记录、18/30/12 商品、旧上传兼容、并发发货、赠金/经验只发一次、丢失响应恢复、旧订单补发和过期订单保留。

两项失败位于 MatchMaster/tools/test-starter-pack.cjs:129 和 :140,分别是首次/每日提醒以及 Prefab 失败重试。错误为测试 VM 中 HomePopupQueue is not defined,该测试抽取方法但未注入队列依赖;实际 assets/Script/JiaZai.ts:12 有正确 import。这是现有测试运行环境的缺口,不直接等同于业务运行时缺少 import,也不能把这两个场景记为已通过。 本次没有修改客户端测试或业务代码。

上述测试没有覆盖签到 todayClaim 的完整客户端恢复路径;该问题已由前两次源码核对及定向模拟确认,当前客户端对应代码未变,因此仍列为待处理。没有调用真实微信支付、修改线上记录或触发真实数数事件。

5. 对原文档的使用说明

本文件是当前发布范围和验收结论的优先依据。main合并local后兼容性复查.md 保留全仓历史审计结果;七日签到与新手礼包生产上线文档.md 中的回滚、配置和奖励验收细节仍可参考,但每日任务及其他范围外模块不再按其旧清单执行。