🔴 高优先级修复: 1. JWT 密钥安全 (Program.cs) - 移除硬编码默认密钥 - 启动时强制检查环境变量/配置 - 密钥长度必须 >= 32 字符 2. 数据库事务 (PortfolioService.cs) - CreateTransaction 添加事务保护 - 交易创建、持仓更新、组合更新原子性保证 - 异常时自动回滚 3. 异步方法改进 (PortfolioService.cs) - 移除 .GetAwaiter().GetResult() 阻塞调用 - 统一使用 async/await 模式 🟡 中优先级: 4. 接口统一 (IPortfolioService.cs) - 移除同步方法,只保留异步版本 - 简化接口,降低维护成本
15 lines
849 B
C#
Executable File
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);
|
|
} |