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); + } + }