更新ios
This commit is contained in:
57
app.py
57
app.py
@@ -18308,18 +18308,57 @@ def get_market_summary(seccode):
|
||||
with engine.connect() as conn:
|
||||
pledge_result = conn.execute(pledge_query, {'seccode': seccode}).fetchone()
|
||||
|
||||
# 构建基础数据
|
||||
latest_trade = {
|
||||
'date': format_date(trade_result.TRADEDATE) if trade_result else None,
|
||||
'close': format_decimal(trade_result.F007N) if trade_result else None,
|
||||
'change_percent': format_decimal(trade_result.F010N) if trade_result else None,
|
||||
'volume': format_decimal(trade_result.F004N) if trade_result else None,
|
||||
'amount': format_decimal(trade_result.F011N) if trade_result else None,
|
||||
'pe_ratio': format_decimal(trade_result.F026N) if trade_result else None,
|
||||
'turnover_rate': format_decimal(trade_result.F012N) if trade_result else None,
|
||||
} if trade_result else None
|
||||
|
||||
# 交易时间内从 ClickHouse 获取实时价格
|
||||
if latest_trade:
|
||||
now = beijing_now()
|
||||
current_date = now.date()
|
||||
current_time = now.time()
|
||||
|
||||
morning_start = dt_time(9, 30)
|
||||
morning_end = dt_time(11, 30)
|
||||
afternoon_start = dt_time(13, 0)
|
||||
afternoon_end = dt_time(15, 0)
|
||||
|
||||
is_trading_time = (
|
||||
current_date in trading_days_set and
|
||||
((morning_start <= current_time <= morning_end) or
|
||||
(afternoon_start <= current_time <= afternoon_end) or
|
||||
(morning_end < current_time < afternoon_start))
|
||||
)
|
||||
|
||||
if is_trading_time:
|
||||
try:
|
||||
# 标准化股票代码
|
||||
if seccode.startswith('6'):
|
||||
full_code = f"{seccode}.SH"
|
||||
elif seccode.startswith(('8', '9', '4')):
|
||||
full_code = f"{seccode}.BJ"
|
||||
else:
|
||||
full_code = f"{seccode}.SZ"
|
||||
|
||||
cached_price = get_latest_price_with_cache(full_code)
|
||||
if cached_price and cached_price.get('price') and cached_price['price'] > 0:
|
||||
latest_trade['close'] = cached_price['price']
|
||||
latest_trade['change_percent'] = cached_price.get('change_pct') or latest_trade['change_percent']
|
||||
print(f"[market-summary] 实时价格更新: {full_code} -> {cached_price['price']} ({cached_price.get('change_pct', 0):+.2f}%)")
|
||||
except Exception as e:
|
||||
print(f"[market-summary] 获取实时价格失败: {e}")
|
||||
|
||||
summary = {
|
||||
'stock_code': seccode,
|
||||
'stock_name': trade_result.SECNAME if trade_result else None,
|
||||
'latest_trade': {
|
||||
'date': format_date(trade_result.TRADEDATE) if trade_result else None,
|
||||
'close': format_decimal(trade_result.F007N) if trade_result else None,
|
||||
'change_percent': format_decimal(trade_result.F010N) if trade_result else None,
|
||||
'volume': format_decimal(trade_result.F004N) if trade_result else None,
|
||||
'amount': format_decimal(trade_result.F011N) if trade_result else None,
|
||||
'pe_ratio': format_decimal(trade_result.F026N) if trade_result else None,
|
||||
'turnover_rate': format_decimal(trade_result.F012N) if trade_result else None,
|
||||
} if trade_result else None,
|
||||
'latest_trade': latest_trade,
|
||||
'latest_funding': {
|
||||
'date': format_date(funding_result.TRADEDATE) if funding_result else None,
|
||||
'financing_balance': format_decimal(funding_result.F001N) if funding_result else None,
|
||||
|
||||
Reference in New Issue
Block a user