diff --git a/AssetManager.Infrastructure/Services/MarketDataService.cs b/AssetManager.Infrastructure/Services/MarketDataService.cs index 32f6035..d5e5206 100755 --- a/AssetManager.Infrastructure/Services/MarketDataService.cs +++ b/AssetManager.Infrastructure/Services/MarketDataService.cs @@ -6,7 +6,11 @@ using Microsoft.Extensions.Logging; namespace AssetManager.Infrastructure.Services; /// -/// 市场数据服务实现(组合模式:Yahoo财经优先,腾讯财经降级,Tiingo最终降级,OKX处理加密货币) +/// 市场数据服务实现(组合模式) +/// 数据源优先级: +/// - 实时价格:Yahoo → 腾讯 → Tiingo +/// - 历史K线:Yahoo → Tiingo(腾讯历史接口已废弃) +/// - 加密货币:OKX /// public class MarketDataService : IMarketDataService { @@ -135,7 +139,8 @@ public class MarketDataService : IMarketDataService } else { - // 股票:优先Yahoo财经,失败降级腾讯财经,最后降级 Tiingo + // 股票:优先Yahoo财经,失败降级 Tiingo + // 注:腾讯财经历史K线接口已废弃,不再作为降级数据源 try { response = await _yahooService.GetStockHistoricalDataAsync(symbol, timeframe, limit); @@ -145,30 +150,14 @@ public class MarketDataService : IMarketDataService } else { - throw new Exception("Yahoo财经返回空数据"); + throw new InvalidOperationException("Yahoo财经返回空数据"); } } catch (Exception ex) { - _logger.LogWarning(ex, "Yahoo财经历史数据获取失败,降级使用 腾讯: {Symbol}", symbol); - try - { - response = await _tencentService.GetStockHistoricalDataAsync(symbol, timeframe, limit); - if (response.Count > 0) - { - source = "Tencent"; - } - else - { - throw new Exception("腾讯财经返回空数据"); - } - } - catch (Exception tencentEx) - { - _logger.LogWarning(tencentEx, "腾讯财经历史数据获取失败,降级使用 Tiingo: {Symbol}", symbol); - response = await _tiingoService.GetStockHistoricalDataAsync(symbol, timeframe, limit); - source = "Tiingo"; - } + _logger.LogWarning(ex, "Yahoo财经历史数据获取失败,降级使用 Tiingo: {Symbol}", symbol); + response = await _tiingoService.GetStockHistoricalDataAsync(symbol, timeframe, limit); + source = "Tiingo"; } } diff --git a/AssetManager.Infrastructure/Services/TencentMarketService.cs b/AssetManager.Infrastructure/Services/TencentMarketService.cs index 8caaeee..c8d2d80 100644 --- a/AssetManager.Infrastructure/Services/TencentMarketService.cs +++ b/AssetManager.Infrastructure/Services/TencentMarketService.cs @@ -18,12 +18,16 @@ public interface ITencentMarketService /// /// 获取股票历史K线数据 + /// ⚠️ 注意:腾讯历史K线接口 (web.ifzq.gtimg.cn) 已废弃,此方法会抛出异常 /// + [Obsolete("腾讯历史K线接口已废弃,请使用 Yahoo 或 Tiingo")] Task> GetStockHistoricalDataAsync(string symbol, string timeframe, int limit); } /// -/// 腾讯财经市场数据服务实现(免费无限制,支持盘前盘后) +/// 腾讯财经市场数据服务实现 +/// 实时价格接口 (qt.gtimg.cn) 正常可用 +/// 历史K线接口 (web.ifzq.gtimg.cn) 已废弃 /// public class TencentMarketService : ITencentMarketService {