update pay ui

This commit is contained in:
2025-12-03 15:05:41 +08:00
parent 43f32c5af2
commit ea1adcb2ca

27
app.py
View File

@@ -5603,8 +5603,11 @@ def get_historical_event_stocks(event_id):
# 查询股票在事件对应交易日的数据
# ea_trade 表字段F007N=最近成交价(收盘价), F010N=涨跌幅
base_stock_code = stock.stock_code.split('.')[0] if stock.stock_code else ''
# 日期格式转换为 YYYYMMDD
trade_date_str = event_trading_date.strftime('%Y%m%d') if hasattr(event_trading_date, 'strftime') else str(event_trading_date).replace('-', '')
# 日期格式转换为 YYYYMMDD 整数ea_trade.TRADEDATE 是 int 类型)
if hasattr(event_trading_date, 'strftime'):
trade_date_int = int(event_trading_date.strftime('%Y%m%d'))
else:
trade_date_int = int(str(event_trading_date).replace('-', ''))
with engine.connect() as conn:
query = text("""
SELECT F007N as close_price, F010N as change_pct
@@ -5616,12 +5619,13 @@ def get_historical_event_stocks(event_id):
result = conn.execute(query, {
'stock_code': base_stock_code,
'trading_date': trade_date_str
'trading_date': trade_date_int
}).fetchone()
if result:
stock_data['event_day_close'] = float(result[0]) if result[0] else None
stock_data['event_day_change_pct'] = float(result[1]) if result[1] else None
print(f"[DEBUG] 股票{base_stock_code}{trade_date_int}: close={result[0]}, change_pct={result[1]}")
else:
stock_data['event_day_close'] = None
stock_data['event_day_change_pct'] = None
@@ -6431,8 +6435,10 @@ def get_batch_kline_data():
if base_codes:
placeholders = ','.join([f':code{i}' for i in range(len(base_codes))])
params = {f'code{i}': code for i, code in enumerate(base_codes)}
params['start_date'] = target_date - timedelta(days=60)
params['end_date'] = target_date
# TRADEDATE 是整数格式 YYYYMMDD需要转换日期格式
start_date = target_date - timedelta(days=60)
params['start_date'] = int(start_date.strftime('%Y%m%d'))
params['end_date'] = int(target_date.strftime('%Y%m%d'))
daily_result = conn.execute(text(f"""
SELECT SECCODE, TRADEDATE, F003N as open, F005N as high, F006N as low, F007N as close, F004N as volume
@@ -6448,8 +6454,17 @@ def get_batch_kline_data():
code_base = row[0]
if code_base not in stock_data:
stock_data[code_base] = []
# 日期格式处理TRADEDATE 可能是 datetime 或 int(YYYYMMDD)
trade_date_val = row[1]
if hasattr(trade_date_val, 'strftime'):
date_str = trade_date_val.strftime('%Y-%m-%d')
elif isinstance(trade_date_val, int):
# 整数格式 YYYYMMDD -> YYYY-MM-DD
date_str = f"{str(trade_date_val)[:4]}-{str(trade_date_val)[4:6]}-{str(trade_date_val)[6:8]}"
else:
date_str = str(trade_date_val)
stock_data[code_base].append({
'date': row[1].strftime('%Y-%m-%d') if hasattr(row[1], 'strftime') else str(row[1]),
'time': date_str, # 统一使用 time 字段,与前端期望一致
'open': float(row[2]) if row[2] else 0,
'high': float(row[3]) if row[3] else 0,
'low': float(row[4]) if row[4] else 0,