diff --git a/app.py b/app.py index 02d251d2..022ca203 100755 --- a/app.py +++ b/app.py @@ -10600,13 +10600,23 @@ def api_get_events(): query = query.order_by(order_func(Event.hot_score)) elif sort_by == 'new': query = query.order_by(order_func(Event.created_at)) - elif sort_by == 'returns': - if return_type == 'avg': + elif sort_by == 'returns' or sort_by.startswith('returns_'): + # 支持两种格式: + # 1. sort=returns + return_type=avg/max/week + # 2. sort=returns_avg / sort=returns_max / sort=returns_week + effective_return_type = return_type + if sort_by.startswith('returns_'): + effective_return_type = sort_by.replace('returns_', '') + + if effective_return_type == 'avg': query = query.order_by(order_func(Event.related_avg_chg)) - elif return_type == 'max': + elif effective_return_type == 'max': query = query.order_by(order_func(Event.related_max_chg)) - elif return_type == 'week': + elif effective_return_type == 'week': query = query.order_by(order_func(Event.related_week_chg)) + else: + # 默认按平均收益排序 + query = query.order_by(order_func(Event.related_avg_chg)) elif sort_by == 'importance': importance_order = case( (Event.importance == 'S', 1),