update pay promo
This commit is contained in:
60
app.py
60
app.py
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user