feat: add account transfers and refine icons, settings and safety dialogs
This commit is contained in:
1 parent
a4e9d56b8a
commit
da98d02661
33 files changed
+1866
-347
No files matched your search
@@ -39,3 +39,16 @@
|
||||
新增迁移 005_account_icons,不修改既有迁移或财务数据;预置 20 个图标,使用固定 ID 幂等初始化。构建/类型检查和 ZIP v3/v4 单元回归通过。新增真实数据库集成覆盖私有图标跨用户不可检索/读取/赋值、共享中文名称和公开确认、图片规范化与恶意格式拒绝、相同图片多账户复用、ZIP 图标内容/关联恢复、损坏图标整次导入拒绝、清空保留他人引用共享图标。测试仅清理随机验收用户和他们上传的图标。
|
||||
|
||||
桌面浏览器实际验收:中文检索支付宝、选择图标后保存账户、私有图片上传及共享中文名称/公开确认发布成功。390×844 手机布局无横向溢出,全部图标正常加载。原生 ZIP 下载包含 10 个 JSON 文件,manifest v4,图标内容和账户关联均存在。开发进程改为只监听 dist,避免首次加载图片处理依赖导致不必要的自动重启。
|
||||
|
||||
## 2026-10-02 转账、图标与设置更新
|
||||
|
||||
- 类型检查与最终前后端生产构建通过;16 项单元测试、6 项集成检查通过。增加显示偏好导出/恢复断言后,转账专项 3 项再次通过。追加导入已有空间保留现有显示偏好;空空间恢复备份偏好。
|
||||
- 006_navigation_transfers 和 007_notes_display 已增量应用,7 个迁移状态最新;未执行 reset、db push 或财务数据清空。
|
||||
- 真实 MySQL 验证转账双方余额/历史原子更新、同币种/跨币种精度、额外手续费、重复请求去重、并发余额不足、跨用户拒绝、隐藏账户隔离,以及完整转账 ZIP 导出和关系重建。禁止插入已有转账之前的余额调整,禁止单独更正转账及之前历史。
|
||||
- ZIP v5 含 11 个 JSON 文件;v3/v4 ZIP 和旧 JSON 兼容通过。备注与菜单偏好进入备份,认证凭据不进入备份。图标白色背景转透明且彩色像素保留的处理测试通过。
|
||||
- 浏览器实际验证各菜单独立开关保存/刷新、设置入口保留、顶部重复导航移除、备注在编辑表单及历史列表隐藏、透明支付宝图标检索与弹窗选择后保存账户。
|
||||
- 临时账号界面转账:100 转出 25、手续费 1 后余额 74;另一个 10 的账户到账后为 35;总额 109,配对历史按分钟显示。未执行银行或支付平台真实资金转移。
|
||||
- 清空标题颜色为红色;真实下载 ZIP 后才能进入文字确认,再出现两次弹窗。第一次取消左/确认右,第二次确认左/取消右,均默认聚焦取消。浏览器在第二次选择取消,账户及转账保留;实际清空 API 仅在随机测试账号中回归,未清空真实用户数据。
|
||||
- Swagger UI 在前端代理地址真实加载,OpenAPI JSON 包含实际转账和设置字段及会话认证说明。README 已记录文档及 JSON 地址。
|
||||
- 390×844 手机设置界面检查:页面内容宽度 375,无横向溢出,开关、下拉菜单与底部导航可用;未验证真实手机硬件和外网隧道端到端链路。
|
||||
- 精确清理本次创建的临时验收账号及其财务数据;共享预置图标及实际用户保留。用户原有 Vite 配置修改保留,未纳入本次功能提交。
|
||||
@@ -31,3 +31,9 @@ Revision 保存按业务日期生效的绝对金额,每次金额更新新增
|
||||
Icon 存储 name、ownerId、shared、SHA-256、规范静态 PNG 的 MediumBlob 和可选公开来源;Position.iconId 外键 SetNull,多个账户共享同一图片。所有图标接口使用已验证身份,读取/检索/赋值均限定 shared=true 或 ownerId=当前用户,响应不返回 ownerId。个人上传默认私有;共享发布须中文名称和明确公开确认。拒绝 SVG、动图、损坏图片、超限像素/文件,重编码移除元数据。内置图标固定 ID 追加初始化;在线请求不会发送用户财务数据。
|
||||
|
||||
备份逻辑增加可选 icons 数组(旧格式缺失可兼容),v4 ZIP 将图标内容放入 icons.json;内容校验和解码在导入事务前完成,图标在事务内以当前用户私有范围重建,账户关联重映射。清空删除私有图标,公开共享图标不因发布者清空而消失。用户删除时图标 ownerId SetNull,不影响他人已引用的公共图标。
|
||||
|
||||
## 转账及显示偏好
|
||||
|
||||
Transfer 归属于 User,关联转出/转入 Position(启用资产账户)及两条 Revision ID。金额、到账金额和额外手续费使用 Decimal(24,8),记录双方原币和业务分钟;账户关系用于配对展示,Transfer 本身不再次计入总额。服务端 Serializable 事务同时创建配对绝对余额及转账记录;请求 UUID 支持相同内容重试。历史修正限制防止改变已配对转账的基准余额。
|
||||
|
||||
User.hiddenMenus 保存受枚举校验的菜单键,settings 不可隐藏;User.showNotes 默认 true,仅控制客户端显示,财务备注和导出保持完整。ZIP v5 新增 transfers.json,追加恢复时映射账户及配对历史 ID,空空间恢复显示偏好,已有空间保留当前设置。
|
||||
Reference in new issue
Block a user