From 4ac8a5f06370ba5a0d32223e48c98b0c31d1534e Mon Sep 17 00:00:00 2001 From: niannian zheng Date: Mon, 9 Mar 2026 15:11:05 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E5=B8=82=E5=9C=BA=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1):=20=E6=B7=BB=E5=8A=A0=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E4=BB=B7=E6=A0=BC=E5=92=8C=E5=8E=86=E5=8F=B2=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E7=9A=84=E6=A8=A1=E6=8B=9F=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增 GetPriceAsync 和 GetHistoricalDataAsync 方法到 MockMarketDataService 类中,用于模拟市场数据服务。同时添加 Microsoft.Extensions.Caching.Abstractions 包依赖以支持后续缓存功能。 --- .../AssetManager.Infrastructure.csproj | 3 +- .../Services/MockMarketDataService.cs | 46 +++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) diff --git a/AssetManager.Infrastructure/AssetManager.Infrastructure.csproj b/AssetManager.Infrastructure/AssetManager.Infrastructure.csproj index 6d75fac..0fd5970 100644 --- a/AssetManager.Infrastructure/AssetManager.Infrastructure.csproj +++ b/AssetManager.Infrastructure/AssetManager.Infrastructure.csproj @@ -1,4 +1,4 @@ - + @@ -6,6 +6,7 @@ + diff --git a/AssetManager.Infrastructure/Services/MockMarketDataService.cs b/AssetManager.Infrastructure/Services/MockMarketDataService.cs index edbaea6..1bc1bc5 100644 --- a/AssetManager.Infrastructure/Services/MockMarketDataService.cs +++ b/AssetManager.Infrastructure/Services/MockMarketDataService.cs @@ -122,4 +122,50 @@ public class MockMarketDataService : IMarketDataService return data; } + + // 新增到 MockMarketDataService 类中 + public async Task GetPriceAsync(string symbol, string assetType) + { + _logger.LogInformation("Mock 获取价格: {Symbol}, 资产类型: {AssetType}", symbol, assetType); + // Mock 一个随机价格 + var random = new Random(); + return await Task.FromResult(new MarketPriceResponse + { + Symbol = symbol, + Price = (decimal)(random.NextDouble() * 100 + 50), + PreviousClose = (decimal)(random.NextDouble() * 100 + 45), + Timestamp = DateTime.UtcNow, + AssetType = assetType + }); + } + + public async Task> GetHistoricalDataAsync(string symbol, string assetType, string timeframe, int limit) + { + _logger.LogInformation("Mock 获取历史数据: {Symbol}, 资产类型: {AssetType}, 周期: {Timeframe}, 数量: {Limit}", + symbol, assetType, timeframe, limit); + // Mock 历史数据 + var result = new List(); + var random = new Random(); + var basePrice = (decimal)(random.NextDouble() * 100 + 50); + + for (int i = 0; i < limit; i++) + { + var change = (decimal)(random.NextDouble() * 10 - 5); + basePrice += change; + result.Add(new MarketDataResponse + { + Symbol = symbol, + Open = basePrice - (decimal)random.NextDouble() * 2, + High = basePrice + (decimal)random.NextDouble() * 2, + Low = basePrice - (decimal)random.NextDouble() * 2, + Close = basePrice, + Volume = (decimal)random.NextDouble() * 1000000, + Timestamp = DateTime.UtcNow.AddDays(-(limit - i)), + AssetType = assetType + }); + } + + return await Task.FromResult(result); + } + }