86 lines
8.2 KiB
Markdown
86 lines
8.2 KiB
Markdown
# 七日签到、新手礼包、战令:本次上线范围与检查
|
||
|
||
日期: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 失败**;不包含每日任务等范围外测试 |
|
||
|
||
后端命令:
|
||
|
||
```powershell
|
||
$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` 中的回滚、配置和奖励验收细节仍可参考,但每日任务及其他范围外模块不再按其旧清单执行。
|