feat: 实现协议全文与同意记录功能
新增协议全文后台管理、版本化发布及本人同意记录功能,支持可撤销授权;完善资料与授权相关边界提示,调整评估提交时的资料与授权校验逻辑,同步更新相关页面文案与路由。
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
# 短信账户功能实施计划
|
||||
|
||||
依据:[已授权范围与设计](../specs/2026-10-12-account-sms-design.md)。本轮在现有两仓库定向修改,不创建提交/推送/生产发布;同事产品模块不改动。用户已明确先写代码,无需再次选择执行方式。
|
||||
|
||||
- [x] 验证码引擎:新增SmsVerification及供应商接口/默认不可用实现和sms_verification配置;先执行缺功能红测试,再验证真实隔离Redis中的发送、限流、摘要及原子单/双码核销。
|
||||
- [x] 账户接入:新增AccountSms,将Session的短信登录/发送/验证码改密接入,并增加安全发送和手机号换绑路由。复用Auth的注册/直接登录/改密与Token撤销;不迁移表。
|
||||
- [x] 隔离验证:新建私密ROOT/MySQL/Redis/bootstrap,运行验证码及HTTP新测试、原api_session/api_profile回归,核对结构及模型屏蔽,清理仅归属本轮的资源。
|
||||
- [x] 文档与复审:独立只读代码复审;记录未配置关闭状态、测试结果及供应商接入要求,更新交接/进度;PHP语法与两仓diff检查。
|
||||
|
||||
执行记录只保存在本轮私密归档,历史证据不覆盖。测试发送替身不提供线上配置入口或固定验证码。
|
||||
|
||||
结果:[开发记录](../../短信账户功能开发-20261012.md)。四套最终测试894项/200次本机HTTP通过,12PHP语法检查及独立只读复审完成,所属隔离环境已清理;真实供应商接入、目标端及正式验收仍待,默认关闭、未部署。
|
||||
@@ -0,0 +1,17 @@
|
||||
# 协议全文与同意记录实施计划
|
||||
|
||||
> 本轮用户已授权继续前两项,直接在现有会话执行,不创建提交/推送。三个互不覆盖的子任务按dispatching-parallel-agents处理;共享数据库测试由主控顺序执行。
|
||||
|
||||
**目标:** 内容后台能够发布不可变协议版本,小程序可读全文,服务端保存本人可追溯的同意与可选撤销记录。
|
||||
|
||||
**架构:** fa_acticle继续承载草稿,新增agreement_revision保留正式版本,user_consent保存幂等同意及撤销命令,首次撤销时间保持。公开全文/鉴权同意API与现有登录契约兼容,短信仍关闭,正式正文不编造。技术栈沿用PHP7.4/ThinkPHP5/MySQL5.7/Redis、uni-app x/UTS。
|
||||
|
||||
**设计:** [已授权范围](../specs/2026-10-12-agreement-consents-design.md)。不改融资28项输入/产品模块、不接生产/真实短信/模型,不执行生产迁移。
|
||||
|
||||
- [x] 协议发布:AgreementRegistry及后台Agreements使用内容CSRF和权限,红测试先证明服务缺失;冻结(code,version)唯一快照、正文修订须新版本,current与发布同顺序锁定,旧入口不能绕过。提供database/agreement-revision-schema.sql,纯校验/发布测试通过。
|
||||
- [x] 同意服务:先编写tests/agreements.php并在新隔离环境取得红测试;ConsentLedger执行新同意当前版校验、旧键原回执、账户锁/会话重核、双用途撤销及严格字段/分页校验;新增api/v1/Agreements控制器及完整匹配路由,提供database/user-consent-schema.sql并更新期望schema。
|
||||
- [x] 前端:新增services/agreements.uts、匿名全文页和本人记录页,现有登录/隐私/资料链接接通。所见版本勾选、认证后保存、未知原键手动确认、账户/代次守卫;参数/守卫红绿测试完成,30项纯源码、31项微信分包通过,最终29页Android 12:21:51/微信12:22:35编译成功。初轮78项与最终复审48项受控页面检查分开保留。
|
||||
- [x] 隔离验证:全新所属MySQL/Redis/ROOT,初始26表到两表定向安装后的28表基线。按顺序执行协议HTTP/事务/权限/历史/并发、原会话/资料/短信账户回归;测试前后核结构/触发器/空表/零键/进程归属/模型屏蔽。
|
||||
- [x] 收口:独立只读复审关闭全部明确P1/P2,14项PHP语法和两仓diff通过;源码/测试回执、开发说明与交接已更新。最终前端回执final-return-receipt.json绑定10文件摘要及最新两端编译,初轮与复审证据不累计。精确清理本轮数据库/服务及夹具,保留私密证据;清理末端检查失败已通过后续只读复核补证,具体原因未确认。未发布正文/未部署/真实业务未验收明确记录。
|
||||
|
||||
每项只改所属文件,已有短信代码、旧候选和历史发布证据保持。前端新增两页面预计总29页,63业务任务编号不扩增;正式协议、资料留存及真实渠道条件不擅自批准。
|
||||
@@ -0,0 +1,9 @@
|
||||
# 私有资料上传实施计划
|
||||
|
||||
按已批准的[简化方案](../specs/2026-10-12-private-documents-design.md)直接实施,本轮不重新设计、不提交代码。
|
||||
|
||||
- [x] 后端:`PrivateDocuments.php`、`v1/Documents.php`、`extra/private_documents.php`、三条路由及单表 SQL。复用 Auth/Token、Secret、documents 同意记录;默认关闭且私有目录留空。先写隔离 HTTP 测试,再实现。
|
||||
- [x] 前端:新增 `services/documents.uts`,复用现有资料卡片及协议服务,区分本机待上传与服务端 ID;手动重试、本人鉴权下载/删除、会话及离页迟到回包防护;复用同意读取恢复全部本人ID,照片直接显示在原卡片,通过卡片菜单管理,不加下方列表。
|
||||
- [x] 评估:资料单独保存、暂不绑定或参与分析;确认页明示此边界,仅已取得合法 ID 的资料可以绕过旧“上传未开放”提示,外部授权仍拒绝;服务端继续拒绝非空评估附件。
|
||||
- [x] 验证:全新本机合成 MySQL/Redis/私有目录;上传、读取、删除、同意及归属、大小/格式、故障重试;纯 UTS 会话/页面测试、Android/微信编译、拦截全部 API 的受控 H5 页面。
|
||||
- [x] 收尾:核验合成数据及所属服务清理,更新进度、交接及验证记录。用途、期限、正式私有目录、正式协议和真机验收留待启用前确定;生产、短信和模型全程不连接。
|
||||
@@ -0,0 +1,22 @@
|
||||
# 协议与照片独立测试环境实施计划
|
||||
|
||||
> 按用户“推进第 1 步”授权在当前会话实施;不创建提交、推送、PR或远程部署。
|
||||
|
||||
**目标:** 分开当前源码的测试与生产目标,准备最小配套部署清单,并在新建本机合成环境接通协议与照片流程。
|
||||
|
||||
**架构:** 前端默认测试地址留空,独立联调副本显式指向本机API。后端测试配置、ROOT、MySQL数据目录、Redis实例、照片目录和密钥全部独立,复用现有隔离工具,不读取仓库`.env`。本机只使用合成账户、协议和图片,模型客户端阻断、短信关闭,不启动worker。
|
||||
|
||||
**技术栈:** uni-app x / UTS、ThinkPHP 5 / PHP 7.4、MySQL 5.7、Redis、现有HBuilderX与Playwright。
|
||||
|
||||
**依据:** `docs/私有资料上传开发-20261012.md`及已确认的第1步;融资28项、29页面、63任务保持。
|
||||
|
||||
## 实施与验收
|
||||
|
||||
- [x] 检查两仓状态、当前与父级指令、配置加载及协议/照片/短信依赖,保留既有改动。
|
||||
- [x] 修改`services/config.uts`:test与production地址留空;本机副本使用development;未知环境也返回空地址。
|
||||
- [x] 新建后端`.env.test.sample`:独立数据库/Redis/命名空间,模型关闭且指向本机无服务端口,照片默认关闭,密钥和目录空值必须另行配置。
|
||||
- [x] 在`docs/协议与照片测试部署清单-20261012.md`记录完整前后端配套文件、三个新增表、权限增量、部署顺序、回退和真机条件。
|
||||
- [x] 在仓库外新建本轮归属环境;不复跑已清理runner。只在该合成空库安装完整schema,正式/已有库只列出三份增量SQL。
|
||||
- [x] 使用实际本机协议与照片API验证同意、上传、原卡片缩略图、重新进入恢复、撤销后禁止上传及本人删除;记录请求与配置审计。
|
||||
- [x] 执行针对性的配置/源码检查和`git diff --check`;记录截图及剩余微信真机条件,不把H5视为真机验收。
|
||||
- [x] 停止本轮所属服务,清理合成库/Token/照片并保存回执;更新README及交接,不改生产状态。
|
||||
@@ -0,0 +1,16 @@
|
||||
# 私有照片存储与备份落地计划
|
||||
|
||||
用户已授权继续前述服务器存储步骤,并确认在线照片长期保存、备份副本滚动保留7天。主体及删除联系方式暂无,照片保持关闭;不发布占位协议、不增加在线照片到期删除。
|
||||
|
||||
使用现有服务器、宝塔维护通道和本机DPAPI。运行工具保存于Web外root-only目录;不安装依赖、不提交/推送,按步骤在本会话执行。
|
||||
|
||||
- [x] 重新核对版本、关闭状态、表计数、目录、FPM、路径限制、服务、时区和配置摘要;保存精确恢复材料。
|
||||
- [x] 创建public同级私有目录(www:www/0700)和备份目录(root:root/0700);仅写入照片directory,enabled保持false。以www及现有open_basedir验证合成文件读写并清理。
|
||||
- [x] 现有共享AES密钥经临时RSA公钥封装后传回本机,立即转换为DPAPI文件,仅当前用户/SYSTEM访问;明文只在内存,删除临时私钥。备份包不带密钥或.env。
|
||||
- [x] 准备并验证每日04:20备份:PDO只读一致快照取得三表结构/元数据及对应文件清单,复制不可变密文,缺文件/链接/摘要漂移则失败;只备份已入表的活动照片,不删除在线文件或孤立密文。定向清理超过7天的本工具备份,未知文件拒绝清理。
|
||||
- [x] 先在合成临时目录验证备份与到期清理边界,再安装Web外root-only工具及独立cron文件,保持现有cron/数据库备份不改。执行一次当前空资料备份,校验归档摘要和从DPAPI恢复密钥的合成GCM解密能力;不恢复生产库。
|
||||
- [x] 核对服务、配置变更范围、关闭状态、目录权限、cron、备份及密钥恢复回执;宝塔退出关闭,清理临时材料,更新记录。技术验证不计用户功能验收。
|
||||
|
||||
完成证据:[落地记录](../../照片存储配置落地-20261013.md)。生产最终核对为10:55:12,回执final-verification-retry.json;本地草案/源码摘要/文档链接/UTF-8及私密ACL核对见D:/AAdesk/202609/airz-backups/private-storage-setup/20261013-01/local-verification.json。照片/短信仍关闭,首份为空资料快照,定时首次触发及实际照片恢复未验收;无异地照片副本,DPAPI换机前需受控迁移。
|
||||
|
||||
恢复:仅撤去本轮cron/工具,保留密钥和备份;.env只能在核对本轮after摘要、仍关闭且无新照片后恢复服务器before。已有照片或配置漂移时先保留现场,不覆盖后续数据、不删密钥/整库。空目录仅在确认本轮所有权且仍为空时可移除,禁止递归清理在线目录。
|
||||
@@ -0,0 +1,10 @@
|
||||
# 准入条件统一录入
|
||||
|
||||
目标:移除独立“地区与用途”,统一经“添加条件”录入;条件名称支持选择或手输入。用户已明确授权本地实施,不增加审批、提交或部署。
|
||||
|
||||
实现:地区/用途列表行继续映射现有地区和用途配置,默认不添加空行;已配置内容回显。已知条件名称映射现有规则,自定义名称与文字阈值保存到原other内展示配置的可选manualConditions列表,仅提示待核实,不进入推荐排名。无新增列、融资项或AI功能;保留旧冻结快照。
|
||||
|
||||
- [x] 先补纯内存保存/回显、校验、自定义unknown、适用对象及旧快照测试,确认因未实现失败。
|
||||
- [x] 修改六个已有后端/管理端文件;保护旧规则、对象范围、重复地区/用途及并发保存。
|
||||
- [x] 专用本机合成库验证实际管理端选择/手输、保存回显、删除、旧规则重建和窄屏;运行相关纯逻辑与16/28列回归。
|
||||
- [x] 核对源码摘要、停止所属测试进程、记录结果和交接。不得初始化默认.env、访问正式库、迁移或部署。
|
||||
@@ -0,0 +1,13 @@
|
||||
# 产品原字段与文本配置实施计划
|
||||
|
||||
用户已选择恢复原字段并把匹配配置放入原文本字段,当前会话顺序实施,不委派、不提交、不部署。规格为 `docs/产品表还原与选填核对-20261013.md`,此选择取代其中“等待范围选择”的状态。
|
||||
|
||||
目标:16个原字段名恢复,配置和内部版本放在other,保留InnoDB与100字产品名;管理端仅名称/对象必填,其他缺失显示未提供,实际配置的条件仍严格校验。旧快照不重算、原融资28项不扩展。
|
||||
|
||||
- [x] 编码与迁移:先写tests/product_storage.php,覆盖旧28字段→16字段→逻辑数据往返、HTML原文、金额精度、版本、损坏JSON及TEXT字节上限,再实现ProductStorage::decode/pack/encode、新表DDL和显式预检/备份/转换工具。转换保留旧表,未授权不操作生产。
|
||||
- [x] 读写:Product模型按实际物理列适配,保存持事务行锁、版本校验和部分更新合并;目录日期/地区在服务端读取配置筛选,ID游标按实际扫描位置推进;匹配捕获和当前可用性解码新旧记录。对比转换前后的规则与旧结果。
|
||||
- [x] 选填:ProductPublication保留名称/对象和格式校验,放宽银行/类型/来源、额度/期限/利率、日期/用途;空参数不生成规则,不补默认值。未知地区与仅原文条件保留待核实提示,不能静默宣称已满足;editor支持原额度/期限说明,新建企业对象按原表默认。UTS兼容新旧DTO及单边范围显示。
|
||||
- [x] 验证:独立本机合成MySQL真实16字段表验证迁移、模型/表单/上下架/游标/匹配/回滚,原28字段库验证过渡兼容;纯回归、PHP/JS语法、微信29页编译与必要页面检查。保留证据,停止本轮专用服务。
|
||||
- [x] 文档:更新新库schema、迁移说明、交接与实施结果,明确正式库仍为未迁移,发布必须配套后端及小程序。
|
||||
|
||||
实施结果:2120项专项检查与微信29页编译通过;所属四服务停止、端口释放,合成库/回撤表和证据保留。正式库未迁移、未部署,完整说明见docs/产品表还原与选填核对-20261013.md及后端database/product-original-migration.md。
|
||||
@@ -0,0 +1,17 @@
|
||||
# 产品机构库原型实施计划
|
||||
|
||||
> 采用 superpowers:executing-plans 在当前会话顺序执行;用户已授权实施,不创建提交或委派任务。
|
||||
|
||||
目标:接通原型的产品规则配置与真实匹配展示。
|
||||
|
||||
架构:保留现有Product CRUD、发布校验、冻结目录和UTS数据服务,添加ProductPresentation纯配置/评分/模板服务,现有other列承载版本化扩展配置。兼容旧说明和旧快照,不新增表。
|
||||
|
||||
规格:[实施范围](../specs/2026-10-13-product-prototype-design.md)。技术栈:PHP7.4/ThinkPHP/FastAdmin/RequireJS/uni-app x UTS。
|
||||
|
||||
- [x] 配置及评分:新增后端tests/product_presentation.php纯测试,覆盖80基础分、正负分、上下限、unknown/verified来源、模板引用和旧文本;实现ProductPresentation::normalize/view/evaluate/render,ProductEditor::_presentation和万元字段转换。
|
||||
- [x] 管理端:改add/edit为共用八标签form,所有回显htmlentities,object多选与_base_version;改backend/product.js为稳定规则编辑、资料/模板表、发布预检、保存、上下架;列表加银行/产品切换和筛选。
|
||||
- [x] 匹配:ProductMatchRules扩展原型指标白名单,ProductPublication设企业范围;ProductMatching固定新版本/评分降序,与旧v1冻结快照兼容;MatchRecords和ProductCatalog投影资料清单、Logo、电话;运行既有规则/发布/编辑纯测试及新增冻结回归。
|
||||
- [x] 小程序:改matches.uts规范化扩展字段和评分,保持归属与快照检查;改product.uvue头部摘要、分数/资料清单、真实顾问拨号与既有办理准备路径;UTS mock API回归。
|
||||
- [x] 联调:启动独立本机合成数据服务,真实HTTP保存/编辑/上下架检查,浏览器桌面与窄屏核对;HBuilderX编译微信与H5,路由回归。记录结果和尚未提供的真实指标/顾问渠道;更新交接文档,不部署。
|
||||
|
||||
执行结果:980项专项检查、微信29页最终编译、PHP/JS语法与相关diff空白检查通过;截图/证据及限制见实施记录。无提交、部署或代理任务。
|
||||
@@ -0,0 +1,30 @@
|
||||
# 条件第一列手输与自定义条件 AI 匹配实施计划
|
||||
|
||||
**Goal:** 第一列手输、保留其余结构,自定义条件由 AI 判断准入/评分/关联模板结果。
|
||||
|
||||
**Architecture:** 保留原16字段和既有配置,other 中新增可选手输软条件与文字模板。标准规则保持;AI 自定义判断并入现有评估调用,服务端合并及写入前复核。旧报告保持。
|
||||
|
||||
**Tech Stack:** ThinkPHP 5、PHP 7.4、jQuery/Bootstrap、现有 Playwright/Chrome。
|
||||
|
||||
**Spec:** ../specs/2026-10-14-product-custom-ai-design.md
|
||||
|
||||
**Constraints:** 保留两仓既有改动;不用默认 .env;无正式写入/发布/真实模型/提交;不新增融资表单字段;不恢复产品原文 AI 整理。
|
||||
|
||||
- [x] 撤回本任务误扩大的整页文字化,并将废弃文件存入仓库外归档;既有未提交改动保留。
|
||||
- [x] `product.js`、`product/form.html`:四个表格第一列纯手输、隐藏内部编号、多选值勾选、关联名称保存/回显;桌面/窄屏验证。
|
||||
- [x] `ProductPresentation`/`ProductPublication`:自定义硬/软条件和关联文字模板配置校验及兼容。
|
||||
- [x] `ProductAiConditions`:白名单事实、完整判断校验、三态、身份及引用边界、输入摘要。
|
||||
- [x] `ProductMatching`、`AssessmentNeedsReport`、`AnalysisTasks`、`Assessment` 接入:冻结、既有调用复用、合并/保存前重算、旧快照兼容。
|
||||
- [x] 假模型实际隔离任务与读取/历史回归;针对性 PHP/JS 检查、记录证据和清理所属测试进程。
|
||||
- [x] 更新交接,说明本地完成状态、正式发布范围及未覆盖真实模型行为。
|
||||
|
||||
验证证据:D:/AAdesk/202609/airz-backups/product-first-column-20261014。未部署或调用真实模型;清理状态以cleanup.json为准。
|
||||
|
||||
## 后续要求:推荐与不推荐统一 `{X}`
|
||||
|
||||
- [x] 管理端移除不推荐触发结果,三列表格、旧变量转换及新模板保存回显。
|
||||
- [x] 新 `ProductAiTemplates` 与评估/匹配/保存链路接入,复用一次模型调用并保留旧冻结语义。
|
||||
- [x] 多槽顺序、正文适用性、金额单位、资料不足、身份/摘要/事实引用及预算边界验证;实际隔离任务和最终独立审查。新模板纯测试73项、Chrome表单51项、实际假模型任务49项通过。
|
||||
- [x] 更新验证回执、当前交接及所属隔离服务清理记录。HTTP/MySQL/Redis所属进程已精确停止,62175/62176/62177端口关闭,合成数据与证据保留。
|
||||
|
||||
本轮证据:D:/AAdesk/202609/airz-backups/product-template-x-20261014;仅本地实施,未部署或调用真实模型。
|
||||
@@ -0,0 +1,12 @@
|
||||
# 正式产品表还原与配套发布计划
|
||||
|
||||
用户已明确授权“正式服务器也一起处理并部署”。目标为airz.hqling.cloud、/www/wwwroot/xctai.cn、127.0.0.1:3306/airz,仅转换fa_product及发布产品库配套代码;小程序由用户发行。不提交、不推送、不委派,不调用真实模型或导入合成业务。
|
||||
|
||||
- [x] 固定产品库运行文件和依赖摘要,迁移工具增加显式解除旧日期限制的选项;默认转换仍无损。解除日期的产品版本递增,原值保存在旧表及备份。
|
||||
- [x] 本机隔离MySQL演练29列(含空bank_logo)转换16列、清除日期、非空Logo拒绝/无损默认、精确回退;回归当前产品保存/发布/匹配。
|
||||
- [x] 服务器只读核对代码差异、环境摘要、表结构、产品计数、日期使用及活动任务/队列。正式凭据只在服务器读取,不下载.env。
|
||||
- [x] 固定发布清单,备份旧源码、站点版本、Nginx、产品完整数据及整库灾难材料;维护窗口暂停外部写入、worker与FPM,再转换产品表并原子替换配套源码。旧表保留。
|
||||
- [x] 核对16列、全部产品内容/配置/版本、非产品表一致、历史快照及服务;29项服务器HTTPS只读检查和精确回退预检通过后恢复入口/worker,再检查31项公网及日志。
|
||||
- [x] 37个备份文件下载核验,清理临时凭据和传输缓存,退出宝塔;更新发布/交接记录,明确小程序和真实业务验收状态。
|
||||
|
||||
恢复:重新暂停写入,先保护发布后新增数据,核对源/表/版本摘要;使用本次迁移回执的双表RENAME恢复原产品表并恢复本次before源码/资源版本。不得整库覆盖,不删除原表、真实产品或用户数据。
|
||||
Reference in New Issue
Block a user