update pay promo

This commit is contained in:
2026-02-04 20:35:48 +08:00
parent 1091354f61
commit 270866da2d

60
app.py
View File

@@ -9225,6 +9225,33 @@ def get_flex_screen_quotes():
# 查询深交所股票实时行情
if szse_stock_codes:
try:
# 先从 ea_trade 获取正确的昨收价(实时表的 prev_close 可能不准确)
# 昨收价 = 上一交易日的收盘价F007N
szse_prev_close_map = {}
with engine.connect() as conn:
if szse_stock_codes:
# 获取上一交易日
prev_day_result = conn.execute(text("""
SELECT EXCHANGE_DATE FROM trading_days
WHERE EXCHANGE_DATE < CURDATE()
ORDER BY EXCHANGE_DATE DESC LIMIT 1
""")).fetchone()
if prev_day_result:
prev_day = prev_day_result[0]
placeholders = ','.join([f':code{i}' for i in range(len(szse_stock_codes))])
params = {f'code{i}': code for i, code in enumerate(szse_stock_codes)}
params['trade_date'] = prev_day
# 获取上一交易日的收盘价F007N作为今日昨收
prev_result = conn.execute(text(f"""
SELECT SECCODE, F007N as close_price
FROM ea_trade
WHERE SECCODE IN ({placeholders}) AND TRADEDATE = :trade_date
"""), params).fetchall()
szse_prev_close_map = {row[0]: float(row[1]) if row[1] else 0 for row in prev_result}
order_book_cols = ""
if include_order_book:
order_book_cols = """,
@@ -9261,7 +9288,8 @@ def get_flex_screen_quotes():
security_id = row[0]
full_code = f"{security_id}.SZ"
last_px = float(row[1]) if row[1] else 0
prev_close = float(row[2]) if row[2] else 0
# 优先使用 ea_trade 的昨收价,回退到实时表的 prev_close
prev_close = szse_prev_close_map.get(security_id) or (float(row[2]) if row[2] else 0)
change = last_px - prev_close if last_px and prev_close else 0
change_pct = (change / prev_close * 100) if prev_close else 0
@@ -9354,6 +9382,33 @@ def get_flex_screen_quotes():
# 查询上交所实时行情(如果有 sse_stock_realtime 表)
if sse_codes:
try:
# 先从 ea_trade 获取正确的昨收价(实时表的 prev_close 可能不准确)
# 昨收价 = 上一交易日的收盘价F007N
sse_prev_close_map = {}
with engine.connect() as conn:
if sse_codes:
# 获取上一交易日
prev_day_result = conn.execute(text("""
SELECT EXCHANGE_DATE FROM trading_days
WHERE EXCHANGE_DATE < CURDATE()
ORDER BY EXCHANGE_DATE DESC LIMIT 1
""")).fetchone()
if prev_day_result:
prev_day = prev_day_result[0]
placeholders = ','.join([f':code{i}' for i in range(len(sse_codes))])
params = {f'code{i}': code for i, code in enumerate(sse_codes)}
params['trade_date'] = prev_day
# 获取上一交易日的收盘价F007N作为今日昨收
prev_result = conn.execute(text(f"""
SELECT SECCODE, F007N as close_price
FROM ea_trade
WHERE SECCODE IN ({placeholders}) AND TRADEDATE = :trade_date
"""), params).fetchall()
sse_prev_close_map = {row[0]: float(row[1]) if row[1] else 0 for row in prev_result}
sse_query = """
SELECT
security_id,
@@ -9377,7 +9432,8 @@ def get_flex_screen_quotes():
security_id = row[0]
full_code = f"{security_id}.SH"
last_px = float(row[1]) if row[1] else 0
prev_close = float(row[2]) if row[2] else 0
# 优先使用 ea_trade 的昨收价,回退到实时表的 prev_close
prev_close = sse_prev_close_map.get(security_id) or (float(row[2]) if row[2] else 0)
change = last_px - prev_close if last_px and prev_close else 0
change_pct = (change / prev_close * 100) if prev_close else 0