问题排查: 1. 缓存命中时验证价格有效性(Price > 0) 2. 外部 API 返回无效价格时拒绝写入缓存 3. 缓存查询层添加详细日志 4. 捕获缓存查询异常并返回 null 改进: - 缓存价格 <= 0 时忽略缓存重新获取 - 外部 API 价格 <= 0 时抛出异常,避免污染缓存 - 详细日志追踪价格获取全流程
- PortfolioRepository: Date -> NavDate 属性名修正 - MarketDataRepository: 修复 TiingoTicker.Ticker 空引用警告
P0 - 安全修复: - 移除硬编码 API Key,启动时校验必填环境变量 P1 - 高优先级: - Entity 拆分:Position.cs, Transaction.cs 独立文件 - Controller Facade 封装:IPortfolioFacade 减少依赖注入 P2 - 中优先级: - Repository 抽象:IPortfolioRepository, IMarketDataRepository - MarketDataService 拆分:组合模式整合 Tencent/Tiingo/OKX P3 - 低优先级: - DTO 命名规范:统一 PascalCase - 单元测试框架:xUnit + Moq + FluentAssertions