4.8 KiB
账户转账、计入总览与贵金属估价
历史验收记录:2026-10-04 起所有旧备份兼容与单文件 JSON 支持已删除,当前仅接受 ZIP v9;本文旧版本测试记录不代表现行功能。现行 MCP 权限与工具范围见 本次更新。
完成与验收:2026-10-03 18:56(UTC+8)。
账户转账
普通转账、快速转账与计划转账均可选择银行、现金、投资、信用卡和贷款等启用账户。仍须属于当前用户、使用两个不同账户,隐藏账户先解锁。借入/借出本金操作与计划支出沿用原有校验。
信用卡等负债账户在数据库中以正数表示欠款,网页以负数显示;转出增加欠款,转入抵扣欠款,超过欠款后显示溢缴存款。手续费计入转出账户。双方余额在同一事务中更新,修改、删除、重放及备份校验使用相同方向。
是否计入资产总览
- 设置 → 显示与菜单 → 独立资产计入总览:全局控制独立资产是否参与总额。
- 新建或编辑账户、独立资产与债务 → 计入资产总览:逐项控制是否参与资产、负债、净资产及轨迹。默认开启;独立资产须同时开启全局与逐项开关。
- 取消计入不会删除项目、历史、关联或计划,也不限制转账。列表和详情显示“不计入总览”;变化记录、最近变化和收支日历继续保留实际记录。
- 当前开关作用于整个轨迹;它不是历史日期生效的配置。排除项目所缺少的汇率不会让总览变为不完整。
贵金属估价
独立资产选择“贵金属”,保存后进入详情,设置黄金或白银、克数、纯度比例(例如 0.999)。黄金与白银价格来自 Gold API,美元报价按每金衡盎司 31.1034768 克换算,并通过现有 Frankfurter 公共日汇率转为资产原币。所有实际第三方接口及图标素材来源均已在 README 单独列明。
更新机制与汇率一致:进程运行时每小时检查、每日尝试一次,打开总览或估价区域也会按需触发;新配置会重新触发检查,支持手动刷新。固定请求不发送用户、账户、重量、金额或登录 Cookie。响应异常、超时或报价过期时保留已有报价与估值,并显示失败原因。休市日价格与日汇率日期可能不同。
默认关闭自动记录估值。点击“应用估价”记录当前时间的估值;开启“随参考价自动记录估值”后,更新价格自动新增估值历史,相同估值不重复记录,已有历史不改写。报价比最新余额观察日期更早时,自动更新不会覆盖该观察值。可手动录入原币每克纯金属价格;同日手动价格优先于公共报价。已开启自动估值且有可用报价时,保存估价设置或录价会同步更新余额、总览及历史;否则由“应用估价”记录。
估价使用 Decimal 精确计算,重量和金额最多 8 位小数、参考价最多 12 位小数。参考价不含工费、回收折价或买卖价差;其他金属仍可使用普通手动估值,不会被当作黄金自动计价。
数据库与备份
新增两项迁移:
20261003000300_inclusion_metals:用户独立资产计入设置、逐项目计入设置、贵金属配置及 MetalPrice 表。20261003000400_metal_source_comment:将最终使用的价格源写入字段注释。
本机已应用,共 17 项迁移;10 张业务表、106 个字段注释均通过核验。已有项目默认计入总览,不改写原有余额符号。ZIP 导出为 v8,保留计入设置、重量、纯度、自动估值配置、参考价及估值历史,继续兼容旧 ZIP v3–v7 和 JSON v1/v2。价格与已有同日数据冲突时回滚导入。清空流程的备份摘要包含价格,价格发生变化后须重新下载备份。
其他环境更新:
pnpm db:generate
pnpm db:migrate
pnpm build
验证
35 项单元检查、17 项真实 MySQL 集成检查、前后端类型检查与生产构建通过。最终估值去重和首次配置触发更新另通过 4 项计算、失败保留及数据库专项回归。黄金、白银与固定币种公共汇率地址均实测返回 HTTP 200;集成测试验证同日手动价格不会被自动覆盖。
浏览器使用隔离模拟账号,验证信用卡快速转出 500 后显示欠款 -2500,日常账户变为 10500;贵金属应用估值生成历史;取消计入后总览净资产立即变为 8000;全局开关保存后状态持续保留。测试账号和模拟数据已清理,独立测试 API 已关闭。
本轮只更新本地代码和数据库并创建本地 Git 提交,不 push;前端已有的 Vite 配置修改保留。