- 🔧 汇率服务安全重构:JisuAPI Key 从前端移至后端环境变量 `JISU_API_KEY`,彻底根除硬编码 - 🔧 JisuAPI 解析修复:修正 `data.status !== 0`(原错误使用 `data.code`)和 `data.result?.rate`(原错误使用 `data.result?.result`) - 🛡️ 缓存防毒:移除 `next: { revalidate }`,改用自研内存缓存,防止错误响应被 Next.js 缓存1小时 - 🔧 交易编辑原子性:PATCH `/api/transactions` 完整重写,增删改操作使用 `prisma.$transaction` 原子事务 - 📊 持仓重算服务:新增 `recalculatePosition()` 函数,PATCH 编辑时遍历历史 BUY/SELL 交易重算 avgCost - 🔧 BUG-301 修复:编辑交易时正确逆向原始交易并重算持仓,彻底解决"编辑后持仓不变"的 Blockering Bug - 🔧 币种自动识别:新增 `getCurrencyFromSymbol()` 函数,根据证券代码推断 CNY/HKD/USD - 🔧 BUG-401/402 修复:新建交易时证券切换自动更新 currency,resetTxForm 默认 USD 而非账户货币 - 💱 汇率 Fallback 强化:`getExchangeRate` 包裹完整 try-catch,确保 JisuAPI 失败时正确降级至 DEFAULT_RATES - 📝 注释修正:`transactions/route.ts` 注释 BUTH → BUY/SELL - 🔧 BUG-601 修复:`recalculatePosition()` 的 `upsert` 硬编码 `currency: 'USD'` → 动态提取 history 最后一笔交易的 currency;`update` 分支新增 `currency` 字段实现脏数据自愈(600690/601919 等 A股持仓被错误标记为 USD 的问题彻底修复) |
||
|---|---|---|
| .. | ||
| app | ||
| components/ui | ||
| lib | ||
| types | ||