Files
xuetang/TongjiUniApp/docs/TANG-DETECTIVE-INTEGRATION.md
2026-09-09 14:47:29 +08:00

96 lines
8.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 唐侦探迁入 TongjiUniApp
核对日期:2026-09-08。本说明针对目录纠正后的 `xuetang/TongjiUniApp`,不是此前的 `xuetang/TUICallKit-Vue3`。用户登录后台后的素材上云结果见 [素材实测与清理记录](TANG-COS-MIGRATION-20260908.md);下方“迁移初始实测记录”保留历史阶段证据。
## 当前结果与边界
- 入口位于原首页 `tongji/pages/weekly`,作为与「识糖小课堂」并列的图标卡片。
- 微信端经 `tongji/tang-detective/index` 打开唐侦探原生首页;原 9 个主页面、5 个训练页面和登录/健康记录流程的源码保留。
- 迁入 24 个原生页面、15 回故事;保留原始 473 项源快照与摘要,其中 269 个非媒体文件必须完整。媒体上云不改变原始摘要,没有重新生成图片、音频或视频。
- `native-adapter/tang-detective` 隔离宿主与原生游戏的路径、页面生命周期、账号存档和媒体适配;不替换宿主 `App.vue`,不引入 TUICallKit 通话 SDK(软件开发工具包)。
- H5(网页端)可构建;唐侦探入口显示需从微信打开的提示,不宣称网页端已可游玩。
- 已通过正常登录后的管理界面上传素材,未提取长期密钥、改变桶权限、发布分发资源、部署后端、执行数据库迁移或推送 Git(版本库)。真机与发布验收仍未完成。
## 如何运行
在本项目目录执行:
```sh
cd /Users/dagedagededagege/Pictures/xuetang/TongjiUniApp
npm ci --ignore-scripts --no-audit --no-fund
npm run test:tang
npm run build:mp-weixin
npm run check:tang-output
node scripts/check-tang-native-compiler.cjs
```
微信开发者工具应导入本项目的 `dist/build/mp-weixin`,不要导入之前的 TUICallKit-Vue3 产物。首页进入「唐侦探」。命令行原生编译检查使用本机已安装的微信编译器;其他机器可用 `TANG_WECHAT_COMPILER_DIR` 指定编译器所在目录。该检查仅验证模板/样式语法,不会打开模拟器、登录、播放或上传。
网页端构建命令:
```sh
npm run build:h5
```
不升级原依赖版本。开发依赖沿用项目 `package-lock.json`COS 工具可选依赖单独锁定在 `scripts/tang-cos/package-lock.json`,正常构建与本地测试不需要安装该可选依赖。
## 接口对接
`config/api.js` 是公开接口地址的单一来源,保留此宿主原地址 `https://xt.zhenyangtang.com.cn/``main.js` 与原生构建插件共用它;生成的 `tang-detective/utils/platformConfig.js` 只包含公开地址,不包含密钥或登录令牌。
游戏复用宿主登录后的 `token` 请求头:
- `GET /api/tang/catalog`
- `GET /api/tang/progress`
- `POST /api/tang/saveProgress`
只同步受白名单约束的章节、事件、卡片 ID(标识)和阅读位置;不上传健康回答、诊疗数据、剧情文字快照或音频。访客存档本地保留,不在登录后自动合并上传。账号切换、断网、登录过期及冲突场景保留独立状态,不能把请求已发送当作云端确认。
接口实现位于同级 `../server`,沿用先前实现,目录纠正未再次改动后端。契约及部署前置条件见 [后端说明](../../server/docs/tang-detective-progress.md) 和 [接口契约](../../server/docs/tang-detective.openapi.yaml)。本轮未对 `xt.zhenyangtang.com.cn` 执行真实登录与存档联调;其他项目域名的历史结果不能用于判断此域名已成功或失败。
## 素材与 COS(对象存储)
源素材为 160 张图片、44 个音频、0 个视频,共 204 条路径,去重后 180 个对象,合计 24,052,082 字节。原始摘要清单不改写;清理后由真实远端清单和项目内清理凭证共同承接缺失媒体,非媒体源文件仍需逐项通过校验。
不需要任何密钥的远端回读复核命令(只发公开读取请求,生成本地审计回执):
```sh
node scripts/tang-cos/verify-admin-upload.mjs audit
```
本次使用 `xuetang/server` 已配置并开启的 COS,通过已有管理界面上传。实际地址位于 `gz-1349751149.cos.ap-guangzhou.myqcloud.com` 下的 `uploads/images/20260908/``uploads/voice/20260908/`;地址来自上传结果,不由客户端猜测。清单第二版严格约束已实测的域名与对象命名。
`build/tang-detective-cos-manifest.json` 已由完整公开回读验证后激活。180 个对象的长度、SHA-256(摘要)、媒体类型全部一致;44 个音频均通过 Range(分段下载)206 与片段字节校验。实际回执为 `build/tang-detective-admin-upload-receipt.json`;旧直连配置失败的历史回执不代表当前上传状态。
原直连上传工具仍保留,要求完整原件与可信数据库证书;清理后直接运行其 `inventory``upload` 会明确拒绝缺失原件。不要关闭证书校验、重新生成源摘要或用测试清单激活项目。正常构建不读取数据库、密钥或项目外备份路径。
## 迁移初始实测记录(素材上云前的历史阶段)
| 检查 | 本轮结果 | 不能据此证明 |
| --- | --- | --- |
| `npm run test:tang` | 72/72 通过 | 真实服务器与存储可用;COS 相关网络用例使用替身 |
| 微信构建 | 退出码 0 | 模拟器可操作、真机可用、上传通过 |
| `npm run check:tang-output` | 24 个原生页面、204 个媒体、328 个相对依赖通过;启动页与原宿主路由保留;原生接口地址与本宿主一致 | 云端存档成功 |
| 微信 `wcc` / `wcsc` 编译器 | 24 页均通过,退出码均为 0 | 界面、音质与播放体验验收 |
| `npm run build:h5` | 退出码 0 | 唐侦探支持网页游玩 |
| 原件与迁入快照 | 473/473 逐字节相同 | 内容、声音授权或医疗审签通过 |
| 原误迁目录及共享后端保护 | 515 个选定文件组合摘要与本轮开始时一致 | 整个仓库未被其他任务修改 |
仍待验证:目标部署接口与数据库、微信合法域名的当前配置、开发者工具完整交互与真机播放/存档、老年用户体验、医疗内容复核、发布验收。真实 COS 地址的公开字节回读已在后续阶段完成,但不等于微信真机验收。老年友好小游戏验证规范用于保持原玩法、素材与审核状态,不因迁移提升任何内容的验收等级。
## 文件保护与收尾
本轮没有删除此前误迁到 `TUICallKit-Vue3` 的内容;原唐侦探和共享后端均保留。新依赖、源码、构建产物保留在正确项目中供复核。测试与构建进程已结束,没有打开新窗口、网页、播放器或常驻服务;既有微信开发者工具窗口未操作、未关闭。
## 后续小程序同步复核(2026-09-08 16:26
用户继续要求「小程序也同步一下」后,重新执行微信构建和产物检查,均以退出码 0 结束。
开发者工具起初仍打开旧 TUICallKit-Vue3 产物;已通过导入选择框定位正确目录。后续复核时,工具已打开 `TongjiUniApp/dist/build/mp-weixin`,窗口名称为 `tongji-uniapp`,模拟器实际显示默认首页 `tongji/pages/weekly`,可见「唐侦探」和「识糖小课堂」两个入口。没有修改调试启动配置,没有清除存档、点击业务提交、播放音频或上传发布;没有执行完整唐侦探游玩与云存档验证。
微信开发专业智能体只读核对了配置、路由、接口及启动行为。需注意:宿主启动会自动登录并读取业务信息;默认首页在特定账号状态下可能自动创建或关联健康记录上下文,进入唐侦探也可能提交已有待同步进度。因此本次界面运行不能称为纯离线检查,也不能仅根据首页可见断言后台没有自动写入。
当时开发者工具代码质量面板显示主包尺寸、未使用脚本及本地图片/音频资源项目未通过。此处为上云前历史提示,不能作为后续远端产物的当前结论;后续体积变化见素材清理记录。线上接口联调、真机与发布验收边界不变。
收尾:构建和检查进程已结束,导入选择框已关闭。当前正确项目窗口保留供用户继续使用;原有窗口和应用未主动关闭。没有新增临时服务或本任务启动的音视频播放,也无关闭失败项。