feat: 支持评估版本隔离的报告、匹配及PDF导出功能
新增revisionId参数到路由、服务及导出接口,实现不同评估版本的隔离访问。删除已废弃的需求相关服务文件,移除取消采集的融资金额、期限和用途字段,更新相关页面提示文本。同时更新文档,说明评估版本、最新资料及产品展示规则的调整,支持前台正常业务名称显示,去除环境标签。
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
# 评估版本与最新资料
|
||||
|
||||
2026-09-30:本地代码已实施,正式数据库迁移、配套PHP部署及维护验收已完成,服务恢复;小程序/H5尚未发布。本文覆盖旧文档中“一条资料代表一次评估”“重新评估一律空白新建”“身份证落库加密”的历史约定。会话任务列已精简为8列,逻辑状态继续保存在版本输入JSON中。
|
||||
|
||||
## 用户行为
|
||||
|
||||
- **发起新评估**:空白个人/企业表单,正式提交新增一条 `fa_ai_chat`。
|
||||
- **修改资料并重新评估**:回填所选评估最新提交的完整资料,类型不可切换;提交复用原 `fa_ai_chat`,增加一个输入版本。不把另一份较新的独立评估资料混入本评估。
|
||||
- 不保存草稿。正式提交时按用户和类型更新最新资料;分析失败不撤销此次正式提交。每用户在 `fa_user_info` 最多个人、企业各一条。
|
||||
- 融资档案保留独立评估列表,并提供本评估版本历史和分页;历史输入与结果可单独查看。
|
||||
- 重评处理中或失败保留上次成功报告;成功才整体发布新报告与匹配结果。旧版本不被后续修改覆盖。
|
||||
- 继续使用inputVersion=3表单,不采集融资金额/期限/用途,也不显示这些取消字段的“未提供/待核实”。结果格式仍为resultVersion=2,不添加虚构分数。
|
||||
|
||||
## 存储及版本契约
|
||||
|
||||
| 表 | 约定 |
|
||||
| --- | --- |
|
||||
| `fa_user_info` | 最新正式资料,唯一 `(user_id,type)`;企业名称、信用代码、经营月数保留,`city_code` 在 `city` 前,末列 `delete_time` |
|
||||
| `fa_ai_chat` | 独立评估及当前任务;`current_input_id` 最新提交,`published_input_id` 最新成功版;`match_result` 为匹配对象数组,含03/04页面所需冻结产品、规则证据及已有解释 |
|
||||
| `fa_ai_chat_log.input_data` | 单个JSON存该版form/state/documents/consents/analysisContext/report/matches;system行作为版本,原聊天和模型调用记录继续保留 |
|
||||
|
||||
`revisionId` 是日志ID字符串,`revisionNo` 是同一评估内从1开始的展示序号;均不等于inputVersion/resultVersion。`assessmentId` 为公开评估编号,迁移保留旧值,新建使用会话ID;不得再用它查询最新资料表主键。
|
||||
|
||||
JSON结构:`schemaVersion:1, revisionNo, form, state, editId, baseRevisionId, documents, consents, report, matches, analysisContext`。form使用规范数据库字段,金额为元字符串;客户端展示万元,保留六位精度。迁移额外保存legacyProfile以保留旧列值。
|
||||
|
||||
身份证等业务身份资料按用户要求明文保存;完整回填仅本人鉴权接口可读。展示/PDF/模型白名单脱敏继续执行,业务明文要求不涉及登录密码、系统密钥和Token。
|
||||
|
||||
## 接口和并发
|
||||
|
||||
接口前缀 `/api/v1`:
|
||||
|
||||
| 接口 | 含义 |
|
||||
| --- | --- |
|
||||
| `POST /assessments` | 新建独立评估,requestId原键重放不新增、不回写最新资料 |
|
||||
| `GET /assessments/:id/edit` | 本人最新提交版本的完整可编辑表单及baseRevisionId |
|
||||
| `POST /assessments/:id/revisions` | 提交修改,携带baseRevisionId与独立requestId;版本冲突拒绝,处理中拒绝新修改 |
|
||||
| `GET /assessments/:id/revisions` | 同评估版本分页,默认20条 |
|
||||
| 详情、report、matches、产品详情、PDF | 支持revisionId;报告默认最新成功版,指定版本必须属于该评估与本人 |
|
||||
|
||||
用户/会话锁和锁定当前读保护幂等与序号。任务只读取提交快照;迟到任务不能覆盖新版本。失败重试复用该输入版本,修改提交才创建新版本。
|
||||
|
||||
报告→匹配→详情→对比→助手→下一步行动→PDF始终传递同一revisionId。对比选择按用户、评估、版本隔离;登录白名单保留版本。历史单产品解释只读;新版发布时中止旧版未完成解释,迟到用量仍留原调用日志。助手新会话冻结版本facts/view,旧会话继续原上下文,不随重评切换。
|
||||
|
||||
## 验证和发布
|
||||
|
||||
MySQL5.7.26及MySQL8隔离库各51项集成检查通过,覆盖并发新建/修改、归属、幂等、分页、失败保留报告、历史匹配/PDF/助手。真实5.7建表、合成旧库迁移及备份恢复演练通过。浏览器通过本机真实控制器和数据库联调,模型为合成响应,不收费;不代表正式域名可用或真实模型语义验收。
|
||||
|
||||
H5最终使用现有Playwright CLI(Browser plugin not available)验证390×844/1280×900:页面标题/内容、无框架遮罩、历史报告→匹配→对比→助手版本一致、行动页→本人修改回填及离页重进通过,console/pageerror无新增错误。修改页离页提示改为v-show,避免卸载期间创建原生文本节点。页面截图在本机临时目录保留;合成UI用户、Token、队列已清理,临时8097/3309服务已停止。微信和Android为本地编译验证,未做真机及完整登录交互验收。
|
||||
|
||||
后端正式维护记录与恢复方案:`D:/AAdesk/202609/airz/database/assessment-revisions.md`。用户授权后已迁移111.230.144.231:3306/airz并部署21个源码文件,63项真实本机HTTPS/FPM及假模型检查通过,新建/修改/历史PDF/助手及清理均验证,0次收费调用;原助手与22张无关表保留,worker恢复并实际消费失效合成任务。外网HTTP现为301跳转HTTPS,HTTPS仍连接重置;不能将服务器本机TLS通过视为外网恢复。新版前端与后端已配套,发行体验版前需解决外网访问并做真机验证。
|
||||
Reference in New Issue
Block a user