OpenClaw Agent
|
da86aa43e6
|
fix: 行情获取失败时不写入错误数据,添加 429 限流重试机制
1. GetHistoricalPriceAsync 返回 decimal? 而非 decimal
- 价格获取失败时返回 null 而非 0
2. BackfillNavHistoryInternalAsync 检查价格有效性
- 任何持仓价格获取失败时跳过该日期
- 不写入 totalValue=0 的错误数据
3. MarketDataService 添加 GetWithRetryAsync 方法
- 处理 429 Too Many Requests 限流
- 最多重试 3 次,指数退避
|
2026-03-15 10:02:52 +00:00 |
|
OpenClaw Agent
|
6a757f56da
|
fix: 添加 PortfolioNavHistory 到 CodeFirst 初始化,删除手动迁移脚本
- DatabaseService.InitializeDatabase() 添加 PortfolioNavHistory
- 删除 migrations/ 目录,使用 CodeFirst 自动建表
|
2026-03-15 08:29:05 +00:00 |
|
OpenClaw Agent
|
849db7d2b2
|
feat: 交易后自动触发净值历史重算
- CreateTransaction完成后删除该交易日期之后的净值记录
- 下次请求收益曲线时自动重新计算
- 修改CreateTransaction为async方法
- 注入IPortfolioNavService到PortfolioService
流程:
1. 用户买入/卖出 → 创建交易记录
2. 删除交易日期之后的净值历史
3. 下次请求收益曲线 → 自动回填缺失数据
|
2026-03-13 16:53:02 +00:00 |
|
OpenClaw Agent
|
1977dd609d
|
fix: 请求收益曲线时自动回填历史数据
- GetNavHistoryAsync现在会自动检查是否有历史数据
- 无历史数据时自动调用BackfillNavHistoryInternalAsync
- 拆分内部回填方法,避免重复验证权限
|
2026-03-13 16:21:31 +00:00 |
|
OpenClaw Agent
|
05ca501f40
|
feat: 新增组合净值历史功能
后端实现:
- 新增PortfolioNavHistory实体,记录每日净值、成本、收益率
- 实现IPortfolioNavService接口,支持净值计算和历史回填
- 支持基于交易记录完整计算历史净值(买入卖出都会更新)
- 计算统计指标:最大回撤、夏普比率、波动率
新增API:
- GET /api/v1/portfolio/{id}/nav-history - 获取净值曲线
- POST /api/v1/portfolio/{id}/nav-history/backfill - 回填历史净值
- POST /api/v1/portfolio/{id}/nav-history/calculate - 计算当日净值
数据库:
- 新增portfolio_nav_history表迁移脚本
- 支持组合级别的净值历史记录
|
2026-03-13 16:08:59 +00:00 |
|
|
|
9936cbc7f2
|
优化总资产接口:总收益率保留两位小数
|
2026-03-12 03:31:04 +00:00 |
|
|
|
fb5faeee81
|
修复用户本位币为空字符串时的默认值逻辑,兼容null和空两种情况
|
2026-03-10 12:48:28 +00:00 |
|
|
|
dcb80d9b85
|
添加总资产换算日志,方便排查币种转换问题
|
2026-03-10 10:18:23 +00:00 |
|
|
|
146212639b
|
增加行情接口降级机制:拉不到实时价格时使用成本价作为 fallback
|
2026-03-10 09:25:43 +00:00 |
|
|
|
1d99099fca
|
feat: 交易记录接口增加stockCode字段返回
|
2026-03-10 07:23:34 +00:00 |
|
niannian zheng
|
10132f9b82
|
添加 using Microsoft.Extensions.Logging;
|
2026-03-10 14:02:01 +08:00 |
|
|
|
7ea616c43d
|
fix: 注入ILogger解决当前上下文中不存在_logger的错误
|
2026-03-10 05:59:40 +00:00 |
|
|
|
bd7f4d2a3d
|
fix: 处理策略config字段双层转义的问题
|
2026-03-10 05:45:07 +00:00 |
|
|
|
02c0864393
|
feat: 创建组合选择策略时自动带入策略配置的标的作为初始持仓
|
2026-03-10 05:42:45 +00:00 |
|
|
|
1a529387e7
|
fix: 修复变量名冲突错误 CS0136
|
2026-03-10 03:57:59 +00:00 |
|
|
|
a23937eac8
|
feat: 增加组合币种校验,交易币种必须和组合本位币一致
|
2026-03-10 03:41:41 +00:00 |
|
|
|
35222fbf26
|
feat: 组合详情页支持多币种实时汇率换算,统一转换为组合本位币显示
|
2026-03-10 03:33:58 +00:00 |
|
|
|
ba60dbc72c
|
feat: 后端增加卖出操作校验,只能卖出已有持仓且数量不超过持仓
|
2026-03-10 02:48:55 +00:00 |
|
|
|
c2ed8266cf
|
feat: 支持transactionDate字段,前端传入的交易日期会自动赋值给TransactionTime
|
2026-03-10 02:17:36 +00:00 |
|
|
|
658cfe90e1
|
fix: 移除所有IConfiguration依赖,完全从环境变量读取配置,解决编译错误
|
2026-03-09 09:39:02 +00:00 |
|
niannian zheng
|
52af47b41e
|
build: 更新 Microsoft.Extensions.Configuration.Abstractions 依赖版本
将 AssetManager.Data 和 AssetManager.Services 项目中的 Microsoft.Extensions.Configuration.Abstractions 包版本统一更新至 10.0.3,以保持依赖一致性
|
2026-03-09 17:07:25 +08:00 |
|
|
|
f2d4351145
|
refactor: 所有配置优先从环境变量读取,完全支持Docker环境变量注入
|
2026-03-09 08:56:26 +00:00 |
|
|
|
739a37f24d
|
refactor: 所有配置改为从appsettings.json/环境变量读取,移除硬编码
|
2026-03-09 08:49:31 +00:00 |
|
虾球
|
53b4f4501e
|
feat: 完成三个优先级任务:1. 汇率服务替换为真实数据源(带缓存和降级);2. MarketDataService增加统一入口自动路由多数据源;3. 简化PortfolioService调用逻辑
|
2026-03-09 06:50:22 +00:00 |
|
虾球
|
8830dd17ae
|
refactor: 架构整改 - Ticker 逻辑移到 Service 层,DTO 独立
|
2026-03-06 10:06:31 +00:00 |
|
niannian zheng
|
b5499ef7fe
|
refactor: 将模型属性改为可为空类型以增强健壮性
- 修改ApiResponse、RiskParityConfig等DTO类的属性为可空类型
- 在策略计算器中添加空值检查逻辑
- 更新服务层代码处理可能的空值情况
- 添加发布配置文件FolderProfile.pubxml
|
2026-03-06 15:51:59 +08:00 |
|
虾球
|
567504119c
|
feat: 完成 P1 任务 - 今日盈亏、风险平价补全、Mock 数据 PreviousClose
|
2026-03-06 06:00:38 +00:00 |
|
fanfpy
|
4816980d62
|
feat: 完成 P0-1 实时价格/盈亏计算和 P0-2 汇率服务接口预留
|
2026-03-05 11:28:49 +00:00 |
|
fanfpy
|
879e500ff9
|
fix(记账): 支持AssetType、使用实际买入时间、交易状态设为completed
|
2026-03-05 10:15:00 +00:00 |
|
niannian zheng
|
fe781db417
|
refactor(策略): 将标签存储格式从JSON数组改为逗号分隔字符串
修改策略标签的存储格式,从JSON数组序列化改为简单的逗号分隔字符串,简化数据存储和处理逻辑。同时更新相关控制器和服务层的代码以适应这一变更。
|
2026-03-02 17:29:56 +08:00 |
|
niannian zheng
|
31c598c4bc
|
feat(策略): 添加策略描述、标签和风险等级字段
扩展策略模型,新增描述、标签(JSON数组)和风险等级字段
更新策略服务以处理新增字段
修改策略DTO和控制器返回更详细的策略信息
更新API文档示例
|
2026-03-02 17:13:16 +08:00 |
|
niannian zheng
|
564687bc1e
|
refactor: 移除投资组合详情中的交易记录功能
重构投资组合详情响应,移除了不再需要的交易记录相关字段和逻辑
更新了README文档以反映API变更
|
2026-03-02 15:37:06 +08:00 |
|
niannian zheng
|
9741468f3e
|
feat: 添加用户授权支持并重构组合服务
重构组合服务接口和实现,添加用户ID参数以实现多租户隔离
更新组合控制器,从JWT令牌中提取用户ID并验证权限
完善组合服务数据库操作,包括组合创建、查询和交易处理
更新README文档,补充组合API详细说明
|
2026-03-02 14:47:16 +08:00 |
|
niannian zheng
|
d39a6347cd
|
feat: 实现微信登录和用户信息管理功能
- 添加微信登录功能,支持通过微信小程序登录
- 实现用户信息管理接口,包括获取用户信息和统计数据
- 新增投资组合列表和总资产统计接口
- 完善JWT令牌生成逻辑,支持可选用户名
- 添加数据库初始化配置和连接字符串
- 移除传统登录和注册功能,专注微信登录方案
|
2026-02-26 11:56:14 +08:00 |
|
niannian zheng
|
2fe0b0c134
|
Remove bin and obj directories from Git tracking
|
2026-02-24 19:25:28 +08:00 |
|
niannian zheng
|
a1cec21ea1
|
chore: 更新项目构建缓存文件和.gitignore配置
更新各项目的构建缓存文件,包括assets.cache和AssemblyInfo相关文件
添加.gitignore文件以忽略常见的构建输出和开发环境文件
|
2026-02-24 17:10:48 +08:00 |
|
|
|
cd5c3aedbe
|
feat: 初始化项目结构并添加基础功能
- 创建解决方案及各项目层
- 添加API基础控制器和DTO定义
- 实现JWT认证服务和微信登录服务
- 添加Swagger文档支持
- 配置项目依赖和构建文件
|
2026-02-18 20:36:09 +08:00 |
|