ufutx_love_mp/tools/sharing/VALIDATION-20261102.md

9.2 KiB
Raw Blame History

邀请与个人卡片改版验证

分支: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 编译发布制品。

布局参考

参考分享操作集中、个人介绍与二维码分区的结构;品牌色、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 为准。此前各段“未合并”描述为当时验证状态。

真机图片失败修复与阶段进度(2026-11-02)

用户截图两页均为“图片读取失败”,好友分享退回原始 Logo。已在开发者工具 2.02.2609240 的独立 Canvas2D 探针复现:wx.getImageInfo('/pages/users/assets/fulian-logo.png') 返回 pages/users/assets/fulian-logo.png,直接赋给 Canvas Image.src 加载失败(originalLoads=false)。补齐包根路径后,邀请与个人海报均成功导出 750×1120,封面也正常导出。探针使用合成资料、Logo 代替测试照片和二维码,禁用 wx.request/uploadFile/downloadFile/connectSocket;未打开业务应用、未调用分享码服务,不等于实机扫码/相册权限验收。输出记录位于 output/invitation-card-experience/native-canvas-result.json 与 native-canvas-check.png。

修改:包内图片路径规范化,保留 wxfile/http://usr/绝对文件等路径;区分品牌图片、生活照、小程序码错误;缓存升级 v5;首轮加载顶部增加阶段进度(资料5、选图15、封面25、请求二维码45、准备二维码65、绘图75、缓存90、完成100),由真实阶段完成推进而非计时假进度,错误停止。封面用原版 Logo 与福恋 VI 绘制邀请信封、标题和行动文案;两种用途各有750×600静态品牌封面兜底,不再分享放大的原始 Logo。邀请页加载占位使用完整品牌封面。

Node v24.19.0 六组回归均通过:check-image-path、check、check-cache、check-photo、check-contact、regression。新增覆盖返回相对包路径、原生文件 URI 保持、进度递增、错误不显示100%、二维码接口失败时封面仍可用。前端隔离编译使用 Node v16.20.2,通过;320/375/430px 合成页面预览无横向溢出,并查看进度状态和分享封面。原有16个无关文件哈希未变化,后端没有本次修改。

开发者工具启动过程:自动化 SDK 在 Node24 启动 bat 失败,改用官方 CLI;游客 AppID 不被当前工具接受,改用仓库已有 AppID,仍仅加载独立禁网探针。探针分包注册失败后改成普通页面入口完成验证。测试后关闭探针项目。未上传、未部署、未更新 main 验收包;改动保留当前 feature,包含此前邀请列表详情入口。

2026-11-02 用户确认编译本轮修复进行验收。按既有授权合并本地 main 后编译,新制品和精确提交记录见 releases/20261102-poster-fix-main。未执行上传或部署。