feat: 接入积分服务端真实接口并完成隔离联调
新增积分服务端接口封装、积分中心页面,支持登录回跳、签到恢复、积分明细等功能。清理缓存时保留未确认签到键,新增ApiRequestError错误类型区分业务状态,更新开发文档记录积分页面联调完成情况。
This commit is contained in:
+54
-2
@@ -1,6 +1,58 @@
|
||||
# AI融资项目新会话交接
|
||||
|
||||
记录日期:2026-10-01。本文件为接续入口;当前存储与流程以[评估版本与最新资料](评估版本与最新资料.md)、[开发进度](开发进度.md)0.49节(积分协议与隔离检查)及[开发文档](开发文档.md)v1.42为准,0.48/0.47保留基础和规则设计历史。历史章节中的域名、部署及“待开发”以最新记录为准。
|
||||
记录日期:2026-10-02。本文件为接续入口;当前存储与流程以[评估版本与最新资料](评估版本与最新资料.md)、[开发进度](开发进度.md)0.51节(积分页面恢复与隔离联调)及[开发文档](开发文档.md)v1.43为准,0.50/0.49/0.48/0.47保留前序开发与规则设计历史。历史章节中的域名、部署及“待开发”以最新记录为准。
|
||||
|
||||
## 本轮开发:2026-10-03 FAQ 服务端导入与隔离 HTTP 联调
|
||||
|
||||
FAQ 初始内容已按 `database/faq_initial.json` 导入本机隔离 MySQL `127.0.0.1:3310/airz_product_test_20261003`:首次预检显示 8 条待导入,首次 apply 成功插入 8 条;数据库复核为 8 条 `published`、8 个唯一 slug。重复预检和重复 apply 均保持 `keptExisting=8, inserted=0`,导入回执记录了 ID、slug 和内容 SHA-256。正式 `.env`、3306 数据库和线上环境均未连接或写入。
|
||||
|
||||
在同一隔离库启动临时 PHP HTTP 服务后,`GET /api/v1/help/faqs` 及三个分类筛选分别返回 8、3、3、2 条;非法 `category`、非法 `page` 返回 HTTP 422,POST 返回 HTTP 404。临时将 8 条 FAQ 全部下架时接口返回空 `items`,随后已恢复 8 条 `published`。服务端配置显式锁定隔离主机、端口、库名并关闭 DeepSeek,未调用模型或 worker。
|
||||
|
||||
HTTP 联调完成后已停止本轮 PHP/MySQL 临时进程,删除临时 INI、路由/bootstrap 和运行目录;后端工作树中原有未提交改动均保留。FAQ 服务端导入与公开读取联调完成,下一步接前端 FAQ 页面真实读取并做页面级错误/空态联调;仍不进行线上导入或前端发行,除非另行明确授权。
|
||||
|
||||
## 本轮开发:2026-10-04 FAQ 页面级隔离联调(已完成)
|
||||
|
||||
H5 入口 `http://localhost:5173/#/packages/content/help/help` 已使用 Playwright CLI 完成桌面 1280×900 与手机 390×844 检查。Browser 插件在本会话不可用,按前端测试技能记录为 fallback;浏览器只把正式 API URL 的 FAQ 请求转发到本机隔离 PHP `127.0.0.1:8097`,`services/config.uts` 继续保持 `APP_ENVIRONMENT=test`,未改为本地或正式环境。
|
||||
|
||||
真实隔离读取显示 8 条 FAQ,分为“账户使用”3 条、“融资评估”3 条、“资料与隐私”2 条;首条展开答案与接口内容一致。页面身份、非空首屏、无 Vite/Webpack 错误遮罩、无横向溢出及控制台 error/warn 均通过。浏览器层受控 503 显示“暂时无法加载帮助内容,请稍后重试”和“重新加载”,恢复转发后重新加载回到 8 条;空 `items` 显示“常见问题正在整理中”。从 FAQ 进入首页再返回的延迟响应场景中,离页后的伪造数据没有回填,返回后正常隔离 FAQ 保持。
|
||||
|
||||
证据保留在 `C:/Users/JUN/AppData/Local/Temp/airz-faq-page-20261003/`,包括 `faq-expanded-desktop-verified.png`、`faq-mobile-verified.png`、`faq-error-mobile.png`、请求/控制台记录和导入回执。收尾按回执逐行核对 ID、slug、内容 SHA-256 后,仅在 `127.0.0.1:3309/airz_product_test_20260930` 事务删除本轮新增 8 条,回执 ID 残留为 0、已发布 FAQ 为 0;未连接或修改正式 3306/线上。8097、3309、5173 已全部停止,H5/FAQ 尚未发行到正式前端。
|
||||
|
||||
本轮只完成隔离联调和证据整理,未进行线上 FAQ 导入、正式前端发行、真机/多设备验收或反馈客服接入;下一步需在明确发布授权后再安排正式资源导入与发行,或继续反馈提交/处理闭环开发。
|
||||
|
||||
## 本轮部署:2026-10-02 后端发布
|
||||
|
||||
后端提交 `5fee3cf` 已部署至 `https://airz.hqling.cloud`,API 前缀为 `/api/v1`,后台入口为 `/ZYurKboadX.php`。发布包实际部署 3,714 个文件,SHA-256 为 `C36BE3FD6AB7E64833F03FBC400DEC4924521809789B1C55C68348D5EFE5DD57`;服务器私密备份为 `/root/airz-backend-20261002/`。`airz-analysis`、PHP-FPM、Redis 已恢复运行,队列为空,积分配置仍关闭且未执行原表迁移。公网内容接口、鉴权入口、敏感路径和 HTTP→HTTPS 跳转已完成烟测;详细过程见后端 `deployment-baota.md`。
|
||||
|
||||
前端尚未重新发行;积分页面真实余额、规则、流水读取、登录恢复及隔离页面联调已完成,积分原表迁移与正式奖励发布另行安排。
|
||||
|
||||
## 本轮开发:2026-10-02 积分页面恢复与隔离联调
|
||||
|
||||
页面修复未知签到原键被今日已签阻断、确定拒绝后卡旧键、读取失败无法确认旧请求、跨接口混合日期/规则及账户切换旧上下文问题。四读取原子显示;加载开始恢复pending且错误页保留确认按钮;按Token/页面代次/可见性处理迟到响应,规则/任务/签到/分页/明细展开动作前核对账户。共享API错误保留HTTP状态和业务码,确定未入账才弃键;网络/账本/写冲突及坏回执继续原键确认。成功回执严格校验奖励/余额/重放标记,历史balanceAfter不覆盖当前余额。
|
||||
|
||||
手机390×844/桌面1280×900 Chrome Playwright主流程98项通过,127次浏览器积分请求中123次进入本机真实后端、4次受控故障;登录回跳使用合成认证响应。覆盖默认关闭、20+7流水分页、NULL/零/负记录、规则及展开、读503恢复、跨日/规则切换、确定拒绝弃键、写冲突保键、实际提交后丢响应/刷新已签/坏当前规则原键确认、五种坏成功回执、账户切换及迟到401。pageerror=0,无框架遮罩/横溢;13条console日志均为刻意HTTP错误或空JSON响应。证据在 `C:/Users/JUN/AppData/Local/Temp/airz-points-page-20261002/`,完整状态见开发进度0.51。
|
||||
|
||||
补充81项/81请求通过,共179项/208积分请求(201真实隔离后端、7受控故障)。额外覆盖真实网络中断、成功丢回执后流水503仍确认、分页与展开换账户、实际请求冲突/无效输入/负余额拒绝及未知503保键。共享会话清理现在只保留原userId的三字段未确认命令,其它资料/会话仍清,恢复必须重新鉴权;契约已更新v3。最终Android 19:22:21、微信小程序19:23:14编译通过,H5保留既有编译警告。
|
||||
|
||||
登录清理专项35项通过(15真实积分请求、2合成登录):真实提交丢响应后撤销Token,401清除会话和资料哨兵但保留原键,重新登录该会员后用原键真实重放、只一笔到账。累计214项/223积分请求,其中216真实隔离后端、7受控故障。专项实际覆盖401路径,过期/主动退出/saveSession切换的同一清理例外为源码覆盖,完整交互未另测。
|
||||
|
||||
清理完成:本轮两个随机积分库、空源库、Token、runtime、私密fixture/INI移除,独立MySQL3309正常关闭、PHP64115停止;原Redis队列摘要保持,3306与线上未动、模型/worker未调用。`ui-result.json`、`ui-extra-result.json`、`ui-auth-recovery-result.json`、截图、两份cleanup回执及verification保留;脚本不能复用已删夹具,继续时须重新准备明确隔离环境。本轮3309/64115/5173均无监听;后台重新启动H5预览被自动审批以blocked by policy拒绝,未绕过。历史PID和默认.env不可直接复用。
|
||||
|
||||
正式积分仍enabled=false、DEC-POINT待确认、原表两列/两索引未迁移,本轮未生产写入、未调用模型/worker、未前端发行或运营/真机验收。POINT-002/004开发中,邀请与资料奖励未实施。下一步顺序:确认DEC-POINT业务与发布参数 → 获得具体迁移授权后显式只读预检/完整备份/4项增量迁移 → 复检并安排发布冒烟 → 发行前端。合成7/13分不能作为业务批准,不复用历史部署或迁移授权。
|
||||
|
||||
## 前序检查:积分联调前置阻塞(页面状态已由本轮更新)
|
||||
|
||||
2026-10-02 已用项目指定的 HBuilderX 5.26 CLI 完成 Web 与 Android 编译,均成功;仅保留既有 `services/layout.uts`、PDF 下载空响应等编译器 warning。随后临时启动独立 MySQL 3309(只含积分合成表结构),运行 `tests/points_http.php --env=<explicit-isolated.ini>`,999 项、87 个请求全部通过;脚本自建的随机数据库、Token、临时运行目录和 HTTP 服务已清理,3306 实例与线上环境未触碰。页面真实联调尚未执行。
|
||||
|
||||
源码复核发现正式 `fa_user_score_log` 尚未应用 `request_id`、`rule_version` 及两个索引时,`UserPoints::listing()` 与 `checkIn()` 会依赖缺失列并返回 `POINT_LEDGER_UNAVAILABLE`;不能通过运行时删除字段或伪造兼容数据绕过,否则会破坏签到幂等。下一步顺序固定为:确认 DEC-POINT 规则与发布参数 → 在已迁移的隔离合成库完成页面联调 → 获得迁移授权后执行只读预检、完整备份和 4 项增量迁移 → 复检并重部署/冒烟 → 再发行前端。未获规则和迁移授权前不改线上表、不发布奖励、不发行前端。
|
||||
|
||||
## 本轮开发:2026-10-02 积分页面真实读取
|
||||
|
||||
积分页 `packages/account/points/points.uvue` 已切换为读取后端 `/points`、`/rules`、`/tasks`、`/ledger`,移除本机签到天数、固定 10 分和体验邀请码。关闭配置下保留 `null` 奖励并显示服务未发布,不伪造到账;流水使用服务端快照游标,空流水允许 `snapshotId=0`。
|
||||
|
||||
签到请求由 `services/points.uts` 生成并按当前账户保存 `requestId`、服务端业务日和规则版本;网络结果不确定时沿用原键确认,成功后重新读取余额。登录入口增加 `resumePoints=1` 白名单回跳,页面异步请求校验页面代次与当前 Token,离页或切换账户的迟到响应不会覆盖新状态。积分规则仍默认关闭,未执行原表迁移或正式奖励发布。
|
||||
|
||||
HBuilderX 5.26 Android 与微信小程序 27 页面编译均通过。前端尚未重新发行,真实设备和服务端开启规则的到账流程待后续业务规则确认。
|
||||
|
||||
## 本轮开发:2026-10-01 积分协议与隔离检查
|
||||
|
||||
@@ -126,7 +178,7 @@ PHP/JS语法和纯内存回归通过;`tests/admin_access.php` 227项隔离HTTP
|
||||
|
||||
在不进行真机/跨设备验收的前提下,已完成FAQ服务端开发:复用`fa_acticle`的`type=6`和`content` JSON(`schemaVersion=1/kind=faq`),新增公开`GET /api/v1/help/faqs`及分类筛选;新增独立后台FAQ编辑模型、控制器、页面和版本保护;前端帮助页移除本地FAQ数组,改为始终读取服务端。没有新增表或字段,没有写入正式库或部署。
|
||||
|
||||
初始内容见后端`database/faq_initial.json`,导入脚本为`database/import_faq.php`,必须显式指定隔离/正式环境与目标,默认预检回滚,重复按slug保留已有记录。源码语法检查及隔离事务中的FAQ保存/读取/下架检查通过;现有本地HTTP服务因尚未导入种子返回空列表是预期。下一步继续做反馈提交/处理闭环;人工客服接入仍等待`EXT-CS`供应商方案。
|
||||
初始内容见后端`database/faq_initial.json`,导入脚本为`database/import_faq.php`,必须显式指定隔离/正式环境与目标,默认预检回滚,重复按slug保留已有记录。2026-10-03已修正退出登录后未提交资料不保留的种子说明,并增加种子slug必填/唯一校验、`--apply`前备份目录门禁和目标级MySQL advisory lock;本机隔离MySQL/PHP当前未运行,尚未执行数据库导入或HTTP联调。源码语法检查及隔离事务中的FAQ保存/读取/下架检查通过;现有本地HTTP服务因尚未导入种子返回空列表是预期。下一步先重新准备明确隔离环境,执行FAQ预检→隔离导入→重复导入和接口分类/空态检查,再继续反馈提交/处理闭环;人工客服接入仍等待`EXT-CS`供应商方案。
|
||||
|
||||
## 本轮继续开发:2026-10-01 反馈提交与处理闭环(未部署)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user