feat: 接入积分服务端真实接口并完成隔离联调

新增积分服务端接口封装、积分中心页面,支持登录回跳、签到恢复、积分明细等功能。清理缓存时保留未确认签到键,新增ApiRequestError错误类型区分业务状态,更新开发文档记录积分页面联调完成情况。
This commit is contained in:
hujun
2026-10-04 08:29:53 +08:00
parent 2a9ff403c4
commit 6b16d4fd55
9 changed files with 555 additions and 150 deletions
+45 -7
View File
@@ -1,6 +1,44 @@
# AI 融资平台开发进度
基线日期:2026-09-22。文档版本:1.42。最新积分协议与隔离开发检查见0.49节,后端基础和规则设计历史见0.48/0.47节;此前章节保留阶段记录。技术方案和接口说明见[开发文档](./开发文档.md)。本台账现有63项任务、27页面,编号与开发文档保持一致。
基线日期:2026-09-22。文档版本:1.43。最新FAQ服务端导入与隔离HTTP联调见0.52节,积分页面恢复及隔离联调见0.51节,真实读取见0.50节,积分协议与隔离开发检查见0.49节,后端基础和规则设计历史见0.48/0.47节;此前章节保留阶段记录。技术方案和接口说明见[开发文档](./开发文档.md)。本台账现有63项任务、27页面,编号与开发文档保持一致。
### 0.52 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 条;非法分类、非法分页为 HTTP 422,POST 为 HTTP 404。8 条 FAQ 全部下架时返回空 `items`,随后恢复 published。配置显式锁定隔离数据库并关闭 DeepSeek,未调用模型或 worker;临时 PHP/MySQL、INI、bootstrap、路由和运行目录已清理。
FAQ 服务端导入与公开读取联调完成,下一步为前端帮助页页面级错误/空态联调;仍未线上导入、后端发布或前端发行。
### 0.51 2026-10-02 积分页面恢复与隔离联调
积分页补齐签到恢复:已保存请求优先于今日完成状态,成功丢响应后刷新仍能原键确认;读取余额、规则或流水失败时也保留确认入口。确定未入账的日期/规则/当日已签/请求冲突/余额异常、参数及规则不可用错误清旧键并刷新,网络、写冲突和账本不可用继续保留原键。共享API错误对象保留HTTP状态与业务错误码,成功回执严格校验正奖励、非负INT余额和boolean重放标记,坏回执不能提示成功或丢键。
四读取接口暂存后统一校验业务日、时区、规则版本、奖励及签到状态,再原子展示;读取失败显示不可用与重试,不伪造0余额或空账本。按页面代次、可见性和加载所属Token守卫迟到结果;规则、任务、签到、分页及明细展开动作前核对账户,切换账户先清旧数据再读取,防止旧请求键/游标进入新账户。
Chrome Playwright手机390×844及桌面1280×900主流程98项通过:127次浏览器积分请求中123次转发本机真实PHP/MySQL,4次为受控故障;密码登录回跳使用合成认证响应,不代表真实登录后端验证。覆盖默认关闭、20+7本人快照分页、NULL/零/负流水、展开和规则弹窗、读取503及恢复、多接口跨日/换规则、确定拒绝弃键、写冲突保键、两次实际提交后丢空响应及原键重放、历史回执不覆盖当前200余额、当前规则损坏仍确认、五种坏成功回执、账户切换及可见/隐藏页401。无未捕获pageerror、框架遮罩或横溢;13条console.error均对应刻意的HTTP拒绝或200空body解析日志,正常路径无未解释运行错误。
证据目录 `C:/Users/JUN/AppData/Local/Temp/airz-points-page-20261002/` 保存 `ui-result.json`、手机/桌面/错误/确认截图及临时脚本。Browser插件未提供,使用已安装Playwright,无新增依赖。初次脚本的原生input定位、包含历史日期的“10”检查和暂停响应等待已修正;最后日志分类漏计故意空JSON响应后,精确清理旧夹具、重新建立新夹具完整通过,不把失败运行计为通过。
补充恢复检查81项/81次积分请求通过(78次真实后端、3次受控网络/HTTP故障),主流程与补充共179项/208次积分请求。真实浏览器网络中断后原键提交、真实成功丢body后流水读取503仍确认、账户切换分页/明细展开不带旧游标,以及真实REQUEST_CONFLICT/422 INPUT_INVALID/BALANCE_INVALID拒绝弃键、未知账本503保键均覆盖。7条console日志均对应预期故障,pageerror=0;截图为 `points-extra-pending-ledger-failure.png`、`points-extra-final-mobile.png/desktop.png`。初次67项功能检查后脚本误等toast节点删除而超时,改为等隐藏、保留原记录,并在新的合成12月日期完整重跑81项通过。
复核发现共享会话清理会丢待确认键,`clearAccountCache`现仅排除原userId的三字段签到命令,其它资料缓存与会话继续清理;401/过期/退出/账户切换后的确认仍须重新鉴权且不能带到新会员。同步积分契约v3,作为恢复范围的工程调整,非奖励规则批准。HBuilderX 5.26最终Android 19:22:21、微信小程序19:23:14编译通过;H5保留已有layout/PDF编译警告,正常浏览器业务路径没有未解释异常。
登录清理专项35项/17请求通过:15次真实隔离积分HTTP和2次合成密码登录,真实提交丢响应→Redis Token撤销401→会话/资料哨兵清理且原键保留→同会员重新登录→实际原键重放,余额只加7、流水只加1,另一账户缓存不受清理影响。专项只实测401路径;本机过期、主动退出及saveSession切换共用的清理函数已同步例外,但这些完整交互未另外实测。安全回执 `ui-auth-recovery-result.json`,截图 `points-auth-recovery-confirmed.png`。主流程/补充/专项共214项;积分请求共223次(216真实后端、7受控故障),合成登录请求另计。
收尾:两次随机积分库(首次修正脚本前后)、自建空源库、scope Token、随机runtime及私密fixture/INI均精确移除;独立MySQL3309/PID63248正常SHUTDOWN、PHP64115/PID37280停止,原Redis队列摘要保持,0模型/worker调用。MySQL临时data保留但进程不运行,不包含业务数据;当前没有本轮3309/64115/5173监听。回执 `cleanup-result.json`、`source-cleanup-result.json` 和 `verification.json`保留。脚本依赖已删私密环境,不能直接重跑,应重新准备明确隔离夹具。原3306和线上未触碰,未提交/推送。
工具边界:Browser插件未提供,现有Playwright完成全部页面检查;长期H5开发上下文HMR日志出现过一次scrollTop空对象错误,最终独立浏览器记录pageerror均0,未将热更新上下文列为真实设备结论。停止常驻CLI后,后台重新启动预览被自动审批以 `blocked by policy` 拒绝;未改用其它机制绕过,预览服务未保留,不提供可用本地URL。
积分后端仍为已部署提交 `5fee3cf`;本轮前端未发行,正式配置 `enabled=false`、DEC-POINT待确认、原表4增量未应用。仅本地隔离开发,不做运营/真机验收或模型/worker调用。POINT-002与POINT-004开发中,POINT-003未开始;POINT-004的邀请与资料奖励部分尚未实施。
### 0.50 2026-10-02 积分页面真实读取
积分页面已接入已部署的积分服务:读取余额、规则、任务和本人流水,使用服务端业务日与规则版本;流水使用 `snapshotId`/`beforeId` 游标,空账本保留 `snapshotId=0`。移除本机签到天数、固定 10 分和固定邀请码,关闭配置时保留奖励 `null` 并显示未发布状态。
签到请求键按 `pts_` 加 32 位小写十六进制生成,并按当前账户保存请求上下文;未知网络结果继续使用原键确认,成功后重新读取余额。页面增加登录回跳、加载/错误/空流水/分页状态,并校验 Token 与页面代次,阻止离页或切换账户的迟到结果。
积分配置仍 `enabled=false`,未执行原表迁移、正式奖励发布或真实设备到账验收。HBuilderX 5.26 Android 与微信小程序编译通过;下一步为业务规则确认后的隔离 HTTP/页面联调,不把编译结果视为积分到账验收。
### 0.49 2026-10-01 积分协议与隔离开发检查
@@ -106,7 +144,7 @@ PHP/JS语法、权限/隐私纯内存回归及227项真实隔离HTTP/数据库
后台新增独立FAQ编辑入口,沿用现有管理员权限、发布状态和版本冲突保护;FAQ初始内容使用显式目标的`database/import_faq.php`和`database/faq_initial.json`导入,预检默认不写入,不能连接默认`.env`。前端帮助页移除本地FAQ数组,始终读取服务端并保留空态/错误重试。
本轮仅完成源码、种子脚本和隔离事务回归,未导入正式库、未部署PHP/后台资源、未修改正式数据。FAQ之后继续开发反馈提交/处理闭环;人工客服仍受`EXT-CS`供应商选择阻塞。原有资讯、课堂、搜索、课程进度、消息和产品部署状态不变。
本轮仅完成源码、种子脚本和隔离事务回归,未导入正式库、未部署PHP/后台资源、未修改正式数据。2026-10-03修正退出登录后的评估资料说明,并为导入脚本增加种子slug必填/唯一校验及`--apply`前备份目录门禁;本机隔离MySQL/PHP当前未运行,尚未执行数据库预检或接口联调。FAQ之后继续开发反馈提交/处理闭环;人工客服仍受`EXT-CS`供应商选择阻塞。原有资讯、课堂、搜索、课程进度、消息和产品部署状态不变。
### 0.40 2026-10-01 反馈提交与处理闭环开发
@@ -521,7 +559,7 @@ P0 表示核心流程、安全、首发外部能力或发布门槛;P1 表示
| CHAT AI 助手 | 模拟对话 | 会话/消息/使用量字段已有 | 调用、上下文、配额待开发 | 待开发 | 依赖 DeepSeek | 未完成 |
| CONTENT 内容课堂 | 新闻/课程/搜索/首页真实接口,云端进度;FAQ服务端读取 | 原内容表JSON及课程进度关系表正式上线 | 发布/下架/章节编辑/FAQ维护完成 | 隔离/服务器验收通过,真机/多设备待验收 | 原4新闻/3课程按slug导入;FAQ源码未部署 | 开发中,见0.39 |
| MSG 消息中心 | 服务端消息、分类分页、已读及首页红点 | read_at/关联业务字段及唯一事件索引已有 | 通知事件/去重已实现 | 本机/服务器检查通过,真机/多设备待验收 | 无独立外部渠道要求 | 开发中,见0.37 |
| POINT 积分邀请 | 本机体验签到,未接真实后端 | 既有业务索引复用;schema期望两字段/两索引,新合成库迁移/恢复通过,原表未迁移 | 五接口/事务/严格HTTP/默认关闭和旧写保护源码完成未部署 | 主服务238/HTTP输入190/迁移110纯检查、真实HTTP1079项87请求、合成apply/恢复89及只读预检23通过;页面未接 | DEC-POINT待确认,见0.49和[积分契约](积分规则与开发契约.md) | POINT-001阻塞,POINT-002开发中,003/004未实施 |
| POINT 积分邀请 | 真实余额/规则/流水/签到恢复已接入并完成隔离页面联调,未发行 | 既有业务索引复用;schema期望两字段/两索引,新合成库迁移/恢复通过,原表未迁移 | 五接口/事务/严格HTTP/默认关闭和旧写保护已随5fee3cf部署,正式积分仍关闭 | 主服务238/HTTP输入190/迁移110纯检查、真实HTTP1079项87请求、合成apply/恢复89及只读预检23;页面主流程98项127请求通过 | DEC-POINT待确认,最新见0.51和[积分契约](积分规则与开发契约.md) | POINT-001阻塞,002/004开发中,003未开始 |
| SUPPORT 客服反馈 | 帮助页FAQ、文字反馈、本人记录;客服暂未开放 | feedback处理字段、请求键唯一索引已在隔离库应用 | 反馈闭环及后台白名单处理完成;客服签名待开发 | POST/GET反馈及详情已实现;附件服务未开放 | 人工客服待定 | 反馈开发完成,见0.40;客服未完成 |
| ADMIN 后台运营 | FastAdmin 管理界面已有 | 管理员权限保持,会员组保持删除 | 档案/产品/密钥表单已适配,运营排障待补齐 | 面向管理员的新增能力待开发 | 依赖各渠道状态 | 基础界面修改不等于运营验收 |
| RELEASE 发布验收 | Web/Android 曾完成本地编译 | 本机迁移已有,其他环境须单独设计升级 | 未建立完整首发部署/恢复链路 | 无全量真实联调证据 | 域名/HTTPS/队列部署等待定 | H5 首发、真机和多端发布均未完成 |
@@ -566,7 +604,7 @@ P0 表示核心流程、安全、首发外部能力或发布门槛;P1 表示
| 账户安全 | packages/account/security/security | AUTH-004 | 入口与客户端校验 |
| 修改密码 | packages/account/password/password | AUTH-004 | 真实服务未接通,不模拟成功 |
| 换绑手机 | packages/account/change-phone/change-phone | AUTH-004 | 真实服务未接通,不模拟成功 |
| 积分中心 | packages/account/points/points | POINT-004 | 体验签到与本机记录 |
| 积分中心 | packages/account/points/points | POINT-004 | 服务端余额/规则/任务/流水及签到原键确认,隔离联调通过、未发行 |
| 消息中心 | packages/account/messages/messages | MSG-004 | 服务端分页/已读与原版本跳转 |
| 搜索 | packages/content/search/search | CONTENT-004 | 服务端分类/分页搜索 |
| 帮助与反馈 | packages/content/help/help | CONTENT-004、SUPPORT-004 | 本地 FAQ,客服未开放 |
@@ -828,14 +866,14 @@ DEC-DEMAND已确认并发布,需求录入/提交/历史子范围已实现;
| POINT-001 | 积分规则定稿 | 确认签到、资料完成、邀请奖励的条件/次数/额度、业务时区和权益范围。 | P1 | BASE-001、DEC-POINT | 0.5–1 | 阻塞 |
| POINT-002 | 积分账户与签到 | 事务更新score与流水、业务唯一键、服务端日期签到、余额/流水查询。 | P1 | POINT-001、AUTH-002 | 1.5–2 | 开发中 |
| POINT-003 | 邀请码与邀请关系 | 生成唯一邀请码、首次有效绑定、防自邀、可信奖励事件与发放幂等。 | P1 | POINT-002 | 1–2 | 未开始 |
| POINT-004 | 任务积分页面联调 | 真实余额、流水、签到状态、个人邀请码、任务状态和规则说明。 | P1 | POINT-003、ASSESS-004 | 1–2 | 未开始 |
| POINT-004 | 任务积分页面联调 | 真实余额、流水、签到状态、个人邀请码、任务状态和规则说明。 | P1 | POINT-003、ASSESS-004 | 1–2 | 开发中 |
| 任务编号 | 负责人 | 验收条件 | 证据 | 更新时间 |
| --- | --- | --- | --- | --- |
| POINT-001 | 全栈开发(待指定) | 形成版本化活动规则;复制/分享不等于奖励;未确认奖励规则不得上线。 | 规则建议见0.47、基础实现见0.48;数额/权益/期限/等级仍待DEC-POINT确认,不启用发布配置 | 2026-10-01 |
| POINT-002 | 全栈开发(待指定) | 同用户同日并发只加一次;流水与积分一致;错误不静默吞掉。 | 0.49五接口/事务/严格HTTP/默认关闭及旧写保护完成;纯服务238/输入190/迁移110、HTTP1079项87请求、新合成库apply/恢复89、原表只读预检23通过;原表未迁移、页面未接/未部署 | 2026-10-01 |
| POINT-002 | 全栈开发(待指定) | 同用户同日并发只加一次;流水与积分一致;错误不静默吞掉。 | 五接口/事务/严格HTTP及旧写保护已随5fee3cf部署;0.51真实隔离页面与原键确认通过;正式配置关闭、规则待批准、原表未迁移 | 2026-10-02 |
| POINT-003 | 全栈开发(待指定) | 客户端不能自报完成奖励;重复/自邀拒绝;已有关系不随分享覆盖。 | 邀请资格/奖励规则与关系方案后续确认;未实施,无真实邀请码/奖励 | 2026-10-01 |
| POINT-004 | 全栈开发(待指定) | 真实到账后才提示成功;跨账户/跨设备一致;邀请复制不立即发奖励。 | 页面实施边界已列设计,当前仍体验签到,未联调真实积分API或到账 | 2026-10-01 |
| POINT-004 | 全栈开发(待指定) | 真实到账后才提示成功;跨账户/跨设备一致;邀请复制不立即发奖励。 | 0.50/0.51余额、规则、任务、流水及签到恢复已接真实API并完成隔离页面联调;邀请码/邀请及资料奖励未实施,未发行或真机验收 | 2026-10-02 |
直接阻塞:POINT-001 → DEC-POINT;POINT-002推进默认关闭的实现与隔离检查,HTTP后端检查已完成,规则发布/真实入账仍须POINT-001定稿及原表迁移、页面开发检查。