1. 创建交易: POST /api/v1/portfolio/{id}/transactions -> POST /api/v1/portfolio/transactions
- portfolioId 改为在 body 中传递
2. 新增计算净值端点: POST /api/v1/portfolio/{id}/nav-history/calculate
前端 API 格式已完全对齐
70 lines
2.2 KiB
C#
70 lines
2.2 KiB
C#
using AssetManager.Models.DTOs;
|
|
|
|
namespace AssetManager.Services;
|
|
|
|
/// <summary>
|
|
/// 投资组合门面接口 - 整合多个服务,简化 Controller 调用
|
|
/// </summary>
|
|
public interface IPortfolioFacade
|
|
{
|
|
/// <summary>
|
|
/// 创建投资组合
|
|
/// </summary>
|
|
Task<CreatePortfolioResponse> CreatePortfolioAsync(CreatePortfolioRequest request, string userId);
|
|
|
|
/// <summary>
|
|
/// 获取投资组合详情
|
|
/// </summary>
|
|
Task<PortfolioDetailResponse> GetPortfolioDetailAsync(string portfolioId, string userId);
|
|
|
|
/// <summary>
|
|
/// 获取投资组合列表
|
|
/// </summary>
|
|
Task<List<PortfolioListItem>> GetPortfolioListAsync(string userId);
|
|
|
|
/// <summary>
|
|
/// 获取净值历史
|
|
/// </summary>
|
|
Task<NavHistoryResponse> GetNavHistoryAsync(string portfolioId, NavHistoryRequest request, string userId);
|
|
|
|
/// <summary>
|
|
/// 创建交易
|
|
/// </summary>
|
|
Task<TransactionItem> CreateTransactionAsync(string portfolioId, CreateTransactionRequest request, string userId);
|
|
|
|
/// <summary>
|
|
/// 获取交易列表
|
|
/// </summary>
|
|
Task<List<TransactionItem>> GetTransactionsAsync(string portfolioId, GetTransactionsRequest request, string userId);
|
|
|
|
/// <summary>
|
|
/// 获取策略信号
|
|
/// </summary>
|
|
Task<StrategySignalResponse> GetStrategySignalAsync(string portfolioId, string userId);
|
|
|
|
/// <summary>
|
|
/// 删除投资组合
|
|
/// </summary>
|
|
Task<bool> DeletePortfolioAsync(string portfolioId, string userId);
|
|
|
|
/// <summary>
|
|
/// 创建投资组合(含用户验证和币种校验)
|
|
/// </summary>
|
|
Task<CreatePortfolioResponse> CreatePortfolioWithValidationAsync(CreatePortfolioRequest request, string userId);
|
|
|
|
/// <summary>
|
|
/// 回填净值历史
|
|
/// </summary>
|
|
Task<BackfillNavResponse> BackfillNavHistoryAsync(string portfolioId, string userId, bool force = false);
|
|
|
|
/// <summary>
|
|
/// 获取用户总资产
|
|
/// </summary>
|
|
Task<TotalAssetsResponse> GetTotalAssetsAsync(string userId);
|
|
|
|
/// <summary>
|
|
/// 计算投资组合当日净值
|
|
/// </summary>
|
|
Task<bool> CalculateDailyNavAsync(string portfolioId);
|
|
}
|