migrate: remove JSON, DB-only — mo_data, server, scripts, prompts (27 files)
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
#!/usr/bin/env python3
|
||||
"""一次性修复:将 holdings 表中港股成本从 HKD 转为 CNY。
|
||||
运行时机:import_holding_xls.py 修复后,旧数据需要转换。
|
||||
"""
|
||||
import sqlite3, sys, os
|
||||
|
||||
sys.path.insert(0, '/home/hmo/MoFin')
|
||||
from mo_models import is_hk_stock
|
||||
from hk_rate import hkd_to_cny
|
||||
|
||||
rate = hkd_to_cny()
|
||||
DB = '/home/hmo/web-dashboard/data/mofin.db'
|
||||
|
||||
print(f"HK_RATE = {rate}")
|
||||
print(f"DB = {DB}")
|
||||
|
||||
db = sqlite3.connect(DB)
|
||||
rows = db.execute(
|
||||
"SELECT code, name, cost, shares, currency FROM holdings WHERE is_active=1"
|
||||
).fetchall()
|
||||
|
||||
fixed = 0
|
||||
for r in rows:
|
||||
code = r[0]
|
||||
name = r[1]
|
||||
cost = r[2] or 0
|
||||
shares = r[3] or 0
|
||||
curr = r[4] or 'CNY'
|
||||
|
||||
if not is_hk_stock(str(code)):
|
||||
continue
|
||||
if cost <= 0:
|
||||
continue
|
||||
|
||||
cost_cny = round(cost * rate, 2)
|
||||
print(f" FIX: {code} {name}: cost {cost} -> {cost_cny} CNY (shares={shares})")
|
||||
db.execute(
|
||||
"UPDATE holdings SET cost=?, currency=? WHERE code=?",
|
||||
(cost_cny, 'CNY', code)
|
||||
)
|
||||
fixed += 1
|
||||
|
||||
db.commit()
|
||||
db.close()
|
||||
|
||||
print(f"\nDone. Fixed {fixed} HK stock costs.")
|
||||
Reference in New Issue
Block a user