ufutx_love_mp/tools/sharing/VALIDATION-20261102.md

66 lines
6.8 KiB
Markdown
Raw 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.

# 邀请与个人卡片改版验证
分支:feature/invitation-card-experience。状态:本地实现及功能分支编译完成,待本次页面人工审核及微信真机验收;未合并 main,未上传。
## 实现
- 菜单与页标题改为“我的邀请”“我的卡片”,原路由保持兼容。
- 邀请海报、保存、好友分享置于统计与分页列表之前;个人卡片使用大图预览和底部固定操作。
- 使用福恋 VI 米白、玫瑰配色及原版 Logo,邀请材料与个人介绍分别绘制。
- 页面 onReady 后使用 Canvas2D,进页自动生成;按账号、用途、资料指纹缓存海报、分享封面与二维码,24 小时过期,最多保留四组。
- 资料变化、图片丢失、缓存过期重新生成。请求、图片、画布、导出均有限时,整体生成限时 30 秒。缓存写失败仍允许使用已生成图片。
- 专用请求模块不改动旧登录、支付和 IM 请求逻辑。邀请列表与海报并行加载。
## 执行记录
测试目录 E:/pj/love/ufutx_love_mp,Node v24.19.0:
| 命令 | 结果 |
| --- | --- |
| node tools/sharing/check.cjs | 退出 0;生命周期、首次生成、缓存复用、用途区分、HTTP/认证/异常响应、请求无回调 |
| node tools/sharing/check-contact.cjs | 退出 0;6/7/8 人门槛、资格过期、查询失败重试、保存错误,不自动授予角色 |
| node tools/sharing/check-cache.cjs | 退出 0;资料更新、缓存缺失、账号隔离、过期、磁盘写失败、各生成阶段超时、分页独立、卸载取消 |
| node tools/sharing/regression.cjs | 退出 0;邀请归因、旧代理/购物链接、菜单顺序、原入口、专属客服、路由 |
| git diff --check | 退出 0;存在 Git CRLF 提示 |
隔离编译目录 E:/pj/love/.release-build/invitation-card-candidate,使用 Node v16.20.2 执行 tools/build/build.cjs,退出 0。编译 89 个模板,405 个文件;主包原始大小 2,027,427 字节,总大小 3,177,369 字节。原版图片分包复制校验通过。依赖提示 Browserslist 数据过旧,未修改锁文件或更新依赖。
在 E:/pj/love 执行 output/invitation-card-experience/preview.cjs:退出 0。使用生产绘图函数、页面模板和样式,通过浏览器适配检查 320/375/430 像素布局,未横向溢出,分享按钮先于列表。截图仅使用合成资料和示意码,网络请求全部拦截。人工查看两页 375 像素截图与海报。预览目录 output/invitation-card-experience。
output/profile-sharing/prepare-release.cjs verify 退出 0,既有 16 个无关修改文件哈希保持不变。后端未新增变更。初次子进程调用受沙箱 EPERM 限制,获准后在相同只读/隔离范围重试成功。
## 验证边界
测试使用模拟微信 API;浏览器截图不等于微信运行结果。未启动默认连接生产的小程序。微信真机 Canvas2D、相册权限、分享送达与扫码落地尚待验收。邀请订单的婚恋使者角色来源仍待核实,此次没有开放订单权限。须人工审核此次改版后合并 main,再从 main 编译发布制品。
## 布局参考
- 有赞海报分享流程:https://help.youzan.com/displaylist/detail_13_13-1-62075
- Canva 二维码名片:https://www.canva.com/business-cards/templates/qr-code/
参考分享操作集中、个人介绍与二维码分区的结构;品牌色、Logo 与口号以福恋 VI 为准。
## 同日 Tab 布局调整
邀请页新增“专属邀请 / 邀请成果”,默认 activeTab=poster;使用 v-show 保留海报与分页状态,Canvas 保持挂载。统计、使者申请、订单提示和用户列表归入成果 Tab,空态文案同步调整。
上述四组 Node 回归再次退出 0;内存页面检查默认 Tab、来回切换、海报及页码保留通过。三种屏宽预览检查默认成果隐藏、切换后海报隐藏均通过,并查看两个 375px 页面截图。隔离目录再次执行 Node16 tools/build/build.cjs 退出 0,89 个模板编译完成。git diff --check 通过。未合并、上传或执行生产请求。
### 大幅海报展示调整
专属邀请改为全宽纵向海报(375px 视口内约 323px 宽,原缩略图 110px),移除右侧重复文案,按原比例展示;下方保留查看大图、缓存状态和保存/分享按钮。320/375/430px 浏览器适配预览均无横向溢出,两个 Tab 显隐检查通过,已查看 375px 预览。仅展示样式调整,无生成、缓存或业务规则变更。预览文件新增 large-poster-v3 标识,避免复用旧图片路径。
## 生活照选择
个人名片改用 SharingProfile 返回的本人生活照相册 photos(最多最近 9 张,过滤软删除记录)。不使用头像或认证照;生活照模型没有逐张审核状态,因此沿用现有生活照展示范围,不虚构审核字段。
候选照片并发读取尺寸、限时 5 秒;短边不足 400px、宽高比不在 0.6–2.2 内、加载失败时跳过,按 686:470 海报裁切保留比例(80%)与分辨率(20%)选最高分。该规则为展示适配,不做人脸或外貌评分。候选均不可用或实际绘制解码失败时,使用原版福恋 Logo 品牌背景。缓存升级 v4,生活照数组纳入资料指纹。
Node v24.19.0:check-photo.cjs、check.cjs、check-cache.cjs、check-contact.cjs、regression.cjs 均退出 0。覆盖无相册、尺寸/比例不合适、下载失败、绘制解码失败、默认背景生成和相册变化缓存指纹。Node v16.20.2 隔离编译退出 0,406 文件,主包 2,033,341 字节,原版静态素材校验通过。仍待微信真机验收,未发布。
Go v1.22.4:E:/pj/love/.release-build/card-lifestyle-api 中执行 go test -mod=readonly ./controller/user -run '^TestSharing' -count=1,使用新建 MySQL 8.0.45 合成数据库,退出 0(1.953s)。首次因 Docker 内部网络未向 Windows 暴露端口而连接失败;加入独立、关闭 IP 伪装的测试网络后,本机端口核实可用,重试通过。覆盖相册仅本人、忽略软删除、新照片优先及原分享接口回归。无真实用户数据或第三方调用,测试容器与网络随后清理。既有 16 个无关修改文件哈希验证保持不变。
## 合并授权与验收制品
2026-11-02 用户已审核迭代结果并明确要求将所有相关 feature 合并 main、发布新版验收。相关范围为前端 feature/invitation-card-experience 与后端 feature/card-lifestyle-photo;早先 feature/profile-sharing 已合入两仓库 main。此次按授权提交并合并本地 main,从 main 独立导出编译验收制品;不包含工作区无关修改。完整发布状态、提交 SHA、制品校验及真机待验收项以 releases/20261102-invitation-card-main 内 manifest.json 和 RELEASE.txt 为准。此前各段“未合并”描述为当时验证状态。