Files
nofx/api
ZhouYongyou 8a1e931857 fix: prevent initial_balance modification and fix equity history calculation
## 核心問題修復

1. **API 層保護** (api/server.go - handleUpdateTrader)
   - 檢測並阻止任何修改 initial_balance 的嘗試
   - 強制使用原始 initial_balance 值
   - 記錄詳細的警告日誌和嘗試修改的細節
   - 返回友善的錯誤訊息給用戶

2. **資料庫層保護** (config/database.go - UpdateTrader)
   - 從 UPDATE SQL 語句中移除 initial_balance 欄位
   - 雙重防護:即使 API 層被繞過,DB 也不會更新

3. **修復盈虧計算錯誤** (api/server.go - handleEquityHistory)
   -  修復:從資料庫讀取 initial_balance 作為唯一真實來源
   -  移除:錯誤的後備邏輯(使用 records[0].TotalBalance)
   -  重新計算:基於正確的 initial_balance 重算所有盈虧百分比

## 影響範圍

- 用戶無法再通過 UpdateTrader API 修改 initial_balance
- 解決「初始餘額異常變動」的根本原因
- 確保盈虧計算始終基於正確的基準值

## 技術細節

- 浮點數比較容差:0.01 USDT (避免浮點數精度問題)
- 錯誤碼:INITIAL_BALANCE_IMMUTABLE
- 日誌格式:包含 user_id, trader_id, 原值, 請求值, 差異

Related-Issue: 用戶報告「初始餘額變少」問題
2025-11-05 01:54:36 +08:00
..