feat(融资): 新增产品对比页面及相关接口实现

新增产品对比页面 compare/compare,支持同一评估下最多3个产品的横向对比,展示额度、期限、利率、适用条件等核心指标及匹配详情。
新增 matches.uts 服务层,封装匹配列表、详情、公共产品查询接口。
新增 account 分包的 latest-report.uts 服务,用于查找用户最新成功报告。
调整个人中心页面,将“评估记录”改为“开始评估”,新增最近报告直达功能。
更新文档,标记匹配相关接口及原型07、09页面已实现,调整页面数量至26页。
移除 finance 分包中旧的 fetchMatches、fetchProduct 模拟数据接口,统一使用正式API。
This commit is contained in:
hujun
2026-09-28 14:56:46 +08:00
parent 26da91b337
commit 7c252fc730
20 changed files with 1605 additions and 403 deletions
+65 -20
View File
@@ -1,6 +1,6 @@
# AI 融资平台开发文档
> 版本:v1.9 · 基线日期:2026-09-22 · 更新日期:2026-09-24 · 状态:目录冻结、规则匹配和正式任务落库已接通;本地已上架6条演示产品,匹配接口及04—10页面待接
> 版本:v1.14 · 基线日期:2026-09-22 · 更新日期:2026-09-28 · 状态:匹配分页/详情及公共产品详情已接通;03/04/05/06基础接入,07对比与09报告三栏本地联调通过;08助手、09PDF、10行动待开发
> 配套台账:[开发进度](开发进度.md)。本文定义范围、接口和验收口径,台账记录实际执行与证据。
> 文档初始规划后已开始开发;以下更新记录优先于原始基线。除明确列为已实现的部分外,计划接口和增量数据仍待开发。
@@ -132,6 +132,50 @@ eligibility_rules完整格式、字段映射与发布限制见[产品规则契
报告页已从固定“未执行匹配”改为读取后端统计与演示提示。匹配列表/详情API、公共查询、单产品AI解释及04—10整体改造仍未交付,不能跳转现有模拟匹配页当真实结果。465项PHP检查通过,Web/Android编译通过,H5报告统计/刷新/历史导航通过;细节见台账6.12与[规则契约](产品匹配规则开发契约.md)第7节。
### 0.12 2026-09-24 匹配读取接口与03/04/05/06页面基础接入
已新增本人匹配分页、匹配详情、会员可读公共产品详情三个GET接口。读取既有快照,不重跑模型或规则;先验证评估归属与成功状态,再解析绑定账户/评估/结果摘要/分组的加密游标。当前产品下架、过期或删除只改变currentAvailability,历史参数与理由保持不变。公共详情不附个人判定、理由或事实。
报告新增“查看本次匹配与依据”;匹配列表展示三态分组、真实统计、默认三项分页、失败重试和演示标记;详情改为匹配解释/产品详情/申请条件三栏,金额及事实以万元展示,取消固定匹配百分比。已满足理由可展开,不符/待核实理由完整保留;AI解释未生成时明确提示。无评估入口引导历史或新评估,不猜测最近记录;越权不回退公共产品。
PRODUCT-004记为开发中,不能标整项完成:07对比、08上下文助手、09报告三栏/PDF、10行动页及单产品AI解释仍待开发。当前“查看资料准备说明”仅切换条件栏,不提交申请;返回重新鉴权读取列表首屏,精确滚动位置恢复与登录后原路返回待后续完善。真实产品资料/人工金标准及微信内H5、真机验收仍未完成。具体接口见规则契约第8节,验证见进度6.13。
### 0.13 2026-09-28 融资档案恢复原卡片布局
按用户确认,融资档案恢复个人/企业切换、完整度卡片和四组资料入口,新增历史记录选择;保留无草稿、提交后只读及多次评估分别存档的规则。默认展示所选类型的最新记录,可分页切换较早记录;显式assessmentId刷新后重新鉴权查看原记录,错误不回退到最新记录。数据分组展开查看,底部进入同次报告/分析状态或空白新评估。
完整度仅取本人成功报告的冻结percent,不从当前字段重算;无记录、旧版未计算、分析中/失败、未评定及读取错误使用“—”和对应说明,不能显示成0%。各组“已记录”仅指存在已提交字段,不等同该组完整或信用核验。资料与授权保持未开放。金额仍精确显示万元。代码位于archive/archive.uvue和services/records.uts,复用已有后端type过滤与读取API,本轮无后端业务修改、迁移或新增表。
### 0.14 2026-09-28 个人中心入口去重
个人中心顶部“评估记录/查看”改为图标+“开始评估”,先选择个人/企业,再进入对应融资入口;“评估报告/查看”改为图标+“最近报告”。菜单“我的融资档案”继续作为个人/企业历史、已提交资料和对应报告的管理入口。
最近报告通过已有GET /assessments?status=succeeded&limit=1查询本人所有类型中最近提交且已成功的记录,携带assessmentId直接打开报告;不被较新的未完成评估遮挡。无成功记录才查询status=processing&limit=1,提示“报告生成中”并可查看同次进度;两者都无则提示暂无报告,可发起评估,失败记录仍在融资档案查看。请求异常提示重试,不假装没有报告。查找不创建评估、不重跑分析、不缓存个人报告。
账户分包新增latest-report.uts服务,仅依赖共享请求,不跨包导入融资服务。未登录先登录,查找中防重复,离页/Token变化后丢弃迟到响应和弹窗回调。沿用既有edit-file/file-text图标,与积分中心统一样式,无新增页面或后端接口。
### 0.15 2026-09-28 原型07产品对比基础完成
PRODUCT-005新增compare页面,注册页数由25变为26。匹配列表与本次产品详情可选择最多3项,支持跨分组选择;正式对比需2—3项,0/1项仅作补选状态。URL按顺序保存assessmentId和productIds,移除会替换URL,刷新重新鉴权。选择ID只存在按账户会话/评估隔离的内存中,不新增草稿、持久个人缓存或数据表。
每列复用GET /assessments/:id/matches/:productId,最多三项并行;校验响应assessmentId、产品ID、resultVersion、catalogSnapshotId、ruleVersion和orderingPolicyVersion。错误列独立重试,版本不一致的列不展示参数,完整对比必须所有列读取成功。越权/不存在不回退公共产品,不重跑规则或模型;401清理显示并转登录,离页/会话变化丢弃迟到响应。
指标包括需求覆盖证据、额度、期限、年化利率、主体/地区、三类条件理由、准入规则、材料、还款方式、渠道、有效期与来源。历史参数和当前可用性分开显示,金额精确转万元,缺值显示未提供;未结构化的还款方式/渠道不猜测。首列固定,手机横向滚动,桌面列宽展开;长内容在单元格内滚动。当前仅提供详情/选择入口,不提供申请提交。
状态为待验收:本地编译及合成账户真实读取接口验证完成,真实机构产品签收、微信内H5/Safari与真机仍待验收。详细证据见开发进度6.16。下一步为REPORT-004报告三栏,PDF、上下文助手及行动页独立开发。
### 0.16 2026-09-28 原型09报告三栏基础完成
REPORT-004页面子项完成本地联调:report/report改为评估概况、匹配结果、改善建议。URL中的tab限定overview/matches/improvements,默认overview;切栏替换当前路由,刷新恢复栏目并重新鉴权读取本人报告,不创建评估或重跑模型。无前页时返回融资档案;产品与匹配入口始终携带当前assessmentId。
概况保留冻结需求、准备状态、真实完整度进度条、生成时间、自填来源、AI摘要/优势、风险与免责声明;事实及逐项完整度可展开。v1明确提示当时未采集/未计算,百分比显示“—”;v2未评定与实际0%分开,不用当前规则补算历史。
匹配栏从报告读取三态统计,复用GET /assessments/:id/matches?eligibility=eligible&limit=3展示最多3项候选,提供完整列表及不符/待核实入口。改善栏组合缺失/待核实字段、准备依据、已保存AI建议及不符/待核实分组各前3项产品证据,关联产品详情并标明摘要边界;没有依据不补造建议。不符条件仅解释现状,不承诺改善后获批。
报告与列表校验assessmentId、resultVersion、catalogSnapshotId、ruleVersion、orderingPolicyVersion及三态统计;不同版本不拼接。候选和两个建议分组分别加载/重试,局部失败不隐藏已保存报告,也不显示为零候选。按可见栏目请求,概况不请求产品;离页/Token变化丢弃旧响应,401清空内容并回登录。修复匹配列表返回时的卸载挂载冲突:先关闭内容渲染,再清空资料。
继续无草稿。“重新评估”选择个人/企业并清空当前流程内存,进入空白填写页;只有再次正式提交才创建新assessmentId。页面仍26个,未改后端业务、未迁移、未调用收费模型。PDF(REPORT-005)、下一步行动(REPORT-006)与上下文助手按独立任务推进,未展示虚假可用按钮。REPORT-004整体仍开发中,真实产品/外部渠道与微信内H5、真机尚未验收;证据见开发进度6.17。
## 1. 项目目标与现状
### 1.1 已确认范围
@@ -146,7 +190,7 @@ eligibility_rules完整格式、字段映射与发布限制见[产品规则契
| 项目 | 当前事实 | 规划用途 |
| --- | --- | --- |
| 前端 | uni-app x / Vue 3 / UTS,25 页,无独立 npm 构建入口 | 沿用 HBuilderX 和现有分包,不重新搭建前端 |
| 前端 | uni-app x / Vue 3 / UTS,26 页,无独立 npm 构建入口 | 沿用 HBuilderX 和现有分包,不重新搭建前端 |
| 后端 | FastAdmin / ThinkPHP 5.0.28 / PHP 7.4 | 复用认证、后台、模型与队列依赖,新增业务 API/服务 |
| 数据库 | MySQL 8.0.44,删除空 Token 表后实际 25 张 InnoDB 表 | 已核对本地库并更新结构快照;恢复点见进度第0节 |
| 当前前端模式 | 开发环境已连接本地 v1 API,模拟请求开关关闭 | 密码账户流程已接入,内容与产品匹配等页面仍有原型数据,不按页面数计算完成度 |
@@ -173,9 +217,9 @@ eligibility_rules完整格式、字段映射与发布限制见[产品规则契
## 2. 页面与功能覆盖
路由以 [pages.json](../pages.json) 为准。以下覆盖现有全部 25 页;反馈表单、历史列表等优先补入所属现有页面,若交互确需新增页面,在所属分包注册并同步台账。
路由以 [pages.json](../pages.json) 为准。以下覆盖现有全部 26 页;反馈表单、历史列表等优先补入所属现有页面,若交互确需新增页面,在所属分包注册并同步台账。
原型04—10新增路由仅属计划,尚未注册:`packages/finance/compare/compare`(PRODUCT-005)与`packages/finance/next-step/next-step`(REPORT-006);目标共27页。04/05/06均复用product/product,报告PDF不另加页面。参数与返回矩阵见专项页面方案第3节。
原型07路由`packages/finance/compare/compare`(PRODUCT-005)已注册,现共26页;`packages/finance/next-step/next-step`(REPORT-006)待开发注册,目标共27页。04/05/06均复用product/product,报告PDF不另加页面。参数与返回矩阵见专项页面方案第3节。
| 序号 | 页面路由 | 功能职责 | 主要任务 |
| --- | --- | --- | --- |
@@ -204,6 +248,7 @@ eligibility_rules完整格式、字段映射与发布限制见[产品规则契
| 23 | packages/content/article/article | 新闻、协议和说明内容 | CONTENT-001、CONTENT-002、FILE-003 |
| 24 | packages/content/classroom/classroom | 课程分类和推荐 | CONTENT-002 |
| 25 | packages/content/lesson/lesson | 图文章节、学习状态 | CONTENT-001、CONTENT-003 |
| 26 | packages/finance/compare/compare | 同次评估2—3产品冻结结果对比、补选及独立重试 | PRODUCT-005 |
## 3. 数据与架构约定
@@ -311,7 +356,7 @@ eligibility_rules完整格式、字段映射与发布限制见[产品规则契
- **前端:** 统一请求与账户专用请求,处理认证、业务错误、重复点击、加载/空态、401回跳;首页聚合公共内容与登录后状态。
- **后端:** 新路由显式绑定控制器和方法;解析JSON并逐字段校验,不能对结构化输入机械套用HTML转义;兼容旧Token入口但新客户端只发送Bearer。
- **数据:** 以userId建立账户缓存命名空间;旧草稿键清理,不提供导入;未提交内容只在当前流程内存中传递。
- **接口:** GET /home、GET /dictionaries,以及所有接口共用协议。 具体方法和字段见第5章;均按计划新增/改造处理。
- **接口:** GET /home、GET /dictionaries,以及所有接口共用协议。 具体方法和字段见第5章;匹配分页/详情、公共产品详情已实现,公共产品列表仍计划新增。
- **异常与边界:** 生产缺API地址直接报配置错误;禁止静默降级成demo。断网不删除服务端事实。
| 任务编号 | 任务与交付范围 | 优先级 | 前置任务/外部条件 | 验收条件 | 人日 |
@@ -347,7 +392,7 @@ eligibility_rules完整格式、字段映射与发布限制见[产品规则契
- **前端:** 按微信内/普通浏览器/桌面浏览器展示受支持登录方式,处理跳出返回、取消和短信回退。
- **后端:** 服务端code/credential交换,state和回调防重放;已有账户绑定需账户证明,禁止按昵称自动合并。
- **数据:** 独立第三方身份关系以provider/appId/subject唯一;unionid仅在取得并验证适用范围后辅助绑定。
- **接口:** GET /auth/wechat/authorize、GET /auth/wechat/callback、POST /auth/oneclick、POST /auth/bind-phone。 具体方法和字段见第5章;均按计划新增/改造处理。
- **接口:** GET /auth/wechat/authorize、GET /auth/wechat/callback、POST /auth/oneclick、POST /auth/bind-phone。 具体方法和字段见第5章;匹配分页/详情、公共产品详情已实现,公共产品列表仍计划新增。
- **异常与边界:** 渠道授权失败不创建半登录会话;不支持的网络或浏览器回到短信;只有支持矩阵中场景通过才记完成。
| 任务编号 | 任务与交付范围 | 优先级 | 前置任务/外部条件 | 验收条件 | 人日 |
@@ -365,7 +410,7 @@ eligibility_rules完整格式、字段映射与发布限制见[产品规则契
- **前端:** 资料类型、上传进度/失败重试、已上传列表、协议全文、授权状态和撤销入口。
- **后端:** 私有文件服务、归属/MIME/内容/大小校验、鉴权下载、协议版本和授权事件;评估提交时由服务端形成快照。
- **数据:** 复用附件表与评估JSON;协议修订和独立授权事件保留历史;文件保留/删除期限在DEC-PRIVACY定稿。
- **接口:** POST /documents、GET/DELETE /documents/:id、GET /agreements/:code、GET/POST /consents、POST /consents/:id/revoke。 具体方法和字段见第5章;均按计划新增/改造处理。
- **接口:** POST /documents、GET/DELETE /documents/:id、GET /agreements/:code、GET/POST /consents、POST /consents/:id/revoke。 具体方法和字段见第5章;匹配分页/详情、公共产品详情已实现,公共产品列表仍计划新增。
- **异常与边界:** 临时路径、他人附件、无效授权全部拒绝;可选资料不强迫提交;撤销后停止新查询,历史留存按已确认规则处理。
| 任务编号 | 任务与交付范围 | 优先级 | 前置任务/外部条件 | 验收条件 | 人日 |
@@ -401,7 +446,7 @@ eligibility_rules完整格式、字段映射与发布限制见[产品规则契
- **前端:** 展示实际可用查询种类、授权状态、查询中/成功/失败/拒绝/撤销,不把选择框当查询完成。
- **后端:** 服务商适配、签名、异步状态、回调验签/去重、对账、费用状态;原始证件标识只在必要服务端流程使用。
- **数据:** 查询记录与评估/用户/授权绑定;必要结果加密或私有存储;输入冻结后只追加查询事件。
- **接口:** GET/POST /assessments/:id/data-queries、GET /data-queries/:id、POST /callbacks/data/:provider。 具体方法和字段见第5章;均按计划新增/改造处理。
- **接口:** GET/POST /assessments/:id/data-queries、GET /data-queries/:id、POST /callbacks/data/:provider。 具体方法和字段见第5章;匹配分页/详情、公共产品详情已实现,公共产品列表仍计划新增。
- **异常与边界:** 超时收费不明先查渠道状态;未取得或已撤销授权不新调用;缺失数据标未知,不能伪装征信正常。
| 任务编号 | 任务与交付范围 | 优先级 | 前置任务/外部条件 | 验收条件 | 人日 |
@@ -419,7 +464,7 @@ eligibility_rules完整格式、字段映射与发布限制见[产品规则契
- **前端:** 拆Product与MatchResult;显示范围而非单点额度/利率;保持历史快照并提示当前产品状态。
- **后端:** 确定性规则、白名单操作符、类型校验、版本化排序;只推荐状态/有效期/地区及硬条件满足的产品。
- **数据:** 产品独立字段+regions/eligibility_rules;个性化分数和理由放match_result,快照含产品版本。
- **接口:** GET /products、GET /products/:id、GET /assessments/:id/matches;后台沿用产品CRUD并补运营校验。 具体方法和字段见第5章;均按计划新增/改造处理。
- **接口:** GET /products、GET /products/:id、GET /assessments/:id/matches;后台沿用产品CRUD并补运营校验。 具体方法和字段见第5章;匹配分页/详情、公共产品详情已实现,公共产品列表仍计划新增。
- **异常与边界:** 暂无匹配是合法完成结果;规则未知不执行任意表达式;产品下架不删除历史快照。
| 任务编号 | 任务与交付范围 | 优先级 | 前置任务/外部条件 | 验收条件 | 人日 |
@@ -438,7 +483,7 @@ eligibility_rules完整格式、字段映射与发布限制见[产品规则契
- **前端:** 轮询真实状态、刷新恢复、失败重试;渲染数据驱动维度、来源时间和版本;查看历史。
- **后端:** DeepSeek适配、结构校验、任务抢占/超时/漏投补偿、输入最小化、用量记录;在事务中同时落报告、匹配和成功状态。
- **数据:** result_version/rule_version/model与产品快照分别记录;模型输出不能覆盖金额、硬准入或数据来源。
- **接口:** GET /assessments/:id/status、GET /assessments/:id/report;内部worker调用complete/fail,不公开完成接口。 具体方法和字段见第5章;均按计划新增/改造处理。
- **接口:** GET /assessments/:id/status、GET /assessments/:id/report;内部worker调用complete/fail,不公开完成接口。 具体方法和字段见第5章;匹配分页/详情、公共产品详情已实现,公共产品列表仍计划新增。
- **异常与边界:** 模型输出错误/配额不足/队列故障进入可追踪失败;重试不允许旧taskId回写;供应商超时可能计费,不承诺外部零重复收费。
| 任务编号 | 任务与交付范围 | 优先级 | 前置任务/外部条件 | 验收条件 | 人日 |
@@ -458,7 +503,7 @@ eligibility_rules完整格式、字段映射与发布限制见[产品规则契
- **前端:** 创建/切换/恢复会话、分页历史、发送状态、异步回复轮询与重试;保留requestId。
- **后端:** DeepSeek对话、上下文裁剪、所有者校验、消息和本地额度幂等;用户输入不可触发任意管理操作。
- **数据:** 普通scene的assessment_id保持NULL;context_assessment_id只引用本人可访问评估;工具结果记录来源。
- **接口:** POST/GET /assistant/chats、GET/POST /assistant/chats/:id/messages、GET /assistant/messages/:id、POST /assistant/messages/:id/retry。 具体方法和字段见第5章;均按计划新增/改造处理。
- **接口:** POST/GET /assistant/chats、GET/POST /assistant/chats/:id/messages、GET /assistant/messages/:id、POST /assistant/messages/:id/retry。 具体方法和字段见第5章;匹配分页/详情、公共产品详情已实现,公共产品列表仍计划新增。
- **异常与边界:** 失败消息保留错误和可重试状态;切换账号不带上旧会话;渠道取消不能保证停止已发生计费,一期不要求生成中强制取消。
| 任务编号 | 任务与交付范围 | 优先级 | 前置任务/外部条件 | 验收条件 | 人日 |
@@ -476,7 +521,7 @@ eligibility_rules完整格式、字段映射与发布限制见[产品规则契
- **前端:** 新闻、文章、课堂、课程页接真实分页/详情;处理404/下架,搜索竞态和章节完成状态。
- **后端:** 发布/下架、富文本清洗、分类与首页推荐、搜索和FAQ;稳定章节ID与进度幂等。
- **数据:** 复用fa_acticle/fa_finance;章节数据结构化;用户章节完成关系独立存储;不引入视频和付费课程。
- **接口:** /content/articles、/content/lessons、/content/lessons/:id/progress、/content/search、/help/faqs。 具体方法和字段见第5章;均按计划新增/改造处理。
- **接口:** /content/articles、/content/lessons、/content/lessons/:id/progress、/content/search、/help/faqs。 具体方法和字段见第5章;匹配分页/详情、公共产品详情已实现,公共产品列表仍计划新增。
- **异常与边界:** 未发布内容不可访问;新增/重排章节不沿用索引作为进度ID;搜索慢响应不得覆盖新查询。
| 任务编号 | 任务与交付范围 | 优先级 | 前置任务/外部条件 | 验收条件 | 人日 |
@@ -494,7 +539,7 @@ eligibility_rules完整格式、字段映射与发布限制见[产品规则契
- **前端:** 分类分页、未读数、已读/全部已读、与正确评估记录跳转。
- **后端:** 在业务事务完成后可靠生成通知,事件唯一键去重;读取和更新均限定当前用户。
- **数据:** 复用fa_user_message,补事件唯一键;is_read和read_at同步;全部已读采用最大ID水位。
- **接口:** GET /messages、GET /messages/unread-count、POST /messages/:id/read、POST /messages/read-all。 具体方法和字段见第5章;均按计划新增/改造处理。
- **接口:** GET /messages、GET /messages/unread-count、POST /messages/:id/read、POST /messages/read-all。 具体方法和字段见第5章;匹配分页/详情、公共产品详情已实现,公共产品列表仍计划新增。
- **异常与边界:** 队列重试不重复通知;全部已读期间新增消息仍未读;本期站内消息不等同App推送。
| 任务编号 | 任务与交付范围 | 优先级 | 前置任务/外部条件 | 验收条件 | 人日 |
@@ -512,7 +557,7 @@ eligibility_rules完整格式、字段映射与发布限制见[产品规则契
- **前端:** 真实积分、流水、服务端签到状态、邀请码和任务进度,显示已发布规则版本。
- **后端:** 积分事务和并发锁、日期与任务幂等、防自邀、可信事件奖励;错误需向业务层传播。
- **数据:** 复用score及score_log,明确business_type/business_id;邀请码唯一、受邀用户一次绑定。
- **接口:** GET /points、GET /points/ledger、POST /points/check-in、GET /points/tasks、GET /invitations、POST /invitations/bind。 具体方法和字段见第5章;均按计划新增/改造处理。
- **接口:** GET /points、GET /points/ledger、POST /points/check-in、GET /points/tasks、GET /invitations、POST /invitations/bind。 具体方法和字段见第5章;匹配分页/详情、公共产品详情已实现,公共产品列表仍计划新增。
- **异常与边界:** 默认保留每日签到10分作为待业务确认建议;其他奖励金额不编造。复制文案或客户端上报完成不直接发积分。
| 任务编号 | 任务与交付范围 | 优先级 | 前置任务/外部条件 | 验收条件 | 人日 |
@@ -530,7 +575,7 @@ eligibility_rules完整格式、字段映射与发布限制见[产品规则契
- **前端:** 反馈表单/附件/记录/回复;客服在线/排队/离线状态及失败回退。
- **后端:** 反馈归属与后台处理、服务端访客签名、客服会话关联;外部系统消息遵循渠道身份规则。
- **数据:** 复用fa_feedback补处理结果;不把反馈图片当公共文件;客服历史优先由供应商维护。
- **接口:** POST/GET /feedback、GET /feedback/:id、POST /support/session。 具体方法和字段见第5章;均按计划新增/改造处理。
- **接口:** POST/GET /feedback、GET /feedback/:id、POST /support/session。 具体方法和字段见第5章;匹配分页/详情、公共产品详情已实现,公共产品列表仍计划新增。
- **异常与边界:** 无坐席能留言且后台有责任人;SDK失败提示可使用站内反馈;退出切换账号清理客服身份。
| 任务编号 | 任务与交付范围 | 优先级 | 前置任务/外部条件 | 验收条件 | 人日 |
@@ -548,7 +593,7 @@ eligibility_rules完整格式、字段映射与发布限制见[产品规则契
- **前端:** FastAdmin后台增加任务、模型额度、查询状态和运营入口,非移动端新增主导航。
- **后端:** 角色授权、敏感字段掩码、任务/查询定位、受控重试和审计;不允许手改已提交评估输入及正式结果。
- **数据:** 复用管理员fa_auth_*;保留被删除会员组/规则表的删除状态;不恢复历史无关业务表。
- **接口:** 沿用后台路由与权限体系;不将管理查询、complete/fail或密钥管理暴露到用户API。 具体方法和字段见第5章;均按计划新增/改造处理。
- **接口:** 沿用后台路由与权限体系;不将管理查询、complete/fail或密钥管理暴露到用户API。 具体方法和字段见第5章;匹配分页/详情、公共产品详情已实现,公共产品列表仍计划新增。
- **异常与边界:** 权限不足不可越权;重试需要有效状态和当前taskId;日志不得输出证件或模型密钥。
| 任务编号 | 任务与交付范围 | 优先级 | 前置任务/外部条件 | 验收条件 | 人日 |
@@ -566,7 +611,7 @@ eligibility_rules完整格式、字段映射与发布限制见[产品规则契
- **前端:** 普通桌面/手机/微信内H5、上传/键盘/回跳/弱网、深链接和版本更新回归。
- **后端:** 全链路、并发、权限、真实渠道、迁移和恢复;部署队列守护及错误/费用监控。
- **数据:** 使用脱敏测试数据与独立环境;新增迁移先预检/备份/演练;禁止用旧备份覆盖新业务数据。
- **接口:** 对本章所有一期API及渠道执行自动与手动验收,记录版本、环境和证据。 具体方法和字段见第5章;均按计划新增/改造处理。
- **接口:** 对本章所有一期API及渠道执行自动与手动验收,记录版本、环境和证据。 具体方法和字段见第5章;匹配分页/详情、公共产品详情已实现,公共产品列表仍计划新增。
- **异常与边界:** 未完成任一必做能力不能标首发完成;生产配置不允许模拟Token、固定报告和占位协议。
| 任务编号 | 任务与交付范围 | 优先级 | 前置任务/外部条件 | 验收条件 | 人日 |
@@ -720,10 +765,10 @@ eligibility_rules完整格式、字段映射与发布限制见[产品规则契
| POST /callbacks/data/:provider | 渠道验签 | 供应商原始格式 | 供应商要求的ACK | 原始体验签、防重放、单号映射、幂等;不适用用户Bearer |
| GET /assessments/:id/report | 所有者 | 无 | Report(v1/v2自填版本) | 已实现;未成功409 REPORT_NOT_READY,不存在/越权404,旧结构409 REPORT_FORMAT_UNAVAILABLE;Cache-Control:no-store |
| GET /assessments/:id/report.pdf | 所有者 | 无 | application/pdf流;错误为JSON | 计划新增REPORT-005;401/404/409沿用报告语义,503 REPORT_EXPORT_UNAVAILABLE;no-store、安全文件名,不重跑模型 |
| GET /assessments/:id/matches | 所有者 | eligibility默认eligible、limit默认3上限50、cursor可空 | assessmentId、resultVersion、matching、items、hasMore、nextCursor | 计划新增,三态分组、冻结快照与游标绑定,见专项契约第5.3节;当前尚未实现 |
| GET /assessments/:id/matches/:productId | 所有者 | 无 | 该次匹配结果、理由、证据和快照 | 计划新增;只读本次已评估项;越权/快照无该产品404;不从当前公共产品拼历史 |
| GET /assessments/:id/matches | 所有者 | eligibility默认eligible、limit默认3上限50、cursor可空 | assessmentId、resultVersion、matching、items、hasMore、nextCursor | 已实现;三态分组、冻结快照与游标绑定,见专项契约第5.3节和规则契约第8节 |
| GET /assessments/:id/matches/:productId | 所有者 | 无 | 该次匹配结果、理由、证据和快照 | 已实现;只读本次已评估项;越权/快照无该产品404;不从当前公共产品拼历史 |
| GET /products | 公开 | type/regionCode可选、page/pageSize | Product分页 | 仅当前有效上架产品;不返回用户分数 |
| GET /products/:id | 公开 | 无 | Product | 下架/过期返回不可用语义;历史快照从本人匹配接口读取 |
| GET /products/:id | 会员Bearer | 无 | 公共产品DTO | 已实现;公共指不含个人结果,并非匿名;下架/过期404;历史快照从本人匹配接口读取 |
当前已实现自填分析支线(提交→数据库queued→Redis→DeepSeek→报告);以下授权查询和产品规则主流程仍待实现:提交后检查授权 → 获取选定的外部结果 → 冻结查询引用 → 规则匹配 → DeepSeek解释 → 原子保存正式结果。未选择可选外部授权时使用自填资料并标记来源;已选择查询但失败时是否允许降级到自填,需要DEC-QUERY形成明确规则。该规则未定稿前,相应错误按失败处理,不静默忽略。