AssetManager.API/AssetManager.Services/IPortfolioService.cs
OpenClaw Agent 02e199faf2 refactor: 安全性和代码质量改进
🔴 高优先级修复:

1. JWT 密钥安全 (Program.cs)
   - 移除硬编码默认密钥
   - 启动时强制检查环境变量/配置
   - 密钥长度必须 >= 32 字符

2. 数据库事务 (PortfolioService.cs)
   - CreateTransaction 添加事务保护
   - 交易创建、持仓更新、组合更新原子性保证
   - 异常时自动回滚

3. 异步方法改进 (PortfolioService.cs)
   - 移除 .GetAwaiter().GetResult() 阻塞调用
   - 统一使用 async/await 模式

🟡 中优先级:

4. 接口统一 (IPortfolioService.cs)
   - 移除同步方法,只保留异步版本
   - 简化接口,降低维护成本
2026-03-25 06:35:42 +00:00

15 lines
849 B
C#
Executable File

using AssetManager.Models.DTOs;
namespace AssetManager.Services;
public interface IPortfolioService
{
Task<CreatePortfolioResponse> CreatePortfolioAsync(CreatePortfolioRequest request, string userId);
Task<bool> UpdatePortfolioAsync(string portfolioId, UpdatePortfolioRequest request, string userId);
Task<List<PortfolioListItem>> GetPortfolioListAsync(string userId);
Task<TotalAssetsResponse> GetTotalAssetsAsync(string userId);
Task<PortfolioDetailResponse> GetPortfolioDetailAsync(string portfolioId, string userId);
Task<GetTransactionsResponse> GetTransactionsAsync(string portfolioId, string userId, int limit, int offset);
Task<TransactionItem> CreateTransactionAsync(string portfolioId, CreateTransactionRequest request, string userId);
Task<bool> DeletePortfolioAsync(string portfolioId, string userId);
}